MiniportShutdown

VOID

  MiniportShutdown(

    IN PVOID  ShutdownContext

    );

MiniportShuwdownÀº »ç¿ëÀÚ¿¡ ÀÇÇØ ȤÀº ȸº¹ÇÒ ¼ö ¾ø´Â ½Ã½ºÅÛ ¿¡·¯°¡ ¹ß»ýÇÒ ¶§ ½Ã½ºÅÛÀÌ ¼Ë´Ù¿îµÉ ¶§ NICÀ» Ãʱ⠻óÅ·Πȸº¹ÇÏ´Â ¼±ÅÃÀûÀÎ ÇÔ¼öÀÌ´Ù.

¸Å°³º¯¼ö

ShutdownContext
NIC µå¶óÀ̹öÀÇ MiniportInitializeÇÔ¼ö°¡ NdisMRegisterAdapterShutdownHandler°¡ È£ÃâÇÒ ¶§ Á¦°øµÇ¾îÁö´Â ÄÁÅØ½ºÆ® ¿µ¿ªÀ» °¡¸®Å²´Ù. Ç×»ó, ÀÔ·Â º¯¼ö´Â ´Ù¸¥ MiniportXxx ÇÔ¼öµé¿¡ Àü´ÞµÇ¾îÁö´Â NIC ƯÁ¤ MiniportAdapterContext Æ÷ÀÎÅÍÀÌ´Ù.

ÁÖ¼®

¸ðµç NIC µå¶óÀ̹ö´Â MiniportShutdown ÇÔ¼ö¸¦ °¡Á®¾ß ÇÑ´Ù. MiniportShutdown ÇÔ¼ö´Â ´ÜÁö NICÀ» ÃʱâÈ­»óÅ·Πȸº¹ÇÑ´Ù.(¹Ì´ÏÆ÷Æ®ÀÇ DriverEntry ÇÔ¼ö°¡ ½ÇÇàÇϱâ Àü¿¡) ±×·¯³ª À̰ÍÀº NICÀÌ ¾Ë·ÁÁø »óÅ·ΠµÇ°Ô ÇØ¾ß Çϰí ÄÄÇ»ÅͰ¡ ½Ã½ºÅÛ Å¬·¡½¬¸¦ Æ÷ÇÔÇØ ¾î¶² ÀÌÀ¯·ÎÇØ¼­ ½Ã½ºÅÛ ¼Ë´Ù¿îÀÌ ÀϾ ÈÄ ÀçºÎÆ®µÉ ¶§ ÀçÃʱâÈ­ÇÒ Áغñ°¡ µÇ°Ô ÇØ¾ß ÇÑ´Ù.

NIC µå¶óÀ̹öÀÇ MiniportInitialize ÇÔ¼ö´Â MiniportShutdown ÇÔ¼ö¸¦ ¼³Á¤Çϱâ À§ÇØ NdisMRegisterAdapterShutdownHandler¸¦ È£ÃâÇØ¾ß ÇÑ´Ù. µå¶óÀ̹öÀÇ MiniportHalt ÇÔ¼ö´Â NdisMDeregisterAdapterShutdownHandler¿¡ ´ëÇÑ »óÈ£ È£ÃâÀ» ÇØ¾ß ÇÑ´Ù.

¸¸¾à MiniportShutdownÇÔ¼ö°¡ »ç¿ëÀÚ ÃʱâÈ­ ½Ã½ºÅÛ ¼Ë´Ù¿îÀ¸·Î ÀÎÇØ È£ÃâµÇ¾îÁø´Ù¸éÀº ½Ã½ºÅÛ ¾²·¹µå ÄÁÅØ½ºÆ® ³»¿¡¼­ IRQL PASSIVE_LEVEL¿¡¼­ ½ÇÇàÇÑ´Ù. ¸¸¾à ȸº¹ÇÒ ¼ö ¾ø´Â ¿¡·¯·Î È£ÃâµÇ¾îÁø´Ù¸éÀº, MiniportShutdownÀº Á¶Á¤µÈ IRQL¿¡¼­ ½ÇÇàµÇ°í ¾î¶² ÄÁÆ÷³ÍÆ®¿¡¼­ ¿¡·¯¸¦ ¹ß»ýÇÑ ÄÁÅØ½ºÆ®³»¿¡¼­ ½ÇÇàµÈ´Ù. ¿¹¸¦ µé¸éÀº, MiniportShutdownÀº ½Ã½ºÅÛÀÇ °è¼ÓµÈ ½ÇÇà¿¡ ÇʼöÀÎ ÀåÄ¡¸¦ À§ÇÑ ISRÀÇ ÄÁÅØ½ºÆ®³»¿¡¼­ ³ôÀº DIRQL¿¡¼­ ½ÇÇàÇÒ °ÍÀÌ´Ù.

MiniportShutdownÀÌ Á¶Á¤µÈ IRQL¿¡¼­ ½ÇÇàµÇ±â ¶§¹®¿¡, ¾î¶² IRQL¿¡¼­ È£Ãâ¿¡ ´ëÇÑ ¾ÈÀüÇÑ NdisXxx ÇÔ¼öµé¸¸ ´ÜÁö È£ÃâÇÒ ¼ö ÀÖ´Ù.