TDI_DISCONNECT

Ä¿³Î ¸ðµå Ŭ¶óÀÌ¾ðÆ®°¡ TDI_DISCONNECT ¸®Äù½ºÆ®¸¦ ÇÒ ¶§ Ä¿³Î ¸ðµå Ŭ¶óÀÌ¾ðÆ®´Â ÇϺÎÀÇ TDI Æ®·£½ºÆ÷Æ® µå¶óÀ̹ö·Î ÇÏ¿©±Ý ¼º¸³µÈ ¿£µåÆ÷ÀÎÆ® ´ë ¿£µåÆ÷ÀÎÆ® ¿¬°áÀ» À§Çؼ­ ¿ø°ÝÁö·ÎºÎÅÍ ¿¬°áÇØÃ¼ ÀεðÄÉÀ̼ÇÀ» ¾Ë¸®±â À§Çؼ­ ȤÀº ¿ø°ÝÁö¿¡ ÀÇÇØ¼­ Á¦°øµÈ ¿¬°áÀ» °ÅÀýÇϱâ À§Çؼ­ ¿ø°ÝÁö¿ÍÀÇ ¿¬°áÇØÃ¼ ÀεðÄÉÀ̼ÇÀ» Çϵµ·Ï ¿ä±¸ÇÑ´Ù.

