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À» ½ÇÇàÇÑ´Ù.