ProtocolCoStatus
VOID
ProtocolCoStatus(
IN NDIS_HANDLE ProtocolBindingContext,
IN NDIS_HANDLE ProtocolVcContext OPTIONAL,
IN NDIS_STATUS GeneralStatus,
IN PVOID StatusBuffer,
IN UINT StatusBufferSize
);
|
ProtocolCoStatus ÇÔ¼ö´Â ¾Æ·¡ µå¶óÀ̹ö ȤÀº NDIS¿¡ ÀÇÇØ ¿Ã·ÁÁö´Â »óÅ º¯È ÁÖÁöµéÀ» ´Ù·ç´Â ¿¬°á ÁöÇâ ÇÁ·ÎÅäÄÝ µå¶óÀ̹öµé¿¡¼ ÇÊ¿äÇÑ µå¶óÀ̹ö ÇÔ¼öÀÌ´Ù.
¸Å°³º¯¼ö
- ProtocolBindingContext
- ÇÁ·ÎÅäÄÝ µå¶óÀ̹ö´Â ¹ÙÀεù ´ç ·±Å¸ÀÓ »óŸ¦ À¯ÁöÇÏ´Â ÇÁ·ÎÅäÄÝ ÇÒ´ç ÄÁÅױךÀ ¿µ¿ª¿¡ ´ëÇÑ ÇÚµéÀ» ÁöÁ¤ÇÑ´Ù. µå¶óÀ̹ö´Â NdisOpenAdapter ÇÔ¼ö¸¦ È£ÃâÇÒ ¶§ ÀÌ ÇÚµéÀ» Á¦°øÇÑ´Ù.
- ProtocolVcContext
- ÇÁ·ÎÅäÄÝ µå¶óÀ̹ö´Â VC´ç ·±Å¸ÀÓ »óŸ¦ À¯ÁöÇÏ´Â ÇÁ·ÎÅäÄÝ ÇÒ´ç ÄÁÅØ½ºÆ® ¿µ¿ª¿¡ ´ëÇÑ ÇÚµéÀ» ÁöÁ¤ÇÑ´Ù. ÀÌ ¸Å°³º¯¼ö´Â ProtocolCoStatus ÇÔ¼ö°¡ ¸¸¾à »óÅ º¯È ÀεðÄÉÀ̼ÇÀÌ ¿ø·¡ VC ƯÁ¤ÀÌ ¾Æ´Ï¸é È£ÃâµÉ ¶§ NULLÀÌ´Ù. ±×·¸Áö ¾ÊÀ¸¸é, ÇÁ·ÎÅäÄÝÀº ¿ø·¡ NdisCoCreateVc ÇÔ¼ö¸¦ È£ÃâÇÒ ¶§ ProtocolCoCreateVc ÇÔ¼ö·ÎºÎÅÍ ÀÌ ÇÚµéÀ» Á¦°øÇÑ´Ù.
- GeneralStatus
- NDIS¿¡ ÀÇÇØ »ó½ÂµÈ ȤÀº NdisMCoIndicateStatus ÇÔ¼ö¿¡ ´ëÇÑ ¾Æ·¡ µå¶óÀ̹öÀÇ È£Ãâ·ÎºÎÅÍ Àü´ÞµÇ´Â ÀϹÝÀûÀÎ »óÅ Äڵ带°¡¸®Å²´Ù.
- StatusBuffer
- GeneralStatusÀÇ °ª¿¡ ÀÇÁ¸ÇÏ´Â ¹Ìµð¾ö ƯÁ¤ µ¥ÀÌÅ͸¦ Æ÷ÇÔÇÏ´Â ¹öÆÛ¸¦ °¡¸®Å²´Ù.
¸î¸î NDIS_STATUS_XXX °ªµéÀ» À§ÇØ, ÀÌ·¯ÇÑ Æ÷ÀÎÅÍ´Â NULLÀ̰í StatusBufferSize´Â 0À¸·Î ¼³Á¤µÈ´Ù.
- StatusBufferSize
- StatusBufferÀÎ ¹öÆÛ ¼ö¸¦ ÁöÁ¤ÇÑ´Ù.
ÁÖ¼®
ProtocolCoStatusÇÔ¼ö¿¡ ´ëÇÑ È£ÃâÀº Ȱ¼ºÈ VCÀÇ, ¾Æ·¡ ¿¬°áÁöÇâ NICÀÇ, ȤÀº µå¶óÀ̹öÀÇ »óÅ¿¡ ´ëÇÑ º¯ÈµéÀ» ÇÁ·ÎÅäÄÝ¿¡°Ô ¾Ë¸°´Ù.
ProtocolCoStatus ÇÔ¼ö´Â µÎ°³ÀÇ ±âº» Á¤º¸¸¦ ÇØ¼®ÇÑ´Ù. :
- NDIS¿¡ ÀÇÇØ NDIS_STATUS_XXX °ªÀ¸·Î Á¤ÀǵÈ, VC, NIC, ¾Æ·¡ µå¶óÀ̹öÀÇ º¯È¸¦ °¡¸®Å°´Â ÀϹßÀûÀÎ »óÅ ÄÚµå.
¸¸¾à NDIS°¡ NIC¿¡ ¿¬»ê »óŸ¦ ȸº¹ÇÏ·Á´Â ½Ãµµ·Î ¾Æ·¡ µå¶óÀ̹öÀÇ MiniportReset ÇÔ¼ö¸¦ È£ÃâÇÑ´Ù¸é, NDIS´Â NdisMCoIndicateStatus ÇÔ¼ö¿¡ ´ëÇÑ ¹Ì´ÏÆ÷Æ®ÀÇ È£Ãâ·Î °¡¸®Å°´Â GeneralStatus¸¦ À§ÇØ NDIS_STATUS_RESET_START¸¦ ´ëüÇÒ ¼ö ÀÖ´Ù.
- ¹Ìµð¾î ƯÁ¤ÀÏ ¼ö ÀÖ´Â »óÅ º¯È¸¦ À§ÇÑ Æ¯Á¤ ÀÌÀ¯¿¡ ´ëÇÑ Ãß°¡ÀûÀÌ Á¤º¸ÀÎ, GeneralStatusÀÎ »óÅ¿¡ ÀÇÁ¸ÇÑ´Ù.
NDIS´Â Ç×»ó ¾Æ·¡ ¿¬°á ÁöÇâ µå¶óÀ̹ö°¡ óÀ½ NDIS_STATUS_RESET_END ·Î ±×µéÀÇ ProtocolCoStatus ÇÔ¼öµéÀ» È£ÃâÇÔÀ¸½á NICÀ» ¸®¼ÂÇÒ ¶§ ³ªÁß¿¡ ¸®¼Â °úÁ¤ÀÌ ¿Ï·áÇÒ ¶§ NDIS_STATUS_RESET_END·Î ¸ðµç ¹ÙÀεåµÈ ÇÁ·ÎÅäÄݵ鿡 ¾Ë¸°´Ù. ProtocolCoStatus ÇÔ¼ö¿¡ ´ëÇÑ °¢ ±×·¯ÇÑ È£Ãâ ÈÄ, NDIS´Â ¶ÇÇÑ µå¶óÀ̹öÀÇ ProtocolStatusComplete ÇÔ¼ö¸¦ È£ÃâÇÑ´Ù.
NDIS´Â ÇÁ·ÎÅäÄÝ ÃʱâÈµÈ º¸³»±âµé°ú ¸®¼Â °úÁ¤ÀÌ ÁøÇàÁßÀÎ µ¿¾È ¹Ì´ÏÆ÷Æ®¿¡ ´ëÇÑ ¿ä±¸¸¦ ¼ö¶ôÇÏÁö ¾Ê±â ¶§¹®¿¡, NDIS_STATUS_RESET_START ÁÖÁö´Â ±×µéÀÌ ÀÀ´äÇÏ´Â NDIS_STATUS_RESET_END ÁÖÁö¸¦ ¼ö½ÅÇÒ ¶§±îÁö ±×µéÀÇ ProtocolCoStatus ÇÔ¼öµé¿¡ ÁÖ¾îÁø °¢ ProtocolBindingContext¿¡ ÀÇÇØ ÁöÁ¤µÈ(designated) ¹ÙÀεù¿¡ ´ëÇÑ NdisCoSendPackets ÇÔ¼ö¿Í NdisCoRequest ÇÔ¼öµé¿¡ ´ëÇÑ ±×µéÀÇ È£ÃâµéÀ» ÇÏÁö ¸»µµ·Ï ¹ÙÀεåµÈ ÇÁ·ÎÅäÄݵ鿡°Ô °æ°íÇÑ´Ù.
¸¸¾à ÇÁ·ÎÅäÄÝÀÌ NdisReset ÇÔ¼ö¿¡ ´ëÇÑ È£Ãâ·Î ¸®¼Â ¿¬»êÀ» ÃʱâÈÇÑ´Ù¸é, ProtocolCoStatus ÇÔ¼ö´Â °°Àº ¾Æ·¡ µå¶óÀ̹ö¿¡ ¹ÙÀεåµÈ ¾î¶² ´Ù¸¥ ÇÁ·ÎÅäÄݰú °°ÀÌ NDIS_STATUS_RESET_START ¿Í NDIS_STATUS_RESET_END ÁÖÁöµéÀ» ¼ö½ÅÇÑ´Ù. ±×·¯³ª, ¸¸¾à NdisReset ÇÔ¼ö°¡ NDIS__STATUS_PENDINGÀ» ¸®ÅÏÇÑ´Ù¸é, ´ÜÁö ¸®¼Â ¿¬»êÀ» ÃʱâÈÇÑ µå¶óÀ̹öÀÇ ProtocolStatusComplete ÇÔ¼ö°¡ È£ÃâµÇ¾îÁø´Ù.
°á°úÀûÀ¸·Î, ¸ðµç ÇÁ·ÎÅäÄÝÀÇ ProtocolCoStatus ÇÔ¼ö´Â ProtocolCoStatus ÇÔ¼ö°¡ NDIS_STATUS_RESET_START ÁÖÁö¸¦ ¼ö½ÅÇÏÀÚ ¸¶ÀÚ ÇÁ·ÎÅäÄÝÀÌ º¸³»±âµé°ú ¿ä±¸µéÀ» Á¦ÃâÇÏ´Â °ÍÀ» ¸·´Âµ¥ ÇÊ¿äÇÑ ÇൿµéÀ» ÃëÇØ¾ß Çϰí ProtocolCoStatus ÇÔ¼ö°¡ NDIS_STATUS_RESET_END ÁÖÁö¸¦ ¹ÞÀ» ¶§ °è¼ÓÇØ¼ º¸³»±âµéÀ» ¿ä±¸µéÀ» ´Ù½Ã ÇÒ ¼ö ÀÖ°Ô ÇØ¾ß ÇÑ´Ù. Ç×»ó, ProtocolCoStatus ÇÔ¼ö´Â °£´ÜÈ÷ ´Ù¸¥ µå¶óÀ̹ö ÇÔ¼öµéÀÌ ±×µéÀÌ ¹ÙÀεù ÇÑ °÷¿¡¼ º¸³»±âµé ȤÀº ¿ä±¸µéÀ» ÃʱâÈÇϱâ Àü¿¡ üũÇÏ´Â ProtocolBindingContext ¿µ¿©¿¡ ResetInProgress Ç÷¡¸¦ ¼³Á¤Çϰí Ŭ¸®¾îÇÑ´Ù.
¾Æ·¡ NIC µå¶óÀ̹ö´Â »óÅ º¯È¸¦ ½ÅÈ£ÈÇÒ ¶§, °ü·ÃµÈ À̺¥Æ® Ä«¿îÅ͵é°ú ÀÓ°è°ª(thresholds)Àº ¹Ù²ÙÁö ¾Ê´Â´Ù.
ProtocolCoStatus ÇÔ¼ö´Â IRQL DISPATCH_LEVEL¿¡¼ ½ÇÇàÇÒ ¼ö ÀÖµµ·Ï ¾²¿©Á®¾ß ÇÑ´Ù.
|