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