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¿¡¼ ½ÇÇàÇÑ´Ù.
|