IRP

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

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

    STATUS_SUCCESS
    STATUS_PENDING
    STATUS_INVALID_CONNECTION
    STATUS_REQUEST_TIMED_OUT

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

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

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

    IrpSp->Parameters
    TDI_REQUEST_KERNEL ±¸Á¶Ã¼¿Í ´ëµîÇÑ TDI_REQUEST_KERNEL_DISCONNECT ±¸Á¶Ã¼¸¦ °¡¸®Å²´Ù.

    ¸î¸î Æ®·£½ºÆ÷Æ® µå¶óÀ̹ö´Â ÁÖ¾îÁø ¿¬°á¿¡¼­ Áï½Ã ¸ðµç µ¿ÀÛÀ» Á¾·áÇÑ´Ù. ³ª¸ÓÁö´Â ÅëÁ¦µÈ ¿¬°áÇØÃ¼¸¦ Áö¿øÇϱâ À§Çؼ­ RequestFlags ¸â¹öÀÇ Å¬¶óÀÌ¾ðÆ® Á¦°ø °ªÀ» »ç¿ëÇÑ´Ù. ±×·¯ÇÑ Æ®·£½ºÆ÷Æ®¸¦ À§Çؼ­ RequestFlags´Â ´ÙÀ½Áß¿¡ Çϳª·Î ¼³Á¤µÉ ¼ö ÀÖ´Ù:

    TDI_DISCONNECT_ABORT
    Æ®·£½ºÆ÷Æ®°¡ ¿¬°á»ó¿¡¼­ Áö¿¬µÈ ¿¬»êÀÇ ¿Ï·á¾øÀÌ Áï½Ã ¿¬°áÀ» ´Ý¾Æ¾ßÇÑ´Ù´Â °ÍÀ» ¼­¼úÇÑ´Ù. À̰ÍÀº ÅëÁ¦µÈ ¿¬°áÇØÃ¼¸¦ Áö¿øÇÏÁö ¾Ê´Â Æ®·£½ºÆ÷Æ®¸¦ Æ÷ÇÔÇÏ¿© ¸ðµç Æ®·£½ºÆ÷Æ®¿¡°Ô ±â´ëµÇ´Â ±âº»ÀûÀÎ ÇൿÀÌ´Ù. °á°úÀûÀ¸·Î RequestFlags¿¡ ´ëÇÑ ÀÌ °ªÀº RequestFlags °ªÀÌ 0 ÀΰÍó·³ Æ®·¡½ºÆ÷Æ®°¡ ¶È°°Àº °ÍÀ» Çϵµ·Ï Áö½ÃÇÑ´Ù: Æ®·£½ºÆ÷Æ®´Â ¿¬°áÀ» À§Çؼ­ µé¾î¿À´Â ¸®Äù½ºÆ®¸¦ °ÅÀýÇØ¾ßÇÏ°í Æ¯Á¤ ¿¬°á ¿£µåÆ÷ÀÎÆ®¿¡¼­ÀÇ ¸ðµç µ¿ÀÛÀ» ¸ØÃß°Ô ÇØ¼­ ¿¬°áÀ» À§Çؼ­ ³»ºÎÀûÀ¸·Î Å¥¿¡ À¯ÁöµÇ´Â ƯÁ¤ ¸®Äù½ºÆ®¸¦ Ãë¼ÒÇØ¾ßÇÑ´Ù.

    Àü¿¡ TDI_DISCONNECT_RELEASE¸¦ °¡Áö°í ÇàÇØÁø ¿¬°áÇØÃ¼ ¸®Äù½ºÆ®°¡ ¿¬°á»ó¿¡¼­ Áö¿¬µÈ 󸮸¦ °¡Áö°í ÀÖ´Ù¸é Ŭ¶óÀÌ¾ðÆ®´Â TDI_DISCONNECT_ABORT¸¦ °¡Áö°í ¶Ç´Ù¸¥ ¿¬°áÇØÃ¼ ¸®Äù½ºÆ®¸¦ Á¦½ÃÇÒ ¼ö ÀÖ´Ù. ±×·¡¼­ ÇϺÎÀÇ Æ®·£½ºÆ÷Æ®°¡ ¿¬°áÀ» Áï½Ã ´Ýµµ·Ï °­¿äÇÑ´Ù.

    TDI_DISCONNECT_RELEASE
    ³ªÁß¿¡ ÁÖ¼®¿¡¼­ ¼³¸íÇÑ °Íó·³ Æ®·£½ºÆ÷Æ®°¡ ¿¬°áÇØÃ¼¸¦ ½ÃÀÛÇϰųª ¿ø°ÝÁö·ÎºÎÅÍ ½ÃÀÛµÈ ÅëÁ¦µÈ ¿¬°áÇØÃ¼¸¦ È®½ÇÈ÷ ÇØ¾ßÇÑ´Ù´Â °ÍÀ» ¼­¼úÇÑ´Ù.

    ¿ø°ÝÁö»ó¿¡ ÀÖ´Â Æ®·£½ºÆ÷Æ®¿¡°Ô·Î Æ®·£½ºÆ÷Æ® Á¦°ø »óÅ Á¤º¸·Î º¸¿ÏµÇ´Â ¿¬°áÇØÃ¼ µ¥ÀÌŸ¸¦ Á¦°øÇϱâ À§Çؼ­ Æ®·£½ºÆ÷Æ®´Â RequestConnectionInformation¿¡ ¹öÆÛ¾È¿¡ Ŭ¶óÀÌ¾ðÆ® Á¦°ø Á¤º¸¸¦ »ç¿ëÇÑ´Ù. ÀÌ ¹öÆÛ´Â TDI_CONNECTION_INFORMATION ±¸Á¶Ã¼·Î½á Æ÷¸ËµÈ´Ù.

    Æ®·£½ºÆ÷Æ®´Â ¿¬°áÇØÃ¼ µ¥ÀÌŸ¸¦ ¸®ÅÏÇÒ ¼ö ÀÖ°í ReturnConnectionInformation¿¡ Ŭ¶óÀÌ¾ðÆ® Á¦°ø ¹öÆÛ¿¡ ¿ø°ÝÁöÀÇ Æ®·£½ºÆ÷Æ®¿¡ ÀÇÇØ¼­ Á¦°øµÇ´Â »óÅ Á¤º¸¸¦ ¸®ÅÏÇÒ ¼ö ÀÖ´Ù. ÀÌ ¹öÆÛ´Â TDI_CONNECTION_INFORMATION ±¸Á¶Ã¼·Î½á Æ÷¸ËµÈ´Ù. Ŭ¶óÀÌ¾ðÆ®°¡ ¼øÂ÷ÀûÀÎ TDI_LISTEN ȤÀº TDI_CONNECT ¸®Äù½ºÆ®¿¡¼­ ¿¬°áÀ» Àç»ç¿ëÇÒ ¶§±îÁö ÀÌ ¹öÆÛÀÇ ³»¿ëÀº À¯È¿ÇÏ´Ù.

    TDI_DISCONNECT_WAIT Ç÷¡±×´Â Àç»ç¿ëµÇÁö ¾Ê´Â´Ù.

    IrpSp->Parameters.RequestSpecific
    ¿¬°áÇØÃ¼ ¿¬»ê¿¡ ´ëÇÑ Å¸ÀӾƿô °£°ÝÀ» ¼­¼úÇÏ´Â LARGE_INTEGER º¯¼ö¸¦ °¡¸®Å°°Å³ª ȤÀº NULLÀ» °¡¸®Å²´Ù. ¸íÈ®ÇÑ Å¸À̾ƿôÀº ŸÀӾƿô °£°ÝÀ» À§Çؼ­ ÇöÀç ½Ã½ºÅÛ ½Ã°£°ú °ü·ÃµÈ À½ÀÇ 100 ³ª³ëÃÊ À¯´ÖÀ¸·Î ¼­¼úµÈ´Ù. ÀÌ ¸â¹ö°¡ NULLÀ̶ó¸é Æ®·£½ºÆ÷Æ®´Â 1Ãʺ¸´Ù ÀÛÀº °ªÀ¸·Î ÀûÀýÇÑ Å¸ÀӾƿô °ªÀ» ¼±ÅÃÇØ¾ßÇÑ´Ù.

