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