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¸¦ ä¿ì±â À§Çؼ »ç¿ëÇÏ´Â ¸ÅÅ©·ÎÀÌ´Ù.
|