ProtocolUnload
VOID
ProtocolUnload(
VOID
);
|
ProtocolUnloadÇÔ¼ö´Â ¿É¼ÇÇÔ¼öÀÌ´Ù. ProtocolUnloadÇÔ¼ö´Â ÇÁ·ÎÅäÄÝÀÌ ·±·Îµå µÇ±â Àü¿¡ Ŭ¸°¾÷ ¿¬»êÀ» ¼öÇàÇÑ´Ù.
ÁÖ¼®
ÇÁ·ÎÅäÄÝÀ» ¾ðÀνºÅç ÇÏ·Á´Â »ç¿ëÀÚ ¿ä±¸ÀÇ ÀÀ´äÀ¸·Î, NdisRegisterProtocolÇÔ¼ö·Î ÆÐ½ºµÈ NDIS_PROTOCOL_CHARACTERISTICS±¸Á¶Ã¼¾È¿¡ ÀÌ ÇÔ¼öÀÇ ¾ØÆ®¸® Æ÷ÀÎÆ®°¡ µî·ÏµÇ¾î ÀÖÀ¸¸é NDIS´Â ÇÁ·ÎÅäÄÝÀÇ ProtocolUnloadÇÔ¼ö¸¦ È£ÃâÇÑ´Ù. NDIS´Â °¢ ¹ÙÀεåµÈ ¾îµªÅ͸¦ À§ÇØ ÇÁ·ÎÅäÄÝÀÇ ProtocolUnbindAdapter¤¾¸¶¼ö¸¦ Çѹø È£ÃâÇÏ´Â °Í ´ÙÀ½¿¡ ProtocolUnload ÇÔ¼ö¸¦ È£ÃâÇÑ´Ù.
ProtocolUnloadÇÔ¼ö´Â µå¶óÀ̹ö °áÁ¤ Ŭ¸°¾÷ ¿¬»êÀ» ¼öÇàÇÑ´Ù. ¿¹¸¦ µé¾î, ProtocolUnloadÇÔ¼ö´Â ÇÁ·ÎÅäÄÝ¿¡ÀÇÇØ ÀͽºÆ÷Æ®µÈ ¿¸° ÀåÄ¡ °´Ã¼¿¡ ´ëÇÑ ÇÚµéÀ» ´Ý±â À§ÇØ Å¬¶óÀÌ¾ðÆ®¿¡°Ô ¿ä±¸ÇÒ ¼ö ÀÖ´Ù. ±×·± ÇÚµéÀÌ ¸ðµÎ ´ÝÈú ¶§ ±îÁö, I/O ¸Å´ÏÀú´Â ÇÁ·ÎÅäÄÝÀÌ DriverEntry ÇÔ¼ö·Î ÆÐ½ºÇÑ ÀåÄ¡ °´Ã¼¿¡ µî·ÏÇÑ DriverUnload ÇÔ¼ö¸¦ È£ÃâÇÏÁö ¸»¾Æ¾ß ÇÑ´Ù. ¸ðµç ÇÚµéÀÌ ´ÝÈù ´ÙÀ½, ProtocolUnload ÇÔ¼ö´Â ÇÁ·ÎÅäÄÝ¿¡ ÀÇÇØ »ý¼ºµÈ ÀåÄ¡ °´Ã¼¸¦ Áö¿ì±â À§ÇØ IoDeleteDevice ÇÔ¼ö¸¦ ÇÑ ¹øÀ̳ª ±× ÀÌ»ó È£Ãâ ÇÒ ¼ö ÀÖ´Ù.
ProtocolUnloadÇÔ¼ö´Â ÇÁ·ÎÅäÄÝÀÌ ¿¬ ¹ÙÀεùÀ» ´ÝÀ» Çʿ䰡 ¾ø´Ù. ÇÁ·ÎÅäÄÝÀÇ DriverUnload ÇÔ¼ö°¡ NdisDeregisterProtocolÇÔ¼ö¸¦ È£Ãâ ÇßÀ» ¶§, NDIS´Â ÇÁ·ÎÅäÄÝÀÌ ¿¬ ¹ÙÀεùÀ» À§ÇØ ÇÁ·ÎÅäÄÝÀÇ ProtocolUnbindAdaptergÇÔ¼ö¸¦ ÇÑ ¹ø È£ÃâÇÑ´Ù.
ProtocolUnloadÇÔ¼ö´Â ¾º¿©Áú ¼ö ÀÖ´Ù. ±×·¯¹Ç·Î À̰ÍÀº IRQL PASSIVE_LEVEL¿¡¼ ½ÇÇàÇÒ ¼ö ÀÖ´Ù.
|