ÁÖ¼®

¿¬°áÇØÃ¼ ¿¬»êµ¿¾È¿¡ ÇϺÎÀÇ Æ®·£½ºÆ÷Æ® µå¶óÀ̹ö´Â ¼º¸³µÈ ¿¬°áÀ» À§Çؼ­ µé¾î¿À´Â ¸®Äù½ºÆ®¸¦ Àç»ç¿ëÇÑ´Ù. ±×¸®°í Æ®·£½ºÆ÷Æ®°¡ ÅëÁ¦µÈ ¿¬°áÇØÃ¼¸¦ Áö¿øÇÏÁö ¾Ê´Â´Ù¸é ƯÁ¤ ¿¬°á ¿£µåÆ÷ÀÎÆ®¿¡¼­ ¸ðµç µ¿ÀÛÀ» ¸ØÃá´Ù. Áï Ŭ¶óÀ̾ðÆ®ÀÇ ¿¬°áÇØÃ¼ ¸®Äù½ºÆ® ¿Ï·á´Â ÁÖ¾îÁø ¿¬°á»ó¿¡¼­ ¸®½Ãºê ÀεðÄÉÀ̼ÇÀ» Æ÷ÇÔÇÏ´Â ¸ðµç µ¿ÀÛÀÇ Áß´ÜÀ» ÀǹÌÇÑ´Ù.

