TdiBuildDisconnect

VOID
   TdiBuildDisconnect (
       IN PIRP Irp,
       IN PDEVICE_OBJECT DevObj,
       IN PFILE_OBJECT FileObj,
       IN PVOID CompRoutine,
       IN PVOID Contxt,
       IN PLARGE_INTEGER Time,
  
   IN PULONG Flags,
       IN PTDI_CONNECTION_INFORMATION RequestConnectionInfo,
       OUT PTDI_CONNECTION_INFORMATION ReturnConnectionInfo
  
   );

TdiBuildDisconnect ÇÔ¼ö´Â ·ÎÄÃÀÇ Å¬¶óÀÌ¾ðÆ®°¡ ¿ø°ÝÁö¿Í ÀÌ¹Ì ¿£µåÆ÷ÀÎÆ® ´ë ¿£µåÆ÷ÀÎÆ® ¿¬°áÀ» ¼º¸³Ç߰ųª ±× Ŭ¶óÀÌ¾ðÆ®°¡ Àü¿¡ ±×·¯ÇÑ ¿¬°á ¼º¸³À» ±â´ëÇØ¼­ ´ë±â ¸®Äù½ºÆ®¸¦ Çß´ø ÇϺΠƮ·£½ºÆ÷Æ®·ÎÀÇ TDI_DISCONNECT ¸®Äù½ºÆ®¸¦ À§Çؼ­ ³»ºÎÀÇ ÀåÄ¡ ÅëÁ¦ IRP¸¦ ¼³Á¤ÇÑ´Ù.

¸Å°³º¯¼ö

Irp
´õ »óÀ§ ·¹º§ÀÇ ³×Æ®¿÷ ÄÄÆ÷³ÍÆ®¿¡¼­ ¹ß»ýÇϰųª TdiBuildInternalDeviceControlIrp ÇÔ¼ö¸¦ °¡Áö°í ÇÒ´çµÈ Ŭ¶óÀÌ¾ðÆ® Á¦°ø IRP¸¦ °¡¸®Å²´Ù.

DevObj
ÇϺÎÀÇ TDI Æ®·£½ºÆ÷Æ® µå¶óÀ̹ö¿¡ ÀÇÇØ¼­ »ý¼ºµÈ ÀåÄ¡ °´Ã¼¸¦ °¡¸®Å²´Ù.

FileObj
¿¬°á ¿£µåÆ÷ÀÎÆ®¸¦ ±¸ÇöÇÏ´Â ÆÄÀÏ °´Ã¼¸¦ °¡¸®Å²´Ù. Àü¿¡ Ŭ¶óÀÌ¾ðÆ®´Â ÀÌ ¿¬°á ¿£µåÆ÷ÀÎÆ®¿Í ·ÎÄà ÁÖ¼Ò»çÀÌ¿¡ °ü°è¸¦ ¼³Á¤Çϱâ À§Çؼ­ Æ®·£½ºÆ÷Æ®·Î TdiBuildAssociateAddress ÇÔ¼ö¸¦ °¡Áö°í ¼³Á¤µÈ ¸®Äù½ºÆ®¸¦ ¼º°øÇß´Ù. °Ô´Ù°¡ Ŭ¶óÀÌ¾ðÆ®´Â ´ÙÀ½Áß Çϳª¸¦ Çß´Ù:

  • ¿ø°ÝÁö¿Í ¿£µåÆ÷ÀÎÆ® ´ë ¿£µåÆ÷ÀÎÆ® ¿¬°áÀ» ¼º¸³Çϱâ À§Çؼ­ TdiBuildConnect ÇÔ¼ö¸¦ °¡Áö°í ¼³Á¤µÈ ¸®Äù½ºÆ®¸¦ ¼º°øÇß´Ù.
  • TDI_CONNECT ¸®Äù½ºÆ®¸¦ ½ÃÀÛÇÑ ¿ø°ÝÁö·ÎºÎÅÍ ÀÌ ¿¬°á Á¦°øÀ» ¹Þ¾Æµé¿´´Ù.
  • TdiBuildListen ÇÔ¼ö¸¦ °¡Áö°í ¼³Á¤µÈ ¿ø°ÝÁö·ÎºÎÅÍ ¿¬°á Á¦°øÀ» ¸¸Á·ÇÏ´Â ¸®Äù½ºÆ®¸¦ ¼º°øÀûÀ¸·Î Á¦ÃâÇß´Ù.

