MiniportTimer

VOID 

  MiniportTimer(

    IN PVOID  SystemSpecific1,

    IN PVOID  FunctionContext,

    IN PVOID  SystemSpecific2,

    IN PVOID  SystemSpecific3

    );

MiniportTimer´Â ¸¸¾à µå¶óÀ̹öÀÇ NICÀÌ ÀÎÅÍ·´Æ®µéÀ» ¹ß»ýÇÏÁö ¾Ê´Â´Ù¸éÀº ÇÊ¿äÇÑ ÇÔ¼öÀÌ´Ù. ±×·¸Áö ¾ÊÀº¸éÀº, Çϳª³ª ȤÀº ±× ÀÌ»óÀÇ MiniportTimer ÇÔ¼öµéÀº ¼±ÅÃÀûÀÌ´Ù.

¸Å°³º¯¼ö

SystemSpecific1
MiniportTimer¿¡°Ô ºÒºÐ¸íÇÏ°í ½Ã½ºÅÛ »ç¿ëÀ» À§ÇØ ¿¹¾àµÈ ½Ã½ºÅÛ Æ¯Á¤ º¯¼ö¸¦ °¡¸®Å²´Ù.

FunctionContext
MiniportInitialize°¡ °ü·ÃµÈ ŸÀÌ¸Ó °´Ã¼¸¦ ¼³Á¤ÇÒ ¶§ NdisMInitializeTimer¿¡ Àü´ÞµÇ´Â ÄÁÅØ½ºÆ® Æ÷ÀÎÅ͸¦ ÁöÁ¤ÇÑ´Ù.

SystemSpecific2
½Ã½ºÅÛ »ç¿ëÀ» À§ÇØ ¿¹¾àµÈ ½Ã½ºÅÛ Æ¯Á¤ °ªÀ» °¡¸®Å²´Ù.

SystemSpecific3
½Ã½ºÅÛ »ç¿ëÀ» À§ÇØ ¿¹¾àµÈ ½Ã½ºÅÛ Æ¯Á¤ °ªÀ» °¡¸®Å²´Ù.

ÁÖ¼®

ÀÎÅÍ·´Æ®µéÀ» ¹ß»ýÇÏÁö ¾Ê´Â NIC µå¶óÀ̹ö´Â NICÀÇ »óŸ¦ pollÇϱâ À§ÇØ MiniportTimer ÇÔ¼ö¸¦ °¡Á®¾ß ÇÑ´Ù. ±×·¯ÇÑ µå¶óÀ̹öÀÇ MiniportInitialize ÇÔ¼ö´Â NdisMInitializeTimer·Î µå¶óÀ̹ö ÇÒ´ç ŸÀÌ¸Ó °´Ã¼¸¦ ¼³Á¤ÇÑ ÈÄ¿¡, NdisMSetPeriodicTimer¿¡ ´ëÇÑ È£ÃâÀº ŸÀÌ¸Ó °´Ã¼¿Í °ü·ÃµÈ MiniportTimer ÇÔ¼ö°¡ MillisecondsPeriod¿¡ ÀÇÇØ ÁöÁ¤µÈ ½Ã°£°£°Ý¿¡¼­ ¹Ýº¹ÀûÀ̰í ÀÚµ¿ÀûÀ¸·Î ½ÇÇàµÇ¾îÁöµµ·Ï ÇÑ´Ù. ±×·¯ÇÑ polling(Æú¸µ) MiniportTimer ÇÔ¼ö´Â ÀεðÄÉÀ̼ǵéÀÌ ÀÖÀ» ¶§, Áö¿¬ º¸³»±â°¡ ¿Ï¼ºµÉ ¶§, µîµîÀ» °áÁ¤Çϱâ À§ÇØ NICÀÇ »óŸ¦ ¸ð´ÏÅÍÇÑ´Ù. È¿°úÀûÀ¸·Î, ±×·¯ÇÑ polling MiniportTimer ÇÔ¼ö´Â ÀÎÅÍ·´Æ®µéÀÌ ¹ß»ýÇÏ´Â NICÀÇ µå¶óÀ̹ö¿¡¼­ MiniportHandleInterrupt°ú °°Àº ±â´ÉÀ» °¡Áø´Ù.

