MiniportHandleInterrupt
VOID
MiniportHandleInterrupt(
IN NDIS_HANDLE MiniportAdapterContext
);
|
MiniportHandleInterrupt´Â ¸¸¾à µå¶óÀ̹öÀÇ NICÀÌ ÀÎÅÍ·´Æ®µéÀ» ¹ß»ýÇÑ´Ù¸éÀº ÇÊ¿äÇÑ ÇÔ¼öÀÌ´Ù.
MiniportHandleInterrupt´Â ¸ðµç ¹ß»ýÇÏ´Â(outstanding) ÀÎÅÍ·´Æ® ¿¬»êµéÀÇ Áö¿¬µÈ(deferred) 󸮸¦ ÇàÇÑ´Ù.
¸Å°³º¯¼ö
- MiniportAdapterContext
- µå¶óÀ̹ö°¡ MiniportInitialize¿¡ ÀÇÇØ ¼³Á¤µÈ NIC ´ç »óŸ¦ À¯ÁöÇÏ´Â ¹Ì´ÏÆ÷Æ® ÇÒ´ç ÄÁÅØ½ºÆ® ¿µ¿µ¿¡
´ëÇÑ ÇÚµéÀ» ÁöÁ¤ÇÑ´Ù.
ÁÖ¼®
NICÀÌ ÀÎÅÍ·´Æ®¸¦ ¹ß»ýÇÒ ¶§, ¹Ì´ÏÆ÷Æ®ÀÇ MiniportISR ȤÀº MiniportDisableInterrupt ÇÔ¼ö´Â NIC¿¡¼ ÀÎÅÍ·´Æ®¸¦
dismiss ÇÏ°í ¿¬»ê¿¡ ´ëÇÑ ¾î¶² ÇÊ¿äÇÑ »óŸ¦ ÀúÀåÇϰí, °¡´ÉÇÑÇÑ ºü¸£°Ô, MiniportHandleInterrupt¿¡ ´ëÇÑ ´ëºÎºÐÀÇ
ÀÎÅÍ·´Æ® À¯µµ I/O ¿¬»êµéÀ» Áö¿¬ÇÔÀ¸·Î½á Á¦¾î¸¦ ¸®ÅÏÇÑ´Ù.
MiniportHandleInterrupt´Â ¸ðµç ¹ß»ýÇÏ´Â ÀÎÅÍ·´Æ® ¿¬»êµéÀÇ Áö¿¬µÈ 󸮸¦ ÇÑ´Ù.
¸¸¾à NICÀÌ IRQ¸¦ °øÀ¯ÇÑ´Ù¸éÀº, MiniportHandleInterrupt´Â ¸¸¾à MiniportISR ÇÔ¼ö°¡ QueueMiniportHandleInterrupt¸¦
TRUE·Î ¼³Á¤Çؼ ¸®ÅϵȴٸéÀº È£ÃâµÇ¾îÁø´Ù.
MiniportHandleInterrupt°¡ È£ÃâµÇ¾îÁú ¶§, ÀÎÅÍ·´Æ®µéÀº ÀüÇüÀûÀ¸·Î MiniportISR ȤÀº MiniportDisableInterrupt ÇÔ¼ö¿¡
ÀÇÇØ NIC¿¡¼ ºÒ°¡´ÉÇÏ°Ô µÇ¾îÁø´Ù. Á¦¾î¸¦ ¸®ÅÏÇϱâ Àü¿¡, MiniportHandleInterrupt´Â NIC¿¡¼ ´Ù½Ã ÀÎÅÍ·´Æ®µéÀ»
°¡´ÉÇÏ°Ô ÇÒ ¼ö ÀÖ´Ù.
¹Ì´ÏÆ÷Æ®´Â NdisMRegisterInterrupt·Î ÇÒ´çµÈ ÀÚ¿øµéÀ» ÇØÁ¦Çϱâ À§ÇØ MiniportInitialize ȤÀº MiniportHalt ÇÔ¼ö·ÎºÎÅÍ
NdisMDeregisterMiniport¸¦ È£ÃâÇÒ ¼ö ÀÖ´Ù. NdisMDeregisterMiniport°¡ ¸®ÅÏµÈ ÈÄ¿¡, NDIS´Â ¹Ì´ÏÆ÷Æ®ÀÇ
MiniportISR ȤÀº MiniportHandleInterrupt ÇÔ¼öµéÀ» È£ÃâÇÏÁö ¾Ê´Â´Ù.
µðÆúÆ®·Î, MiniportHandleInterrupt´Â IRQL DISPATCH_LEVEL¿¡¼ ½ÇÇàÇÑ´Ù.
|