MiniportReset
NDIS_STATUS
MiniportReset(
OUT PBOOLEAN AddressingReset,
IN NDIS_HANDLE MiniportAdapterContext
);
|
MiniportResetÇÔ¼ö´Â NIC¿¡ ´ëÇÑ Çϵå¿þ¾î ¸®¼ÂÀ» ¹ß»ýÇϰųª ȤÀº µå¶óÀ̹öÀÇ ¼ÒÇÁÆ®¿þ¾î »óŸ¦
¸®¼ÂÇÏ´Â µ¥ ÇÊ¿äÇÑ ÇÔ¼öÀÌ´Ù.
¸Å°³º¯¼ö
- AddressingReset
- MiniportReset´Â ¸¸¾à ÇöÀç °ªµé¿¡ ´ëÇÑ ÁÖ¼Ò Á¤º¸¸¦ ȸº¹Çϱâ À§ÇØ MiniportSetInformation¸¦
È£ÃâÇØ¾ß ÇÑ´Ù¸éÀº TRUE·Î ¼³Á¤ÇÏ´Â º¯¼ö¸¦ °¡¸®Å²´Ù.
- MiniportAdapterContext
- µå¶óÀ̹ö°¡ MiniportInitialize¿¡ ÀÇÇØ ¼³Á¤µÈ NIC ´ç »óŸ¦ À¯ÁöÇÏ´Â ¹Ì´ÏÆ÷Æ® ÇÒ´ç ÄÁÅØ½ºÆ®
¿µ¿ª¿¡ ´ëÇÑ ÇÚµéÀ» ÁöÁ¤ÇÑ´Ù.
¸®Åϰª
MiniportResetÀº ´ÙÀ½°ú °°Àº °ªÁß Çϳª°¡ ¸®Å쵃 ¼ö ÀÖ´Ù:
- NDIS_STATUS_SUCCESS
- MiniportResetÀº ¼º°øÀûÀ¸·Î ¿¬»ê »óÅ¿¡ ´ëÇÑ NICÀ» ¸®¼ÂÇÑ´Ù.
- NDIS_STATUS_PENDING
- µå¶óÀ̹ö´Â ¿¬»êÀÌ ÇàÇØÁú ¶§ NdisMResetCompleteÀ» È£ÃâÇÔÀ¸·Î½á ºñµ¿±âÀûÀ¸·Î ¸®¼Â ¿¬»êÀ»
¿Ï¼ºÇÒ °ÍÀÌ´Ù.
- NDIS_STATUS_NOT_RESETTABLE
- NICÀÌ ¼ÒÇÁÆ®¿þ¾î Á¦¾î¾Æ·¡¿¡¼ ¸®¼Â ´É·ÂµéÀ» Á¦°øÇÏÁö ¾Ê´Â´Ù.
- NDIS_STATUS_RESET_IN_PROGRESS
- MiniportResetÀº NICÀÌ ÇöÀç ¸®¼ÂµÇ¾îÁø °ÍÀ» °áÁ¤ÇÑ´Ù. ±×·¡¼ ÀÌ È£ÃâÀº superfluousÀÌ´Ù.
- NDIS_STATUS_SOFT_ERRORS
- MiniportResetÀº ¼º°øÀûÀ¸·Î NICÀ» ¸®¼ÂÇÏÁö¸¸Àº ȸº¹ÇÒ ¼ö ÀÖ´Â ¿¡·¯°¡ ¿¬»êµ¿¾È ÀϾÙ.
MiniportResetÀº ¿¡·¯¿¡ ´ëÇÑ ´õ ¸¹Àº Á¤º¸·Î NdisWriteErrorLogEntryÀ» È£ÃâÇÑ´Ù.
- NDIS_STATUS_HARD_ERRORS
- MiniportResetÀº NICÀ» ¸®¼ÂÇϱâ À§ÇØ ½ÃµµÇÏÁö¸¸Àº ȸº¹ÇÒ ¼ö ¾ø´Â ¿¡·¯´Â ¿¬»êÇÏ´Â µ¿¾È
¹ß»ýÇÑ´Ù. MiniportResetÀº ¿¡·¯¿¡ ´ëÇÑ ´õ ¸¹Àº Á¤º¸·Î NdisWriteErrorLogEntry¸¦ È£ÃâÇÑ´Ù.
ÁÖ¼®
MiniportResetÀº NICÀÇ ¸Å°³º¯¼öµéÀ» ¸®¼ÂÇÒ ¼ö ÀÖ´Ù. ¸¸¾à ¸®¼ÂÀÌ NICÀÇ ½ºÅ×ÀÌ¼Ç ÁÖ¼Ò³»¿¡ º¯È¸¦
¾ß±âÇÑ´Ù¸éÀº, ¹Ì´ÏÆ÷Æ®´Â ÀÚµ¿ÀûÀ¸·Î ¸®¼Â¿¡ ¾Õ¼ ½ºÅ×ÀÌ¼Ç ÁÖ¼Ò¸¦ ¾Õ¼± °ªÀ¸·Î ȸº¹ÇÑ´Ù.
Çϵå¿þ¾î¿¡ ÀÇÇØ ¸®¼ÂµÇ´Â ¾î¶² ¸ÖƼij½ºÆ® ȤÀº ±â´ÉÀûÀÎ ÁÖ¼Ò ¸¶½ºÅ©µéÀº ÀÌ ÇÔ¼ö¿¡¼ ¸®¼ÂÀ»
ÇÒ Çʿ䰡 ¾ø´Ù.
¸¸¾à ¸ÖƼij½ºÆ® ȤÀº ±â´ÉÀûÀÎ ÁÖ¼Ò Á¤º¸ ȤÀº lookahead Å©±â¿Í °°Àº ´Ù¸¥ Á¤º¸´Â
¸®¼Â¿¡ ÀÇÇØ º¯ÇÑ´Ù¸éÀº, MiniportResetÀº Á¦¾î°¡ ¸®ÅÏÇϱâ Àü¿¡ AddressingReset º¯¼ö¸¦ TRUE·Î
¼³Á¤ÇØ¾ß ÇÑ´Ù. À̰ÍÀº NDIS°¡ Á¤º¸¸¦ ȸº¹Çϱâ À§ÇØ MiniportSetInformation ÇÔ¼ö¸¦ È£ÃâÇÏ´Â
°ÍÀ» ¾ß±âÇÑ´Ù.
ÀϹÝÀûÀÎ ±ÔÄ¢À¸·Î, NDIS ÀÎÅ͹̵ð¾ù µå¶óÀ̹öÀÇ MiniportReset ÇÔ¼ö´Â Ç×»ó
AddressingResetÀ» TRUE·Î Ç×»ó ¼³Á¤ÇØ¾ß ÇÑ´Ù. ¾Æ·§ NIC µå¶óÀ̹ö°¡ NICÀ» ¸®¼ÂÇÒ ¶§±îÁö, ±×·¯ÇÑ
ÀÎÅ͹̵ð¾ù µå¶óÀ̹ö´Â ±×°ÍÀÌ °¡»ó NICÀ» À§ÇØ ÁÖ¼Ò Á¤º¸¸¦ ȸº¹ÇØ¾ß ÇÏ´ÂÁö¸¦ °áÁ¤ÇÒ ¼ö ¾ø´Ù.
ÀÎÅ͹̵ð¾ù µå¶óÀ̹ö´Â Å¥¿¡ ÀúÀåµÈ º¸³»´Â °Íµé Áß NDIS ¶óÀ̺귯¸® ŸÀ̹ÖÀ» ºÒ°¡´ÉÇÏ°Ô Çϰí
±× ÀÚü¿¡°Ô NdisMSetAttributesEx¿¡ ´ëÇÑ ÃʱâÈ ½Ã°£ È£Ãâ·Î ¿ä±¸Çϱ⠶§¹®¿¡, ±×·¯ÇÑ µå¶óÀ̹öÀÇ
MiniportReset ÇÔ¼ö´Â ´ÜÁö ¸®¼Â ¿ä±¸°¡ ¾Æ·§ NIC µå¶óÀ̹ö·Î Áö½ÃµÇ¾îÁú ¶§ ´ÜÁö È£ÃâµÇ¾îÁø´Ù.
´Ù¸¥ ŸÀÔµéÀÇ ÀåÄ¡ µå¶óÀ̹ö À§¿¡ ±×µé ÀÚ½ÅÀÌ ³õÀÎ ÀÎÅ͹̵ð¾ù µå¶óÀ̹öµéÀº ¶ÇÇÑ MiniportReset
ÇÔ¼ö¸¦ °¡Á®¾ß ÇÑ´Ù. ±×·¯ÇÑ MiniportReset ÇÔ¼ö´Â NdisReset¿¡ ´ëÇÑ ÇÁ·ÎÅäÄÝ µå¶óÀ̹öÀÇ È£Ãâ¿¡ ÀÇÇØ
ÃʱâÈµÈ ¸®¼Â ¿ä±¸µéÀ» ´Ù·ï¾ß ÇÑ´Ù. ¸¸¾à ÀÎÅ͹̵ð¾ù µå¶óÀ̹ö´Â ¶ÇÇÑ MiniportCheckForHang ÇÔ¼ö¸¦
°¡Áø´Ù¸éÀº, MiniportReset ÇÔ¼ö´Â MiniportCheckForHangÀÌ TRUE¸¦ È£ÃâÇÒ ¶§¸¶´Ù È£ÃâµÇ¾îÁú °ÍÀÌ´Ù.
MiniportResetÀÌ NICÀ» ¸®¼ÂÇϱâ Àü¿¡ ȤÀº NICÀÇ ¼ÒÇÁÆ®¿þ¾î »óŸ¦ ¾÷µ¥ÀÌÆ®Çϱâ Àü¿¡:
- ¹Ì´ÏÆ÷Æ®´Â ¼±ÅÃÀûÀ¸·Î ¾î¶² Áö¿¬ OID ¿ä±¸µéÀ» ¿Ï¼ºÇÒ °ÍÀÌ´Ù. NDIS´Â ¸®¼Â ¿¬»êÀÌ ¸¶Ä¥ ¶§±îÁö
¸®¼ÂÇÏ´Â NICÀ» ¹Ì´ÏÆ÷Æ®¿¡ ´õÀÌ»ó OID ¿ä±¸µéÀ» Á¦ÃâÇÏÁö ¾ÊÀ» °ÍÀÌ´Ù.
¸®¼Â ÈÄ¿¡, NDIS´Â Áö¿¬µÆÁö¸¸Àº ¸®¼ÂµÇ±âÀü¿¡ ¹Ì´ÏÆ÷Æ®¿¡ ÀÇÇØ ¿Ï¼ºÇÏÁö ¸øÇÑ ¾î¶² OID ¿ä±¸µéÀ»
¹Ì´ÏÆ÷Æ®¿¡ ´Ù½Ã Á¦ÃâÇÒ °ÍÀÌ´Ù.
- Á÷·ÄÈµÈ ¹Ì´ÏÆ÷Æ®´Â ¾î¶² Áö¿¬ º¸³»±â ¿¬»êµéÀ» ¿Ï¼ºÇØ¾ß ÇÑ´Ù. ¸¸¾à ¹Ì´ÏÆ÷Æ®°¡ ¸®¼ÂÀ» ¿Ï¼ºÇϱâ
Àü¿¡, ¸ðµç Áö¿¬ º¸³»±â ¿¬»êµéÀÌ ¿Ï¼ºÇÏÁö ¾Ê´Â´Ù¸éÀº, NDIS´Â ¸®¼Â ¿¬»êÀÌ ¸¶Ä£ ÈÄ¿¡ ½ÇÆÐ »óÅ·Î
ÀÌ·¯ÇÑ ¿¬»êµéÀ» ¿Ï·áÇÒ °ÍÀÌ´Ù.
- ºñÁ÷·ÄÈµÈ ¹Ì´ÏÆ÷Æ®´Â ¾î¶² Áö¿¬ º¸³»±â ¿¬»êÀ» ¿Ï¼ºÇØ¾ß ÇÑ´Ù. NDIS´Â NDIS°¡ ±×·¯ÇÑ µå¶óÀ̹ö¸¦
À§ÇØ º¸³»±â Å¥¸¦ À¯ÁöÇÒ ¼ö ¾ø±â ¶§¹®¿¡ ºñÁ÷·ÄÈµÈ µå¶óÀ̹ö¸¦ À§ÇØ Áö¿¬ º¸³»±â ÆÐŶµéÀ» ´Ù½Ã Å¥¿¡
ÀúÀåÇÏÁö ¾ÊÀ» °ÍÀÌ´Ù.
¸®¼Â ¿¬»êÀÌ ¸¶Ä£ ÈÄ¿¡, ¹Ì´ÏÆ÷Æ®´Â Áö¿¬µÇ¾úÁö¸¸Àº ¸®¼ÂµÇ±â Àü¿¡ ¿Ï¼ºÇÏÁö ¸øÇÑ ¾î¶² º¸³»±â ¿¬»êµéÀ»
¿Ï¼ºÇÏ´Â ½Ãµµ¸¦ ÇÒ Çʿ䰡 ¾ø´Ù.
¹Ì´ÏÆ÷Æ®´Â NDIS°¡ ¸®¼ÂÀÌ ½ÃÀÛµÇ°í ³¡³¯ ¶§ ¹Ù¿îµåµÈ ÇÁ·ÎÅäÄݵ鿡°Ô ÁÖÁöÇϱ⠶§¹®¿¡ °¢ ¸®¼Â ¿¬»êÀÇ
½ÃÀÛ°ú ³¡À» ½ÅÈ£ÈÇϱâ À§ÇØ NdisM(Co)IndicateStatusÀ» È£ÃâÇÒ Çʿ䰡 ¾ø´Ù.
¸¸¾à MiniportReset´Â ¸®¼Â ¿¬»êµ¿¾È, NIC¿¡¼ »óÅ º¯ÈµéÀ» À§ÇÏ¿© ±â´Ù·Á¾ß ÇÑ´Ù¸éÀº, ±×°ÍÀº
NdisStallExecutionÀ» È£ÃâÇÒ ¼ö ÀÖ´Ù. ±×·¯³ª, MiniportReset ÇÔ¼ö´Â 50¸¶ÀÌÅ©·ÎÃʵ麸´Ù ´õ Å«
½Ã°£ °£°ÝÀ¸·Î NdisStallExecutionÀ» È£ÃâÇÏÁö ¸»¾Æ¾ß ÇÑ´Ù.
¸ðµç NDIS ÀÎÅ͹̵ð¾ù µå¶óÀ̹ö´Â MiniportInitialize·ÎºÎÅÍ NdisMSetAttributesEx¸¦ È£ÃâÇØ¾ß Çϰí
ÀÎÅ͹̵ð¾ù µå¶óÀ̹ö¿¡¼ ¿ä±¸µé°ú º¸³»±âµéÀ» ŸÀӾƿôÇϱâ À§ÇÑ NDIS ½ÃµµµéÀ» ºÒ°¡´ÉÇÏ°Ô ÇØ¾ß ÇÑ´Ù.
NDIS´Â ÀÎÅ͹̵ð¾î µå¶óÀ̹öÀÇ MiniportCheckForHang ÇÔ¼ö¸¦ ½ÇÇàÇÑ´Ù,if any, ´ë·« ¸Å 2Ãʸ¶´Ù.
NDIS´Â NICÀÌ ¸®½ÃºêµéÀ» ¸ØÃß´ÂÁö °áÁ¤ÇÒ ¼ö ¾ø¾î¼, MiniportCheckForHangÀ» Á¦°øÇÏ´Â °ÍÀº
µå¶óÀ̹ö°¡ ÀÌ Á¶°ÇÀ» À§ÇØ NICÀ» ¸ð´ÏÅÍÇÏ°í ¸¸¾à ÀϾ¸éÀº °Á¦ÀûÀ¸·Î ¸®¼ÂÇÏ´Â °ÍÀ» Çã¶ôÇϳ®.
µðÆúÆ®·Î, MiniportResetÀº IRQL DISPATCH_LEVELÀ» ½ÇÇàÇÑ´Ù.
|