CompRoutine
Ŭ¶óÀÌ¾ðÆ® Á¦°ø IoCompletion ·çƾÀÇ ¿£Æ®¸® Æ÷ÀÎÆ®¸¦ ¼­¼úÇϰųª NULLÀÌ´Ù. Ŭ¶óÀÌ¾ðÆ®°¡ ÀÌ ¸Å°³º¯¼ö¸¦ NULL·Î ¼³Á¤ÇÏÁö ¾Ê¾Ò´Ù¸é ÁÖ¾îÁø IRP°¡ ¿Ï·áµÉ ¶§ I/O ¸Å´ÏÀú´Â ÀÌ ·çƾÀ» È£ÃâÇÑ´Ù.

Contxt
Ŭ¶óÀÌ¾ðÆ® °áÁ¤ ÄÁÅØ½ºÆ®¸¦ °¡¸®Å²´Ù. ÀÌ Å¬¶óÀÌ¾ðÆ® Á¦°ø Æ÷ÀÎÅÍ´Â ¿Ï·áµÈ IRP¸¦ °¡Áö°í È£ÃâµÉ ¶§ IoCompletion ·çƾÀ¸·Î Àü´ÞµÈ´Ù. CompRoutineÀÌ NULLÀ̸é Contxt´Â NULLÀÌ´Ù.

Time
Æ®·£½ºÆ÷Æ®°¡ ¿¬°á ÇØÁ¦ ½Ãµµ¸¦ À§Çؼ­ »ç¿ëÇÏ´Â ½Ã½ºÅÛ °ü·Ã ŸÀӾƿôÀ» ¼­¼úÇÏ´Â º¯¼ö¸¦ °¡¸®Å²´Ù. ¾Æ´Ï¸é ÀÌ ¸Å°³º¯¼ö´Â NULLÀÏ ¼ö ÀÖ´Ù.

¸íÈ®ÇÑ Å¸ÀӾƿôÀº Æ®·£½ºÆ÷Æ®°¡ ÀÌ ¿¬°áÇØÁ¦ ¸®Äù½ºÆ®¸¦ ½ÇÆÐÇϱâ Àü¿¡ ¿¬°á ÇØÁ¦ ½Ãµµ°¡ Áö¿¬»óŸ¦ À¯ÁöÇϵµ·Ï Çã¶ôÇÏ´Â ÇöÀç ½Ã½ºÅÛ ½Ã°£°ú °ü°èµÈ À½ÀÇ 100 ³ª³ëÃÊ °£°ÝÀÇ ¼ö·Î½á ¼­¼úµÇ¾î¾ßÇÑ´Ù. ÀÌ Æ÷ÀÎÅͰ¡ NULLÀÌ¸é Æ®·£½ºÆ÷Æ®´Â ¿ø°ÝÁö·ÎºÎÅÍÀÇ ¿¬°áÇØÁ¦¸¦ À§Çؼ­ ÀÚ½ÅÀÇ ±âº» ŸÀӾƿô °£°ÝÀ» »ç¿ëÇÑ´Ù.

Flags
0À̳ª ÇϺÎÀÇ Æ®·£½ºÆ÷Æ®°¡ ÅëÁ¦µÈ ¿¬°áÇØÁ¦¸¦ Áö¿øÇÑ´Ù¸é ´ÙÀ½Áß ÇϳªÀÇ °ªÀÌ µÉ ¼ö ÀÖ´Â º¯¼ö¸¦ °¡¸®Å²´Ù:

TDI_DISCONNECT_ABORT
Áö¿¬µÈ ¸®Äù½ºÆ®¸¦ ¿Ï·áÇÏ·Á´Â ½Ãµµ¾øÀÌ ÇϺÎÀÇ Æ®·£½ºÆ÷Æ®´Â Áï½Ã ¿¬°áÀ» ´Ý¾Æ¾ß ÇÑ´Ù´Â °ÍÀ» ¼­¼úÇÑ´Ù. ÀÌ °ªÀº Flags¿¡ 0À¸·Î ¼³Á¤µÇ´Â °Í°ú ¸¶Âù°¡Áö·Î ±âº»ÀÌ´Ù.

