NdisMInitializeTimer

VOID 

  NdisMInitializeTimer(

    IN OUT PNDIS_MINIPORT_TIMER  Timer,

    IN NDIS_HANDLE  MiniportAdapterHandle,

    IN PNDIS_TIMER_FUNCTION  TimerFunction,

    IN PVOID  FunctionContext

    );

NdisMInitializeTimer´Â µå¶óÀ̹öÀÇ MiniportTimer ÇÔ¼ö¿Í °ü·ÃµÈ ŸÀÌ¸Ó °´Ã¼¸¦ ÃʱâÈ­ÇÑ´Ù.

¸Å°³º¯¼ö

Timer
ŸÀÌ¸Ó °´Ã¼¸¦ À§ÇÑ È£ÃâÀÚ Á¦°ø, »óÁÖ °ø°£À» °¡¸®Å²´Ù. ŸÀÌ¸Ó °´Ã¼´Â È£ÃâÀÚ¿¡ ºÒºÐ¸íÇÏÁö¸¸Àº, ÃʱâÈ­µÇ¾îÁú ¶§ ÀÌ Æ÷ÀÎÅÍ´Â NdisM..Timer ÇÔ¼öµé¿¡ ´ëÇÑ ÇÊ¿äÇÑ ¸Å°³º¯¼öÀÌ´Ù.

MiniportAdapterHandle
MiniportInitialize¿¡ µé¾î¿À´Â ÇÚµéÀ» °¡¸®Å²´Ù.

TimerFunction
È£ÃâÀÚ Á¦°ø MiniportTimer ÇÔ¼öÀÇ ¿£Æ®¸® Æ÷ÀÎÆ®¸¦ ÁöÁ¤ÇÑ´Ù.

FunctionContext
È£ÃâµÉ ¶§ ÁÖ¾îÁø MiniportTimer ÇÔ¼ö¿¡ Àü´ÞµÇ¾îÁö´Â È£ÃâÀÚ Á¦°ø ÄÁÅØ½ºÆ® ¿µ¿ª¸¦ °¡¸®Å²´Ù.

ÁÖ¼®

NdisMSetAttributes(Ex)¸¦ È£ÃâÇÑ ÈÄ, ¹Ì´ÏÆ÷Æ®ÀÇ MiniportInitialize ÇÔ¼ö´Â MiniportTimer ÇÔ¼öµéÀ» ¼³Á¤Çϱâ À§ÇØ NdisMInitializeTimer¸¦ È£ÃâÇÒ ¼ö ÀÖ´Ù. MiniportInitialize´Â µå¶óÀ̹ö°¡ ¾î¶² ´Ù¸¥ NdisM..Timer ÇÔ¼ö¿¡ ´ëÇÑ MiniportTimer Æ÷ÀÎÅ͸¦ Àü´ÞÇϱâ Àü¿¡ NdisMInitializeTimer¸¦ È£ÃâÇØ¾ß ÇÑ´Ù.

ÀÎÅÍ·´Æ®¸¦ ¹ß»ýÇÏÁö ¾Ê´Â NICµå¶óÀ̹öµéÀº Àû¾îµµ µé¾î¿À´Â ¸®½Ãºêµé°ú º¸³»´Â ¿Ï¼ºµéÀ» À§ÇØ NIC »óŸ¦ ¸ð´ÏÅÍÇÏ´Â Æú¸µ MiniportTimer ÇÔ¼ö¸¦ À§ÇØ Å¸ÀÌ¸Ó °´Ã¼¸¦ ÃʱâÈ­ÇØ¾ß ÇÑ´Ù.

NdisMSet..Timer ÇÔ¼öµé¿¡ ´ëÇÑ È£ÃâÀº ½Ã½ºÅÛ Å¸ÀÌ¸Ó Å¥¿¡ ŸÀÌ¸Ó °´Ã¼¸¦ »ðÀÔÇÑ´Ù. NdisMCancelTimer¿¡ ´ëÇÑ È£ÃâÀº ¸¸¾à ÇöÀç Å¥¿¡ ÀúÀåµÈ´Ù¸éÀº ŸÀÌ¸Ó °´Ã¼¸¦ Å¥¿¡¼­ Á¦°ÅÇÑ´Ù. ´ÜÁö ƯÁ¤ ŸÀÌ¸Ó °´Ã¼ÀÇ ÇϳªÀÇ ÀνºÅϽº°¡ ¾î¶² ÁÖ¾îÁø ¼ø°£¿¡ Å¥¿¡ ÀúÀåµÉ ¼ö ÀÖ´Ù.

