ProtocolStatus
VOID
ProtocolStatus(
IN NDIS_HANDLE ProtocolBindingContext,
IN NDIS_STATUS GeneralStatus,
IN PVOID StatusBuffer,
IN UINT StatusBufferSize
);
|
ProtocolStatusÇÔ¼ö´Â ¾Æ·¡´Ü ºñ¿¬°á ÁöÇâ NICµå¶óÀ̹ö ¶Ç´Â NDIS¿¡ ÀÇÇØ Á¦±âµÈ ¹Ù²î´Â »óÅ ¾Ë¸²À» ´Ù·ç´Â Çʼö µå¶óÀ̹ö ÇÔ¼öÀÌ´Ù.
¹èŸÀûÀÎ ¿¬°áÁöÇ× ÇÁ·ÎÅäÄÝÀº ProtocolStatus ÇÔ¼öº¸´Ù ¸ñÀû¿¡ ²À ¸ÂÀº ProtocolCoStatus ÇÔ¼ö¸¦ °¡Á®¾ß ÇÑ´Ù.
¸Å°³º¯¼ö
- ProtocolBindingContext
- ÇÁ·ÎÅäÄÝ µå¶óÀ̹ö°¡ ¹ÙÀÎµå ´ç ·±Å¸ÀÓ »óŸ¦ À¯ÁöÇÏ´Â ÇÁ·ÎÅäÄÝ ÇÒ´ç ÄÁÅØ½ºÆ® ¿µ¿ªÀÇ ÇÚµéÀ» ¸í½ÃÇÑ´Ù. NdisOpenAdapterÇÔ¼ö°¡ È£Ãâ µÆÀ» ¶§ µå¶óÀ̹ö°¡ ÀÌ ÇÚµéÀ» Á¦°ø ÇÑ´Ù.
- GeneralStatus
- NDIS¿¡ ÀÇÇØ Á¦±âµÇ°Å³ª ¾Æ·¡´Ü µå¶óÀ̹öÀÇ NdisMIndicateStatusÇÔ¼ö È£Ãâ·Î ºÎÅÍ ÀüÇØÁø ÀϹÝÀûÀÎ »óÅ Äڵ带 °¡¸®Å²´Ù.
- StatusBuffer
- GeneralStats°ª¿¡ ÀÇÁ¸ÇÏ´Â ¹Ìµð¾ö ƯÁ¤ µ¥ÀÌÅ͸¦ Æ÷ÇÔÇÏ´Â ¹öÆÛ¸¦ °¡¸®Å²´Ù.
¿¹¸¦ µé¾î, GeneralStatus ÀÎÀÚ°¡ NDIS_STATUS_RING_STATUSÀ̸é, ÀÌ ÆÄ¶ó¹ÌÅÍ´Â ULONG Å©±âÀÇ ºñÆ®¸¶½ºÅ©¸¦ °¡¸®Å°°í StatusBufferSize´Â 4ÀÌ´Ù.
¿¹ Çϳª ´õ, GeneralStatus°¡ NDIS_STATUS_WAN_LINE_UPÀ̸é, ÀÌ ÆÄ¶ó¹ÌÅÍ´Â NDIS_WAN_LINE_UP±¸Á¶Ã¼¸¦ °¡¸®Å°°í StatusBufferSize´Â sizeof(NDIS_STATUS_WAN_LINE_UP)ÀÌ´Ù.
For some NDIS_STATUS_XXX values, this pointer is NULL and StatusBufferSize is set to zero.
- StatusBufferSize
- StatusBufferÀÇ ¹ÙÀÌÆ® ¼ö¸¦ ¸í½ÃÇÑ´Ù.
ÁÖ¼®
ProtocolStatusÇÔ¼ö È£ÃâÀº ÇÁ·ÎÅäÄÝÀÌ ¾Æ·¡´Ü NICÀ̳ª ÀÌ µå¶óÀ̹öÀÇ »óź¯È¸¦ ¾Ë¸°´Ù.
ProtocolStatusÇÔ¼ö´Â µÎ°¡ÁöÀÇ ±âº»ÀûÀÎ Á¤º¸¸¦ ¹àÈù´Ù:
- ÀϹÝÀûÀÎ »óÅ ÄÚµå,NDIS_STATUS_XXX°ªÀ¸·Î NDIS¿¡ ÀÇÇØ Á¤ÀǵÈ,´Â NICÀ̳ª ¾Æ·¡´Ü µå¶óÀ̹ö¿¡¼ÀÇ º¯È¸¦ ³ªÅ¸³½´Ù.
¸¸¾à NDIS°¡ ¾Æ·¡´Ü µå¶óÀ̹öÀÇ NIC ¿¬»ê »óŸ¦ µÇµ¹¸®´Â ½Ãµµ¸¦ ÇÏ´Â MiniportResetÇÔ¼ö¸¦ È£Ãâ Çß¾ú´Ù¸é, NDIS´Â GeneralStatus°¡ ¹Ì´ÏÆ÷Æ®ÀÇ NdisMIndicateStatusÇÔ¼ö È£Ãâ¿¡¼ °¡¸®Ä×´ø °Í¿¡ ´ëÇØ NDIS_STATUS_RESET_START·Î ´ë½Å ÇÒ ¼ö ÀÖ´Ù.
- GenetalStatus¿¡¼ »óÅ¿¡ ÀÇÁ¸ÇÏ´Â °Í,»óÅ º¯È¿¡ ´ëÇØ ƯÁ¤ÇÑ ¿øÀο¡ ´ëÇÑ Ãß°¡ÀûÀÎ Á¤º¸,Àº ¹Ìµð¾ö ƯÁ¤ÀÏ ¼ö ÀÖ´Ù.
¿¹¸¦ µé¾î, ring-insert ½ÇÆÐ´Â ÅäÅ«¸µ ³×Æ®¿÷¿¡¼´Â Ưº°Çϰí ÀÌ´õ³Ý ³×Æ®¿÷¿¡¼´Â ¿µÇâÀÌ ¾ø´Ù.
¾Æ·¡´Ü µå¶óÀ̹ö°¡ NICÀ» ¸®¼ÂÇÒ ¶§ NDIS´Â óÀ½Àº NDIS_STATUS_RESET_START ±×¸®°í ÀÌÈÄ, ¸®¼Â ¿¬»êÀÌ ³¡³ª¸é, NDIS_STATUS_RESET_END¿Í ÇÔ²²ProtocolStatusÇÔ¼ö¸¦ È£Ãâ ÇÔÀ¸·Î¼ ¸ðµç ¹ÙÀεåµÈ ÇÁ·ÎÅäÄÝ¿¡°Ô ¾Ë¸°´Ù.
±× ÀÌÈÄ ¸®¼ÂÀÌ ÁøÇà µÇ´Â µ¿¾È NDIS´Â ÇÁ·ÎÅäÄÝ ÃʱâÈ º¸³»±â¿Í ¹Ì´ÏÆ÷Æ®·ÎÀÇ ¿ä°í¸¦ ¹Þ¾Æµé¾Æ¸é ¾ÈµÈ´Ù. NDIS_STATUS_RESET_START ¾Ë¸²Àº NDIS_STATUS_RESET_END ¾Ë¸²À» ¹ÞÀ» ¶§ ±îÁö ProtocolStatusÇÔ¼ö¿¡°Ô ÁÖ¾ú´ø °¢°¢ÀÇ ProtocolBindingContext¿¡ ÀÇÇØ Áö¸íµÈ ¹ÙÀεù¿¡¼ NdisSendPackets, NdisSend, NdisRequestÇÔ¼ö È£ÃâÀÌ ÀϾÁö ¾ÊÀ½À» ¹ÙÀεåµÈ ÇÁ·ÎÅäÄÝ¿¡°Ô °æ°íÇÑ´Ù.
¸¸¾à ÇÁ·ÎÅäÄÝÀÌ NdisResetÇÔ¼ö¸¦ È£ÃâÇÏ¹Ç·Î½á ¸®¼Â¿¬»êÀ» ½º½º·Î ÃʱâÈ Çϸé, ProtocolStarus ÇÔ¼ö´Â ´Ù¸¥ ¸ðµç °°Àº ¾Æ·¡´Ü µå¶óÀ̹ö¿¡ ÇÁ·ÎÅäÄÝÀÌ ¹ÙÀεåÇÏ´ø °Í ó·³ NDIS_STATUS_RESET_START¿Í NDIS_STATUS_RESET_END¾Ë¸²À» ¹Þ´Â´Ù. ¾î°µç, Ndisreset ÇÔ¼ö°¡ NDIS_STATUS_PENDINGÀ» ¸®ÅÏ ÇÏ¸é ´ÜÁö µå¶óÀ̹öÀÇ ProtocolStatusComplete ÇÔ¼ö¸¸ÀÌ ¸®¼Â ¿¬»ê¤· È£ÃâµÇ´Â °ÍÀ» ÃʱâÈ ÇÑ´Ù.
µû¶ó¼, ¸ðµç ÇÁ·ÎÅäÄÝÀÇ ProtocolStatus ÇÔ¼ö´Â ¾î¶² ¾×¼ÇÀÌ ÇÁ·ÎÅäÄÝÀÌ º¸³»±â¸¦ Á¦½Ã¹Þ°í ProtocolStatus ÇÔ¼ö°¡ NDIS_STATUS_RESET_START¾Ë¸²À» ¹ÞÀÚ ¸¶ÀÚ ¿ä±¸ÇÏ°í ´ÙÀ½ Â÷·ÊÀÇ º¸³»±â°¡ ´Ù½Ã Àο¡ÀÌºí µÇ°í ProtocolStatus ÇÔ¼ö°¡ NDIS_STATUS_RESET_END¾Ë¸²À» ¹Þ¾Ò À» ¶§ÀÇ ¿ä±¸¸¦ ¹æÇØ ¹Þ´õ¶óµµ ÃëÇØ¾ß ÇÑ´Ù.
¿¹ Çϳª ´õ,NDISWANrhk ¹ÙÀ̵åÇÑ ¸ðµç ¹Ç·ÎÅäÄÝÀÇ ProtocolStatus ÇÔ¼ö´Â ¾Æ·¡´Ü WAN NIC ¹Ì´ÏÆ÷Æ®°¡ »õ·Î¿î ¸µÅ©°¡ »ý±â¸é ¾ðÁ¦¶óµµ line-up ¾Ë¸²À» ¹Þ´Â´Ù. ±×·± ÇÁ·ÎÅäÄÝÀÌ NDISWANÀÇ ¸µÅ©-ƯÁ¤ ÄÁÅØ½ºÆ® ÇÚµé ±³È¯Çß¾ú´ø ÈÄ, ProtocolStatus ÇÔ¼ö´Â ÇÁ·ÎÅäÄÝÀÌ ÀÌ ¸µÅ©¿¡¼ ÃÖ»óÀÇ È¿À²°ú(¶Ç´Â) ¼º´ÉÀ» »ç¿ëÇÒ ¼ö ÀÖ´ÂÃß°¡ÀûÀÎ ¸µÅ©-ƯÁ¤ ¶óÀÎ ¾÷, ¶óÀÎ-´Ù¿î, ±×¸®°í fragment indicationsÀ» ¹ÞÀ» ¼ö ÀÖ´Ù.
¾Æ·¡´Ü NIC µå¶óÀ̹ö°¡ »óÅ º¯È¸¦ ½ÅÈ£·Î ¾Ë¸± ¶§, ¿¬°áµÈ À̺¥Æ® Ä«¿îÅÍ¿Í thresholds´Â º¯ÇÏÁö ¾Ê´Â´Ù.
µðÆúÆ®·Î, ProtocolStatus ÇÔ¼ö´Â ÀÓÀÇÀÇ ½º·¹µå ÄÁÅØ½ºÆ®¿¡¼ IRQL DISPATCH_LEVEL¿¡¼ ½ÇÇàÇÑ´Ù.
|