Ŭ¶óÀÌ¾ðÆ®´Â ¿¬°á¿¡¼­ ÀÛ¾÷ÀÌ µÇ´Â ½Ã°£¿¡ TDI_DISCONNECT_ABORT¸¦ °¡Áö°í ¿¬°áÇØÁ¦ ¸®Äù½ºÆ®¸¦ ÇÒ ¼ö ÀÖ´Ù. ¿¹¸¦µé¾î ±×·¯ÇÑ Å¬¶óÀÌ¾ðÆ®´Â Àü¿¡ Çß´ø ´ë±â ¸®Äù½ºÆ®³ª Áö¿¬µÈ ¿¬°áÀ» Ãë¼ÒÇϰíÀÚÇÑ´Ù. ¶Ç´Ù¸¥ ¿¹·Î½á Ŭ¶óÀÌ¾ðÆ®´Â ÇϺÎÀÇ Æ®·£½ºÆ÷Æ®·Î ÇÏ¿©±Ý TDI_DISCONNECT_RELEASE¸¦ °¡Áö°í ¾Õ¼± ¿¬°áÇØÁ¦ ¸®Äù½ºÆ®°¡ Áö¿¬µÈ »óÅ¿¡ ÀÖÀ» ¶§ TDI_DISCONNECT_ABORT¸¦ °¡Áö°í µÎ¹øÂ° ¿¬°áÇØÁ¦ ¸®Äù½ºÆ®¸¦ Á¦½ÃÇÏ¹Ç·Î½á ¿£µåÆ÷ÀÎÆ® ´ë ¿£µåÆ÷ÀÎÆ® ¿¬°áÀ» ´Ýµµ·Ï °­¿äÇÒ ¼ö ÀÖ´Ù.

TDI_DISCONNECT_RELEASE
³ªÁß¿¡ ¼­¼ú(ÁÖ¼®À» ºÁ¶ó)µÈ °Íó·³ ÇϺÎÀÇ Æ®·£½ºÆ÷Æ®´Â ÅëÁ¦µÈ ¿¬°á ÇØÁ¦¸¦ ½ÃÀÛÇØ¾ßÇÑ´Ù´Â °ÍÀ» ¼­¼úÇÑ´Ù. ¶ÇÇÑ ¿ø°ÝÁöÀÇ Å¬¶óÀÌ¾ðÆ®´Â ÅëÁ¦µÈ ¿¬°áÇØÁ¦¸¦ È®½ÇÈ÷ ÇϱâÀ§Çؼ­ ÀÌ °ªÀ» °¡Áö°í ¿¬°áÇØÁ¦ ¸®Äù½ºÆ®¸¦ Á¦½ÃÇÑ´Ù.

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

Ŭ¶óÀÌ¾ðÆ®´Â ¿¬°áÇØÁ¦ ¸®Äù½ºÆ®¿¡¼­ ¼±ÇàµÇ´Â ¿É¼ÇÁß¿¡ Çϳª¸¸À» ¼³Á¤ÇÒ ¼ö ÀÖ´Ù. Æ®·£½ºÆ÷Æ®´Â ÀÌ ¿É¼ÇÀ» ¿©·¯°³ÇÏ´Â °ÍÀ» ½ÇÆÐÇÒ °ÍÀÌ´Ù.

RequestConnectionInfo
¿£µåÆ÷ÀÎÆ® ´ë ¿£µåÆ÷ÀÎÆ®ÀÇ ÅëÁ¦µÈ ¿¬°áÇØÁ¦¸¦ ½ÃÀÛÇÒ ¶§ Ŭ¶óÀÌ¾ðÆ®°¡ ¾î¶² º¸³»±â¸¦ ÇÑ´Ù¸é ¿¬°áÇØÁ¦ µ¥ÀÌŸ¸¦ Æ÷ÇÔÇÏ´Â TDI_CONNECTION_INFORMATION ±¸Á¶Ã¼¸¦ Æ÷ÇÔÇϴ Ŭ¶óÀÌ¾ðÆ® Á¦°ø ¹öÆÛ¸¦ °¡¸®Å²´Ù. ÀÌ ¸Å°³º¯¼ö´Â È£ÃâÀÚ°¡ TDI_DISCONNECT_RELEASE¸¦ °¡Áö°í ¿¬°áÇØÁ¦¸¦ ½ÃÀÛÇÑ´Ù¸é NULLÀ̾î¾ßÇÑ´Ù.