±âº»ÀûÀ¸·Î TDI_DISCONNECT´Â ÅëÁ¦µÈ ¿¬°áÇØÃ¼ ¿¬»êÀÌ ¾Æ´Ñ ¿£µåÆ÷ÀÎÆ® ´ë ¿£µåÆ÷ÀÎÆ® ¿¬°áÀÇ ¿¬°áÇØÃ¼¸¦ ¸®Äù½ºÆ®ÇÑ´Ù: Æ®·£½ºÆ÷Æ®´Â ¿¬°áÇØÃ¼ ¸®Äù½ºÆ®¸¦ ¿Ï·áÇϰí ÅëÁ¦¸¦ ¸®ÅÏÇϱâ Àü¿¡ ¿¬°á»ó¿¡¼­ ƯÁ¤ I/O ¸®Äù½ºÆ®¸¦ ¿Ï·áÇÒ Çʿ䰡 ¾ø´Ù. ±×·¯ÇÑ ¿¬°áÇØÃ¼ ¿¬»êÀ» À§Çؼ­ Æ®·£½ºÆ÷Æ®´Â ÀüÇüÀûÀ¸·Î ÁÖ¾îÁø ¿¬°á¿¡¼­ ¸ðµç ƯÁ¤ ¸®Äù½ºÆ®¸¦ Ãë¼ÒÇÑ´Ù. ±×¸®°í ´ëÀÀÇÏ´Â ¿ø°ÝÀÇ Æ®·£½ºÆ÷Æ®´Â ·ÎÄÃÀÇ Æ®·£½ºÆ÷Æ®°¡ Ŭ¶óÀ̾ðÆ®ÀÇ ¿¬°áÇØÃ¼ ¸®Äù½ºÆ®¸¦ ¿Ï·áÇϰí ÅëÁ¦¸¦ ¸®ÅÏÇϱâ Àü¿¡ Ŭ¶óÀÌ¾ðÆ®·Î ÇÏ¿©±Ý ¿¬°áÇØÃ¼¸¦ È®½ÇÈ÷ ÇÒ Çʿ䰡 ¾ø´Ù.

¿£µåÆ÷ÀÎÆ® ´ë ¿£µåÆ÷ÀÎÆ® ¿¬°á¿¡¼­ Ŭ¶óÀÌ¾ðÆ®´Â ÇϺÎÀÇ TDI Æ®·£½ºÆ÷Æ®°¡ À̰ÍÀ» Áö¿øÇÑ´Ù¸é ÅëÁ¦µÈ ¿¬°áÇØÃ¼¸¦ ¸®Äù½ºÆ®ÇÒ ¼ö ÀÖ´Ù. ±×·¸´Ù¸é TDI_DISCONNECT ¸®Äù½ºÆ®¸¦ °¡Áö°í ¿¬°áÇØÃ¼ ¿¬»êÀ» ½ÃÀÛÇϴ Ŭ¶óÀÌ¾ðÆ®´Â ¿ø°ÝÁö¿¡°Ô ¿£µåÆ÷ÀÎÆ® ´ë ¿£µåÆ÷ÀÎÆ® ¿¬°á¸® ´ÝÈù´Ù´Â °ÍÀ» ¾Ë¸®±â À§Çؼ­ ±×µéÀÇ ¿¬»ê¿¡ µ¿µîÇÑ ¾çÂÊÀÇ Æ®·£½ºÆ÷Æ®¸¦ ¾ß±âÇÒ ¼ö ÀÖ´Ù. ÀÌ·¯ÇÑ »óȲ¿¡¼­ ¿ø°ÝÀÇ Å¬¶óÀÌ¾ðÆ®´Â ÇϺÎÀÇ Æ®·£½ºÆ÷Æ®°¡ ¿¬°áÇØÃ¼ ¸®Äù½ºÆ®¸¦ ½ÃÀÛÇÏ´Â ·ÎÄÃÀÇ Å¬¶óÀÌ¾ðÆ®·ÎºÎÅÍ ¸®ÅϵDZâ Àü¿¡ ¿¬°áÇØÃ¼¸¦ È®½ÇÈ÷ ÇØ¾ßÇÑ´Ù.

