TDI_DISASSOCIATE_ADDRESS

Ä¿³Î ¸ðµå Ŭ¶óÀÌ¾ðÆ®°¡ TDI_DISASSOCIATE_ADDRESS ¸®Äù½ºÆ®¸¦ ÇÒ ¶§ Ä¿³Î ¸ðµå Ŭ¶óÀÌ¾ðÆ®´Â TDI Æ®·£½ºÆ÷Æ® µå¶óÀ̹ö·Î ÇÏ¿©±Ý ƯÁ¤ ·ÎÄà ÁÖ¼Ò¿Í ¿¬°á ¿£µåÆ÷ÀÎÆ® »çÀÌ¿¡¼­ ¼º¸³µÈ °ü°è¸¦ ÆÄ±âÇϵµ·Ï ¿ä±¸ÇÑ´Ù.

IRP

    IrpSp·Î½á ´ÙÀ½ÀÇ ¸®½ºÆ®¿¡ º¸¿©Áö´Â IRP¾È¿¡ ÀÚ½ÅÀÇ I/O ½ºÅà ·ÎÄÉÀ̼ǿ¡ ´ëÇÑ Æ÷ÀÎÅ͸¦ ¾ò±â À§Çؼ­ Æ®·£½ºÆ÷Æ®´Â ÁÖ¾îÁø Irp¸¦ °¡Áö°í IoGetCurrentIrpStackLocation ÇÔ¼ö¸¦ È£ÃâÇÑ´Ù. IRP¿¡ ´ëÇÑ Æ÷ÀÎÅÍ´Â Irp·Î½á ´ÙÀ½ÀÇ ¸®½ºÆ®¿¡ º¸¿©Áø´Ù. ÀÌ ¸®Äù½ºÆ®¿Í ¿¬°üµÈ IRP ¸â¹ö´Â ´ÙÀ½°ú °°´Ù:

    Irp->IoStatus.Status
    disassociate-address ¸®Äù½ºÆ®ÀÇ ¸¶Áö¸· »óŸ¦ ¼­¼úÇÑ´Ù. Æ®·£½ºÆ÷Æ®´Â IRP¸¦ ¿Ï·áÇϱâ Àü¿¡ ´ÙÀ½Áß¿¡ Çϳª·Î ÀÌ ¸â¹ö¸¦ ¼³Á¤ÇÑ´Ù:

    STATUS_SUCCESS
    STATUS_INVALID_CONNECTION

    IrpSp->MajorFunction
    IRP_MJ_INTERNAL_DEVICE_CONTROLÀ» ¼­¼úÇÑ´Ù. Æ®·£½ºÆ÷Æ®°¡ TDI_XXX ¸®Äù½ºÆ®¸¸À» ´Ù·ç´Â TdiDispatchInternalDeviceControl ·çƾÀ» ÀͽºÆ÷Æ®ÇÑ´Ù¸é ÀÌ ¸â¹ö¸¦ ¹«½ÃÇÒ ¼ö ÀÖ´Ù.

    IrpSp->MinorFunction
    TDI_DISASSOCIATE_ADDRESS¸¦ ¼­¼úÇÑ´Ù.

    IrpSp->FileObject
    ·ÎÄà ÁּҷκÎÅÍ ¿¬°üÀÌ ²÷±ä ¿¬°á ¿£µåÆ÷ÀÎÆ®¸¦ ±¸ÇöÇÏ´Â ¿­¸° ÆÄÀÏ °´Ã¼¸¦ °¡¸®Å²´Ù. ¿¬°á¿¡ ´ëÇØ¼­ À¯ÁöµÇ´Â »óÅ·ÎÀÇ Á¢±ÙÀ» À§Çؼ­ Æ®·£½ºÆ÷Æ®´Â FsContext¿Í °¡´ÉÇÏ´Ù¸é FsContext2 Çʵ带 »ç¿ëÇÑ´Ù.

ÁÖ¼®

¿¬°üµÈ ·ÎÄà ÁּҷκÎÅÍ ¿¬°áÀ» ºñȰ¼ºÈ­Çϱâ À§Çؼ­ ±× Ŭ¶óÀÌ¾ðÆ®°¡ ¿ø°ÝÁö¿ÍÀÇ ¿¬°áÇØÃ¼¸¦ ½ÃÀÛÇÏµç ¾ÈÇÏµç ¿¬°á ¿£µåÆ÷ÀÎÆ®¿ÍÀÇ °ü°è¸¦ ²÷´Â ÀÌ·¯ÇÑ ¸®Äù½ºÆ®¸¦ Ŭ¶óÀÌ¾ðÆ®´Â ÇàÇÑ´Ù.

ÁÖ¼Ò°¡ °ü°è°¡ ²÷±ä ÈÄ¿¡ Ŭ¶óÀÌ¾ðÆ®´Â ¶Ç´Ù¸¥ TDI_ASSOCIATE_ADDRESS ¸®Äù½ºÆ®¸¦ ÇÏ¹Ç·Î½á ¶Ç´Ù¸¥ ¿­¸° ·ÎÄà ÁÖ¼Ò¸¦ °¡Áö°í ¿¬°á ¿£µåÆ÷ÀÎÆ®¸¦ ´Ù½Ã ¿¬°üÁþ°Å³ª ´Ù¸¥ ¿¬°á ¿£µåÆ÷ÀÎÆ®¸¦ °¡Áö°í ÁÖ¼Ò¸¦ ´Ù½Ã ¿¬°ü Áþ´Â´Ù. °á±¹ Æ®·£½ºÆ÷Æ®´Â ±×·¯ÇÑ ÁÖ¼Ò¿Í ¿¬°á ¿£µåÆ÷ÀÎÆ®¸¦ ±¸ÇöÇÏ´Â ÆÄÀÏ °´Ã¼°¡ TDI_DISASSOCIATE_ADDRESS ¸®Äù½ºÆ®ÀÇ ¿Ï·á ÈÄ¿¡´Â ´ÝÈú °ÍÀ̶ó´Â °ÍÀ» °¡Á¤ÇÒ ¼ö ¾ø´Ù.

TdiBuildDisassociateAddress´Â Ŭ¶óÀÌ¾ðÆ®°¡ ÀÌ IRP¸¦ ä¿ì±â À§Çؼ­ »ç¿ëÇÏ´Â ¸ÅÅ©·ÎÀÌ´Ù.