ReturnConnectionInfo
¿ø°ÝÀÇ Å¬¶óÀÌ¾ðÆ®°¡ ÅëÁ¦µÈ ¿¬°áÇØÁ¦¸¦ ½ÃÀÛÇÑ´Ù°í ÃßÃøµÇ´Â ¿ø°ÝÁö·ÎºÎÅÍ ¹ÞÀº ¿¬°áÇØÁ¦ µ¥ÀÌŸ¸¦ ¸®ÅÏÇÏ´Â Æ®·£½ºÆ÷Æ®¾È¿¡ TDI_CONNECTION_INFORMATION ±¸Á¶Ã¼·Î½á Æ÷¸ËµÈ È£ÃâÀÚ Á¦°ø ¹öÆÛ¸¦ °¡¸®Å²´Ù. ÀÌ ¸Å°³º¯¼ö´Â È£ÃâÀÚ°¡ TDI_DISCONNECT_RELEASE¸¦ °¡Áö°í ¿¬°áÇØÁ¦¸¦ µ¿ÀÇÇÏÁö ¾Ê´Â´Ù¸é NULLÀ̾î¾ßÇÑ´Ù. ·ÎÄÃÀÇ Å¬¶óÀÌ¾ðÆ®´Â TdiBuildListen ȤÀº TdiBuildConnect ÇÔ¼ö¸¦ °¡Áö°í ¼³Á¤µÈ ¸®Äù½ºÆ®¿¡¼­ ¿¬°áÀ» Àç»ç¿ëÇÑ ÈÄ¿¡ ¸®ÅÏµÈ ¿¬°áÇØÁ¦ µ¥ÀÌŸ¸¦ µÇãÀ» ¼ö ¾ø´Ù.

ÁÖ¼®

TdiBuildDisconnect ÇÔ¼ö´Â ÁÖ¾îÁø IRPÀÇ Æ®·£½ºÆ÷Æ® I/O ½ºÅà ·ÎÄÉÀ̼Ǿȿ¡ MajorFunction·Î½á IRP_MJ_INTERNAL_DEVICE_CONTROLÀ» ¼³Á¤Çϰí MinorFunction·Î½á TDI_DISCONNECT¸¦ ¼³Á¤ÇÑ´Ù. ÀÌ IRP´Â ÀÌ¹Ì ¼º¸³µÈ ¿ø°ÝÁö¿ÍÀÇ ¿£µåÆ÷ÀÎÆ® ´ë ¿£µåÆ÷ÀÎÆ® ¿¬°áÀÌ ÆÄ±«µÆÀ½À» ¸®Äù½ºÆ®ÇÑ´Ù.

¶ÇÇÑ Å¬¶óÀÌ¾ðÆ®´Â ¿ø°ÝÁö¿¡ ÀÇÇØ¼­ ½ÃÀÛµÈ ¿¬°á·Î µé¾î¿À´Â ¸®Äù½ºÆ®¸¦ °ÅÀýÇÏ´Â ¿¬°áÇØÁ¦ ¸®Äù½ºÆ®¸¦ Á¦½ÃÇÒ ¼ö ÀÖ´Ù. ÀÌ·± °æ¿ì¿¡ Ŭ¶óÀÌ¾ðÆ®´Â ¼±ÅÃµÈ TDI_QUERY_ACCEPT ¿É¼ÇÀ» °¡Áö°í Àü¿¡ ÇàÇØÁø ¿Ï·áµÈ TDI_LISTEN ¸®Äù½ºÆ®¿¡ ÀÀ´äÁßÀÌ´Ù. ȤÀº Ŭ¶óÀÌ¾ðÆ®´Â ClientEventConnect ÇÔ¼ö·ÎºÎÅÍ Á¦°øµÈ ¿¬°áÇØÁ¦¸¦ °ÅÀýÁßÀÌ´Ù. ±×·¯ÇÑ Å¬¶óÀÌ¾ðÆ®´Â Flags¿¡ 0À̳ª TDI_DISCONNECT_ABORT¸¦ °¡Áö°í TdiBuildDisconnect ÇÔ¼ö¸¦ È£ÃâÇÑ´Ù.

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