´ÙÀ½Àº ÅëÁ¦µÈ ¿¬°áÇØÃ¼¸¦ À§ÇÑ ¼øÂ÷ÀûÀÎ ¿¬»êÀ» ¿ä¾àÇÑ´Ù:

  1. ·ÎÄÃÀÇ Å¬¶óÀÌ¾ðÆ®´Â RequestFlags¾È¿¡ ¼³Á¤µÈ TDI_DISCONNECT_RELEASE¸¦ °¡Áö°í ¿¬°áÇØÃ¼ ¸®Äù½ºÆ®¸¦ ÇÏ¹Ç·Î½á ¿¬°áÇØÃ¼¸¦ ½ÃÀÛÇÑ´Ù. °á°úÀûÀ¸·Î ÀÌ Å¬¶óÀÌ¾ðÆ®´Â ¿¬°á»ó¿¡¼­ µ¥ÀÌŸ¸¦ ´õ ÀÌ»ó º¸³¾ ¼ö ¾øÁö¸¸ ¿ø°ÝÁö·ÎºÎÅÍ µ¥ÀÌŸ ¼ö½ÅÀ» °è¼ÓÇÒ ¼ö ÀÖ´Ù. ±×·¯ÇÑ ·ÎÄÃÀÇ Å¬¶óÀÌ¾ðÆ®°¡ ¿¬°áÇØÃ¼ ¸®Äù½ºÆ®¸¦ ÇÒ ¶§ ÇϺÎÀÇ Æ®·£½ºÆ÷Æ®´Â ÇöÀç À¯ÁöÇϰí ÀÖ´Â Áö¿¬µÈ º¸³»±â ¸®Äù½ºÆ®¸¦ À§ÇÑ µ¥ÀÌŸ¸¦ Àü¼ÛÇÑ´Ù. ±×¸®°í Ŭ¶óÀÌ¾ðÆ®·Î ´Ù½Ã ÀÌ ¸®Äù½ºÆ®¸¦ ¿Ï·áÇÑ´Ù. ±×¸®°í ¿¬°áÇØÃ¼°¡ ¹ß»ýÇÏ´Â ¿ø°ÝÀÇ Æ®·£½ºÆ÷Æ®¿¡°Ô Å뺸ÇÑ´Ù.
  2. ¿ø°ÝÁöÀÇ Æ®·£½ºÆ÷Æ®´Â Ŭ¶óÀÌ¾ðÆ®¿¡ ÀÇÇØ¼­ ÇàÇØÁø Áö¿¬µÈ ¸®½Ãºê ¸®Äù½ºÆ®¸¦ À§Çؼ­ Æò¹üÇÑ ¿¬»êÀ» ¼öÇàÇÑ´Ù. ±×·±µ¥ ClientEventDisconnect Çڵ鷯¸¦ µî·ÏÇß´Ù¸é ÀÌ ÇÔ¼ö¸¦ È£ÃâÇϹǷνá ȤÀº Ŭ¶óÀÌ¾ðÆ®¿¡ ÀÇÇØ¼­ ÇàÇØÁø ƯÁ¤ ¸®Äù½ºÆ®¿¡ ´ëÇÑ ¿¡·¯ Äڵ带 ¸®ÅÏÇÏ¹Ç·Î½á ¿ø°ÝÀÇ Å¬¶óÀÌ¾ðÆ®´Â Å¬¶óÀ̾ðÆ®ÀÇ Áö¿¬µÈ ¿¬°áÇØÃ¼¸¦ Å뺸ÇÑ´Ù. ±×·¯ÇÑ Å뺸 ÈÄ¿¡ ¿ø°ÝÀÇ Å¬¶óÀÌ¾ðÆ®´Â ¿¬°á»ó¿¡¼­ ´õ ÀÌ»ó µ¥ÀÌŸ¸¦ ¹ÞÀ» ¼ö ¾øÁö¸¸ RequestFlags¿¡ ¼³Á¤µÈ TDI_DISCONNECT_RELEASE¸¦ °¡Áö°í TDI_DISCONNECT ¸®Äù½ºÆ®¸¦ ÇÒ ¶§±îÁö °è¼Ó µ¥ÀÌŸ¸¦ º¸³¾ ¼ö ÀÖ´Ù.
  3. ¿ø°ÝÀÇ Å¬¶óÀÌ¾ðÆ®°¡ µ¥ÀÌŸ Àü¼ÛÀ» ¸¶ÃÆÀ» ¶§ ¿ø°ÝÀÇ Å¬¶óÀÌ¾ðÆ®´Â RequestFlags¿¡ ¼³Á¤µÈ TDI_DISCONNECT_RELEASE¸¦ °¡Áö°í ÇϺÎÀÇ Æ®·£½ºÆ÷Æ®·Î ¿¬°áÇØÃ¼ ¸®Äù½ºÆ®¸¦ ÇÑ´Ù. Ŭ¶óÀ̾ðÆ®ÀÇ ¿¬°áÇØÃ¼ ¸®Äù½ºÆ®¸¦ ¿Ï·áÇϱâ Àü¿¡ Æ®·£½ºÆ÷Æ®´Â ¿¬°á»ó¿¡¼­ ¸ðµç ƯÁ¤ º¸³»±â¸¦ ¿Ï·áÇÑ´Ù. Æ®·£½ºÆ÷Æ®°¡ ÀÌ ¿¬°áÇØÃ¼ ¸®Äù½ºÆ®¸¦ ¿Ï·áÇÒ ¶§ ¿¬°áÀº ¿ø°ÝÁöÀÇ °üÁ¡¿¡¼­ º¼ ¶§ ´ÝÈù´Ù. ±×·¯³ª ¿¬°á ¿£µåÆ÷ÀÎÆ®´Â ¾ÆÁ÷µµ À¯È¿Çϰí Ŭ¶óÀÌ¾ðÆ®´Â ³ªÁß¿¡ ´Ù½Ã »ç¿ëÇÒ ¼ö ÀÖ´Ù.
  4. ¿ø°ÝÀÇ Æ®·£½ºÆ÷Æ®´Â ¿ø°ÝÁö»ý¿¡¼­ÀÇ ¿¬°áÇØÃ¼¸¦ È®½ÇÈ÷ Çϱâ À§Çؼ­ ·ÎÄÃÀÇ Æ®·£½ºÆ÷Æ®¿¡°Ô Å뺸ÇÑ´Ù. ÀÌ ½ÃÁ¡¿¡¼­ ¿ø·¡ÀÇ ¿¬°áÇØÃ¼ ¸®Äù½ºÆ®´Â ·ÎÄÃÀÇ Æ®·£½ºÆ÷Æ®¿¡ ÀÇÇØ¼­ ¿Ï·áµÇ°í ¿¬°áÀº ¿¬°áÇØÃ¼¸¦ ½ÃÀÛÇÏ´Â ·ÎÄÃÀÇ Å¬¶óÀÌ¾ðÆ® °üÁ¡¿¡¼­ ´ÝÈù´Ù. ±×·¯³ª ¿¬°áÀº ¾ÆÁ÷µµ À¯È¿Çϰí Ŭ¶óÀÌ¾ðÆ®´Â ´Ù½Ã »ç¿ëÇÒ ¼ö ÀÖ´Ù.
