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 ÇÔ¼öµé¸¸ ´ÜÁö È£ÃâÇÒ
¼ö ÀÖ´Ù.
|