¾î¶² ¿¬°áÇØÁ¦ ¿¬»êÀÌ ¿Ï·áµÉ ½Ã°£À̱⠶§¹®¿¡ ¿¬°áÇØÁ¦ IRP¸¦ ¿Ï¼ºÇϱâ Àü¿¡ ¼º¸³µÈ ¿£µåÆ÷ÀÎÆ® ´ë ¿£µåÆ÷ÀÎÆ® ¿¬°á»ó¿¡¼­ Ŭ¶óÀÌ¾ðÆ®´Â Ãß°¡ÀûÀÎ TSDU¸¦ ¹ÞÀ» ¼ö ÀÖ´Ù. ±×·¯¹Ç·Î Ŭ¶óÀÌ¾ðÆ®´Â ¿¬°áÇØÁ¦ ¿Ï·áÅ뺸¸¦ ¹ÞÀ» ¶§±îÁö À¯ÁöµÇ´Â ÄÁÅØ½ºÆ®°¡ ±×·¯ÇÑ ¿¬°áÀ» À§Çؼ­ À¯È¿ÇÏ´Ù°í °¡Á¤ÇÒ ¼ö ÀÖ´Ù. ¿¹¸¦µé¾î TdiBuildDisconnect ÇÔ¼ö·Î Á¦°øµÇ´Â IoCompletion ·çƾÀ¸·ÎÀÇ È£Ãâ¿¡ ÀÇÇØ¼­ ±×·¯ÇÏ´Ù. ¿¬°áÇØÁ¦ ¿Ï·áÅ뺸´Â ¿¬°á»ó¿¡¼­ ¸®½Ãºê ÀεðÄÉÀ̼ÇÀ» Æ÷ÇÔÇÏ´Â ¸ðµç µ¿ÀÛÀÇ Áß´ÜÀ» ÀǹÌÇÑ´Ù.

Ŭ¶óÀÌ¾ðÆ®°¡ TDI_DISCONNECT_RELEASE¸¦ °¡Áö°í ÅëÁ¦µÈ ¿¬°áÇØÁ¦¸¦ ¸®Äù½ºÆ®ÇÏÁö ¾Ê´Â´Ù¸é Æ®·£½ºÆ÷Æ®´Â ¿¬°á¿¡¼­ µÎµå·¯Áø I/O ¸®Äù½ºÆ®¸¦ ¿Ï·áÇÏÁö ¾Ê¾Ò°í ¿¬°áÇØÁ¦ ¸®Äù½ºÆ®·ÎºÎÅÍ ÅëÁ¦¸¦ ¸®ÅÏÇϱâ Àü¿¡ ¿ø°ÝÁö°¡ ¿¬°áÇØÁ¦¸¦ Å뺸ÇßÀ½À» È®ÀÎÇÏÁö ¾Ê¾Ò´Ù. ±×·¯ÇÑ ¿¬°áÇØÁ¦ ¸®Äù½ºÆ®¸¦ À§Çؼ­ ÇϺÎÀÇ Æ®·£½ºÆ÷Æ®´Â ´ÜÁö ÁÖ¾îÁø ¿¬°á¿¡¼­ ¸ðµç µÎµå·¯Áø ¸®Äù½ºÆ®¸¦ Ãë¼ÒÇÑ´Ù. ±×¸®°í Ŭ¶óÀ̾ðÆ®ÀÇ ¿¬°áÇØÁ¦ ¸®Äù½ºÆ®¸¦ ¿Ï·áÇϰí ÅëÁ¦¸¦ ¸®ÅÏÇÑ´Ù.

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

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

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