ÇϺÎÀÇ Æ®·£½ºÆ÷Æ®°¡ Áö¿¬µÈ ¿¬°á ½ÂÀÎÀ» Áö¿øÇÑ´Ù¸é Ŭ¶óÀÌ¾ðÆ®´Â ¿ø°ÝÁö¿¡¼­ Á¦°øµÈ µé¾î¿À´Â ¿¬°áÀ» °ÅÀýÇϱâ À§Çؼ­ TDI_DISCONNECT ¸®Äù½ºÆ®¸¦ Á¦ÃâÇÒ ¼ö ÀÖ´Ù. ±×·¯ÇÑ Å¬¶óÀÌ¾ðÆ®´Â Å¬¶óÀÌ¾ðÆ®°¡ TDI_QUERY_ACCEPT Ç÷¡±×¸¦ ¼³Á¤ÇÑ ¿Ï·áµÈ TDI_LISTEN ¸®Äù½ºÆ®¿¡ ´ëÇØ¼­ ÀÀ´äÇϰųª µî·ÏµÈ Ŭ¶óÀ̾ðÆ®ÀÇ ClientEventConnect Çڵ鷯·Î Æ®·£½ºÆ÷Æ®¿¡ ÀÇÇØ¼­ ´Ù½Ã ³õÀÎ Á¦°ø¿¡ ´ëÇÑ ÀÀ´äÀÌ´Ù.

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