µå¶óÀ̹ö°¡ NdisMSetTimerÀ» È£ÃâÇÒ ¶§, Timer ¿¡ ŸÀÌ¸Ó °´Ã¼´Â È£Ãâ¿¡¼­ ÁöÁ¤µÈ ½Ã°£ °£°ÝÀÌ ¿Ï·áµÉ ¶§ Å¥¿¡ ÀúÀåµÇ¾îÁø´Ù. ¿Ï¼ºµÉ ¶§, ŸÀÌ¸Ó °´Ã¼´Â Å¥¿¡¼­ ÇØÁ¦µÇ°í È£ÃâÀÚ Á¦°ø TimerFunctionÀº ÇÁ·Î¼¼¼­°¡ ÀÌ¿ëµÉ ¶§¸¶´Ù IRQL DISPATCH_LEVEL¿¡¼­ Áï½Ã ½ÇÇàµÈ´Ù. µå¶óÀ̹ö°¡ NdisMSetPeriodicTimer¸¦ È£ÃâÇÒ ¶§, ŸÀÌ¸Ó °´Ã¼´Â Å¥¿¡¼­ ÇØÁ¦µÇ°í È£ÃâÀÚ Á¦°ø TimerFunctionÀº ÁÖ¾îÁø ½Ã°£ °£°ÝÀÌ ¿Ï·áµÉ ¶§ ½ÇÇàµÈ´Ù. ±×·¯³ª ŸÀÌ¸Ó °´Ã¼´Â ÀÚµ¿ÀûÀ¸·Î ´Ù½Ã °°Àº °íÁ¤ ½Ã°£ °£°Ý¿¡¼­ Å¥¿¡ ÀúÀåµÇ°í MiniportTimer ÇÔ¼ö´Â ÁÖ±âÀûÀ¸·Î IRQL DISPATCH_LEVEL¿¡¼­ ½ÇÇàÇÑ´Ù.

MiniportInitialize ÇÔ¼ö´Â ´Ù¸¥ MiniportTimer ÇÔ¼ö¿Í °ü·ÃµÈ °¢°¢, ÇϳªÀÇ Å¸ÀÌ¸Ó °´Ã¼ ÀÌ»óÀ» ÃʱâÈ­Çϱâ À§ÇØ ÇÑ ¹ø ÀÌ»ó NdisMInitializeTimer¸¦ È£ÃâÇÒ ¼ö ÀÖ´Ù. ¿¹¸¦ µé¾î, NIC µå¶óÀ̹ö´Â ÁÖ±âÀûÀ¸·Î NIC »óŸ¦ ÆúÇÏ´Â ÇϳªÀÇ MiniportTimer ÇÔ¼ö¸¦ °¡Á®¾ß ÇÑ´Ù. ±×¸®°í ¹Ì´ÏÆ÷Æ®°¡ ÁÖ±âÀûÀ¸·Î ´ÜÁö NIC¿¡ ƯÁ¤ ¿¬»êÀ» ŸÀӾƿôÇϱâ À§ÇØ »ç¿ëÇÏ´Â ¶Ç ÇϳªÀÇ ÇÔ¼ö¸¦ °¡Á®¾ß ÇÑ´Ù. °¢ ±×·¯ÇÑ MiniportTimer ÇÔ¼ö´Â ´Ù¸¥ ±â´ÉÀ» °¡Áø´Ù. °¢°¢ ±×·¯ÇÑ ÇÔ¼ö´Â MiniportInitialize·ÎºÎÅÍ NdisMInitializeTimer È£ÃâÇÔÀ¸·Î½á ´Ù¸¥ ŸÀÌ¸Ó °´Ã¼¿Í °ü·ÃµÇ¾îÁø´Ù.

NdisMInitializeTimer´Â IRQL PASSIVE_LEVEL¿¡¼­ ½ÇÇàÇÑ´Ù.