NdisStallExecution

VOID

  NdisStallExecution(

    IN UINT  MicrosecondsToStall

    );

NdisStallExecutionÀº ÁÖ¾îÁø ½Ã°£ °£°ÝÀ» À§ÇØ Çö ÇÁ·Î¼¼¼­¿¡ ´ëÇÑ È£ÃâÀÚ¸¦ Áö¿¬½ÃŲ´Ù.

¸Å°³º¯¼ö

MicrosecondsToStall
Áö¿¬Çϱâ À§ÇÑ ¸¶ÀÌÅ©·ÎÃÊ ¼öµéÀ» ÁöÁ¤ÇÑ´Ù.

ÁÖ¼®

ÁÖ¾îÁø MicrosecondsToStallÀ» À§ÇØ, È£ÃâÀÚÀÇ ½ÇÇà ¾²·¹µå´Â CPU »çÀÌŬ(½Ã°£)À» ¼ÒºñÇÏ´Â Çö ÇÁ·Î¼¼¼­¸¦ Áö¿¬ÇÑ´Ù. ÁÖ¾îÁø ½Ã°£ °£°ÝÀÌ ¸¸·áµÇ¸éÀº, È£ÃâÀÚ´Â ½ÇÇàÀ» ´Ù½Ã ½ÃÀÛÇÑ´Ù.

µå¶óÀ̹ö°¡ IRQL >= DISPATCH_LEVEL¿¡¼­ ½ÇÇàÇÏÁö ¾Ê´Â´Ù¸éÀº, NdisStallExecution ´ë½Å¿¡ È£ÃâÀÚµéÀ» À§ÇØ ÇÁ·Î¼¼¼­¸¦ µ¶Á¡ÇÏ´Â °Í ¾øÀÌ ´õ Å« Áö¿¬ ½Ã°£ °£°ÝµéÀ» Çã¶ôÇÏ´Â NdisMSleep¸¦ È£ÃâÇØ¾ß ÇÑ´Ù. ¿¹¸¦ µé¾î, NIC µå¶óÀ̹öÀÇ MiniportInitialize ÇÔ¼ö´Â NdisMSleep·Î NIC¿¡¼­ »óÅ º¯È­µéÀ» À§ÇØ ±â´Ù·Á¾ß ÇÑ´Ù.

NdisMSleep¿Í NdisStallExecutionÀº NIC µå¶óÀ̹ö°¡ ÀϰüµÇ°í È£½ºÆ® CPUÀÇ Å¬·° ¼Óµµ¿¡ µ¶¸³ÀûÀÎ Áö¿¬À» ÁöÁ¤Çϵµ·Ï ÇÑ´Ù. ¾î¶°ÇÑ ÇÔ¼öµµ NdisSet(Periodic)Timer¿¡ ÀÇÇØ »ç¿ëµÈ ŸÀÌ¸Ó °´Ã¼¿Í °ü·ÃÀÌ ¾ø´Ù. È£½ºÆ® ½Ã½ºÅÛ Å¬·°ÀÇ °áÁ¤(resolution)ÀÌ ¹Ù²î¸éÀº ±×·¡¼­ ´õ ªÀº Áö¿¬µéÀÌ NdisMSleep ȤÀº NdisStallExecutionÀÇ È£ÃâÀÚ°¡ ÁöÁ¤ÇÑ °Íº¸´Ù ´õ ±æ°Ô °¡Áú ¼ö ÀÖ´Ù.

NdisStallExecution¿¡ ´ëÇÑ È£ÃâÀº Çö ÇÁ·Î¼¼¼­¿¡¼­ ¾î¶² ´Ù¸¥ ¿î¿µÃ¼Á¦ ½Ã½ºÅÛÀ» ¸·°í ½Ã½ºÅÛ ÀÎÅÍ·´Æ®µéÀÌ Áö¿¬µÇ´Â µ¿¾È(stall) ¹ß»ýÇÏ´Â °ÍÀ» ¸·´Â´Ù. ±×·¯¹Ç·Î È£ÃâÀÚµéÀº Ç×»ó 50¸¶ÀÌÅ©·ÎÃʺ¸´Ù ´õ ÀÌ»ó ±æÁö ¾Ê´Â Áö¿¬(stall) ½Ã°£°£°ÝÀ» ÁöÁ¤ÇØ¾ß ÇÑ´Ù.

NdisStallExecutionÀÇ È£ÃâÀÚµéÀº ¾î¶² IRQL¿¡¼­ ½ÇÇàµÉ ¼ö ÀÖ´Ù.