´ëÁ¶ÀûÀ¸·Î, NdisMSetTimer¸¦ È£ÃâÇÏ´Â °ÍÀº ÁÖ¾îÁø MillisecondsToDelay°¡ ¿Ï·áµÉ ¶§ ÀÏ´Ü ½ÇÇàµÇ´Â ŸÀÌ¸Ó °´Ã¼¿Í °ü·ÃµÈ MiniportTimerÇÔ¼ö¸¦ ¾ß±âÇÑ´Ù. ±×·¯ÇÑ MiniportTimer ÇÔ¼ö´Â Ç×»ó ¸¸¾à ƯÁ¤ ¿¬»êÀÌ Å¸ÀӾƿô µÇ¾úÀ» ¶§, ¸î¸î µå¶óÀ̹ö °áÁ¤ ÇൿµéÀ» ÇàÇÑ´Ù.

¸¸¾à MiniportTimer ÇÔ¼öÀÇ °¢ ŸÀÔÀÌ ´Ù¸¥ µå¶óÀ̹ö ÇÔ¼öµé°ú ÀÚ¿øµéÀ» °øÀ¯ÇÑ´Ù¸éÀº, µå¶óÀ̹ö´Â ½ºÇɶôÀ¸·Î ÀÌ·¯ÇÑ ÀÚ¿øµé¿¡ ´ëÇÑ Á¢±ÙÀ» µ¿±âÈ­ÇØ¾ß ÇÑ´Ù.

¾î¶² NIC µå¶óÀ̹ö ȤÀº ÀÎÅ͹̵ð¾ù µå¶óÀ̹ö´Â µå¶óÀ̹ö °³¹ßÀÚÀÇ discretion¿¡¼­ Çϳª ÀÌ»óÀÇ MiniportTimer ÇÔ¼ö¸¦ °¡Áú ¼ö ÀÖ´Ù. °¢ ±×·¯ÇÑ MiniportTimer ÇÔ¼ö´Â µå¶óÀ̹ö ÇÒ´ç ±×¸®°í ÃʱâÈ­µÈ ŸÀÌ¸Ó °´Ã¼¿Í °ü·ÃµÇ¾îÁú °ÍÀÌ´Ù.

NdisMCancelTimer¿¡ ´ëÇÑ È£ÃâÀº Áï½Ã NdisMSetTimer¿¡ ´ëÇÑ ¼±Çà È£Ãâ¿¡¼­ Àü´ÞµÈ ½Ã°£°£°ÝÀÌ ¿Ï·áµÇÁö ¾Ê´Ù¸éÀº ºñÆú¸µ(nonpolling) MiniportTimer ÇÔ¼öÀÇ ½ÇÇàÀ» Ãë¼ÒÇÑ´Ù. NdisMSetPeriodicTimer¿¡ ´ëÇÑ È£Ãâ ÈÄ¿¡, °°Àº ŸÀÌ¸Ó °´Ã¼·Î NdisMSetTimer ȤÀº NdisMCancelTimer¿¡ ´ëÇÑ È£ÃâÀº polling MiniportTimer ÇÔ¼ö¸¦ ºÒ°¡´ÉÇÏ°Ô ÇÑ´Ù.: MiniportTimer ÇÔ¼ö°¡ Çѹø ½ÇÇàµÇ°Å³ª ȤÀº Ãë¼ÒµÈ´Ù.

MiniportTimer ÇÔ¼ö¸¦ °¡Áø ¾î¶² µå¶óÀ̹öÀÇ MiniportHalt ÇÔ¼ö´Â MiniportTimer ÇÔ¼ö°¡ MiniportHalt°¡ ÀÌ¹Ì ÇØÁ¦µÈ ÀÚ¿øµéÀ» Á¢±ÙÇÏ·Á°í ½Ãµ¹ÇÏÁö ¾Ê´Â´Ù´Â °ÍÀ» È®½ÇÈ÷ Çϱâ À§ÇØ NdisMCancelTimer¸¦ È£ÃâÇØ¾ß ÇÑ´Ù.

µðÆúÆ®·Î, MiniportTimer´Â IRQL DISPATCH_LEVEL¿¡¼­ ½ÇÇàÇÑ´Ù.