WindowsNamedPipe
UserPreferences
serious-code.net
RecentChanges
±â¼úÀÚ·á
¸µÅ©
TitleIndex
ºí·Î±×
from
http://www.windevnet.com/documents/s=7779/win0302d/0302d.htm
°³¿ä
ÆÄÀÌÇÁ »ý¼º¿¡ ÀÖ¾î¼ÀÇ ¼±Åà »çÇ×
¿À¹ö·¦µå(OVERLAPPED) IO¿Í ´ÙÁß ½º·¹µå ¸ðµ¨
ÀÔÃâ·Â °ü·Ã ¿¡·¯ ó¸®
°´Ã¼ »ý¼º°ú °ü·ÃµÈ ¹®Á¦µé
Sysinternals Åøµé
1 °³¿ä
³×ÀÓµå ÆÄÀÌÇÁ´Â À©µµ¿ìÁî¿¡¼ »ç¿ëÇÒ ¼ö ÀÖ´Â
IPC
ÀÇ ÀÏÁ¾ÀÌ´Ù. °°Àº ¸Ó½Å ³»ÀÇ ÇÁ·Î¼¼½º°£ Åë½Å¿¡ ÀÌ¿ëÇÒ ¼öµµ ÀÖ°í, ´Ù¸¥ ¸Ó½ÅÀÇ ÇÁ·Î¼¼½º°£ Åë½Å¿¡µµ ÀÌ¿ëÇÒ ¼ö ÀÖ´Ù.
´Ù¸¥ ¸Ó½Å°úÀÇ Åë½Å¿¡ ÀÌ¿ëÇÒ ¶§, LAN »óÀ̶ó¸é ¼ÒÄϰú º°·Î Â÷À̰¡ ³ªÁö ¾ÊÀ¸³ª, ÀÎÅͳÝÀ» ÅëÇÏ°Ô µÇ¸é »ó´çÈ÷ ´À·ÁÁø´Ù. (Á¤È®È÷ Àç¾îº¸Áö´Â ¾Ê¾Ò´Âµ¥, ´ë° 10~100¹è Á¤µµ ´À·ÁÁö´Â µí ÇÏ´Ù.)
°£´ÜÇÑ ¼¹ö °£ Åë½Å °°Àº °ÍÀ» Á¦ÀÛÇÏ´Â °æ¿ì, TCP³ª UDPº¸´Ù´Â ÆÄÀÌÇÁ¸¦ ÀÌ¿ëÇÏ´Â °ÍÀÌ ÁÁ´Ù°í º»´Ù. ƯÈ÷³ª LAN »ó¿¡¼ÀÇ Åë½ÅÀ̶ó¸é ´õ¿í ÃßõÇÏ´Â ¹ÙÀÌ´Ù.
2 ÆÄÀÌÇÁ »ý¼º¿¡ ÀÖ¾î¼ÀÇ ¼±Åà »çÇ×
ÆÄÀÌÇÁ API °ü·Ã MSDNÀ» º¸¸é ¾Ë°ÚÁö¸¸, »ý¼ºÇÒ ¶§ »ó´çÈ÷ ¸¹Àº ¿É¼ÇÀ» ÁÙ ¼ö ÀÖ´Ù.
ÀÏ´Ü ¾ç¹æÇâÀ̳Ä, ´Ü¹æÇâÀ̳Ĵ º°·Î °í·ÁÇÒ °¡Ä¡°¡ ¾ø´Ù. Ư¼öÇÑ ¸ñÀûÀ» Á¦¿ÜÇϰí´Â ´Ü¹æÇâÀ» ¼±ÅÃÇÒ ÀÌÀ¯°¡ ¾ø´Ù°í »ý°¢ÇÑ´Ù. ±×¸®°í ºí·ÎÅ· ¿©ºÎ¸¦ °áÁ¤ÇÏ´Â PIPE_WAIT¿Í PIPE_NOWAITÀÇ °æ¿ì, PIPE_NOWAIT°¡ ÀÌÀüÀÇ È£È¯¼ºÀ» À§Çؼ¸¸ ¾ÆÁ÷ Áö¿øµÇ´Â °ÍÀ̹ǷÎ, ¹Ì·¡¸¦ À§Çؼ´Â »ç¿ëÇÏÁö ¾Ê´Â °ÍÀÌ ÁÁ´Ù.
Á» »ý°¢ÇØ º¼¸¸ÇÑ °Í Áß¿¡ ù¹øÂ°°¡ ÆÄÀÌÇÁ¸¦ »ý¼ºÇÒ ¶§ Åë½ÅÀ» ½ºÆ®¸² ±â¹ÝÀ¸·Î ÇÒ °ÍÀÎÁö, ¾Æ´Ï¸é ¸Þ½ÃÁö ±â¹ÝÀ¸·Î ÇÒ °ÍÀÎÁöÀÌ´Ù. ¹ÙÀÌÆ® ½ºÆ®¸² ±â¹Ý Åë½ÅÀÇ °æ¿ì TCP¿Í ¸¶Âù°¡Áö·Î, ¾ç ³¡´Ü¿¡¼ Á÷·ÄȰ¡ ÇÊ¿äÇϰí, µ¥ÀÌÅ͸¦ ¸ðµÎ ¹Þ¾Ò´Ù/¾Æ´Ï´ÙÀÇ Ã³¸® µîÀ» ÇØÁà¾ßÇÑ´Ù. º¹ÀâÇÑ ´ë½Å, µ¥ÀÌÅÍÀÇ ±æÀÌ¿¡´Â Á¦ÇÑÀÌ ¾ø´Ù. ¸Þ½ÃÁö ±â¹ÝÀÇ °æ¿ì, Á¤È®È÷ ¹Ý´ë´Ù. ¹®ÀÚ¿ ±â¹ÝÀ¸·Î »ý°¢ÇÏ¸é µÇ±â ¶§¹®¿¡, °£´ÜÇÏÁö¸¸, ¼·Î °£¿¡ Á¤ÇØÁø ±æÀÌ ÀÌ»óÀÇ ¹öÆÛ¸¦ »ç¿ëÇÒ ¼ö ¾ø´Ù. ¸Þ½ÃÁö ±â¹ÝÀÇ ¼¹ö/Ŭ¶óÀÌ¾ðÆ®¸¦ Á¦ÀÛÇÏ´Â °æ¿ì, µÎ ¸ðµâÀ» °°Àº °÷¿¡¼ ¸¸µç´Ù¸é ÆÄÀÌÇÁ ¹öÆÛÀÇ Å©±â´Â º°·Î °ÆÁ¤ÇÒ Çʿ䰡 ¾øÀ» °ÍÀÌ´Ù. ¹öÆÛÀÇ Å©±â¸¦ Á¤ÀÇÇÑ »ó¼ö¸¦ µÑÀÌ °øÀ¯ÇÏ¸é µÇ±â ¶§¹®ÀÌ´Ù. ´Ù¸¥ °÷¿¡¼ Á¦ÀÛÇÒ ¶§´Â... Èì.
µÎ¹øÂ°·Î »ý°¢Çغ¼¸¸ÇÑ °ÍÀº ÇÑ ¼ø°£¿¡ ÇϳªÀÇ Å¬¶óÀÌ¾ðÆ®¸¸ Á¢¼ÓÇϵµ·Ï ÇÒ °ÍÀ̳Ä, ¿©·¯ Ŭ¶óÀÌ¾ðÆ®¸¦ Á¢¼ÓÇÏ°Ô ÇÒ °ÍÀ̳ÄÀÌ´Ù. ´ëºÎºÐ ÇϳªÀÇ Å¬¶óÀÌ¾ðÆ®¸¸À» »ç¿ëÇÑ´Ù. ó¸® È¿À²ÀÌ ¶³¾îÁö´Â ´ë½Å,
¼¹ö
¿Í °ü·ÃµÈ ºÎºÐÀ» ÇÁ·Î±×·¡¹ÖÇÒ Çʿ䰡 ¾øÀ¸¹Ç·Î °£´ÜÇÏ´Ù.
±× ´ÙÀ½ ¿À¹ö·¦µå IO¿Í °ü·ÃµÈ ºÎºÐÀº ²Ï Áß¿äÇϹǷΠ¾Æ·¡¿¡ µû·Î ´Ù·ç°Ú´Ù.
3 ¿À¹ö·¦µå(OVERLAPPED) IO¿Í ´ÙÁß ½º·¹µå ¸ðµ¨
PIPE_NOWAIT¸¦ ÀÌ¿ëÇÒ ¼ö ¾øÀ¸¹Ç·Î, ¿À¹ö·¦µå IOÀÇ »ç¿ëÀº Çʼö¶ó°í »ý°¢ÇÑ´Ù. Åë½ÅÇÒ ¶§¸¶´Ù ÇÁ·Î±×·¥ÀÌ ºí·ÎÅ·µÈ´Ù´Â °ÍÀº »ó´çÈ÷ ÁÁÁö ¾Ê´Ù°í º»´Ù. ±âº»ÀûÀ¸·Î ÆÄÀÌÇÁ »ý¼º½Ã¿¡ FILE_FLAG_OVERLAPPED Ç÷¡±×¸¦ Áà¾ßÇÑ´Ù. ±×·¯¸é ÆÄÀÌÇÁÀÇ ¿¬°áÇϱâ, µ¥ÀÌÅÍ º¸³»±â, ¹Þ±â°¡ ºñµ¿±â ¹æ½ÄÀ¸·Î 󸮵ȴÙ. ¶ÇÇÑ ¿À¹ö·¦µå IO¸¦ ÀÌ¿ëÇÑ´Ù°í ÇØµµ ¾îÂ÷ÇÇ Wait`XXX ÇÔ¼ö ½Ã¸®Áî·Î IO°¡ ³¡³ª±â¸¦ ±â´Ù·Á¾ßÇϹǷÎ, ½º·¹µå¸¦ µû·Î ºÐ¸®ÇØ ½ÇÁúÀûÀÎ IO¸¦ ó¸®Çϵµ·Ï ÇØ¾ßÇÑ´Ù.
ÆÄÀÌÇÁ ¸ðµâÀ» Á» ´õ ¾µ¸¸ÇÏ°Ô ¸¸µé°íÀÚ ÇÑ´Ù¸é, ±âº»ÀûÀÎ IO ó¸® ¿Ü¿¡µµ Ãß°¡ÀûÀ¸·Î ó¸®ÇØ Áà¾ßÇÒ °ÍÀÌ ÀÖ´Ù.
ù¹øÂ°´Â ÆÄÀÌÇÁ ¿¬°áÀÌ ²÷¾îÁ³À» ¶§, À翬°áÀ» ½ÃµµÇÏ´Â ±â´ÉÀÌ´Ù. Ŭ¶óÀ̾ðÆ®/¼¹ö µÑ ´Ù ÀÖ¾î¾ß ÇÒ ±â´ÉÀÌ´Ù. ¹°·Ð ´õ ÀÌ»ó ÆÄÀÌÇÁ¸¦ »ý¼ºÇÒ ¼ö ¾ø´Â »óȲÀε¥, °è¼Ó ½ÃµµÇÏ¸é ¾È µÇ¹Ç·Î, ¿¡·¯ Ä«¿îÆ®¸¦ üũÇÏ´Â ±â´Éµµ ÀÖ¾î¾ß ÇÑ´Ù.
µÎ¹øÂ°´Â ÇÁ·Î±×·¥ Á¾·á½Ã µî¿¡ ¾µ ¼ö ÀÖµµ·Ï ¼Ë´Ù¿î À̺¥Æ®¸¦ Ãß°¡ÇÏ´Â ÀÏÀÌ´Ù. ½º·¹µå¸¦ µû·Î »ý¼ºÇؼ ¾²±â ¶§¹®¿¡, ±ò²ûÇÏ°Ô Á¾·áÇÏ·Á¸é ¼Ë´Ù¿î À̺¥Æ® °°Àº °ÍÀÌ ÀÖ¾î¾ß ÇÑ´Ù. ¼Ë´Ù¿î½ÃŲ ÆÄÀÌÇÁ¸¦ ÇÁ·Î±×·¥ ³»¿¡¼ ´õ ÀÌ»ó »ç¿ëÇÒ ¼ö ¾øµµ·Ï ÇÏ´Â °ÍÀÌ ÁÁÀ» °ÍÀÌ´Ù.
4 ÀÔÃâ·Â °ü·Ã ¿¡·¯ ó¸®
Á¦ÀÏ ÀϹÝÀûÀÎ ¿¡·¯´Â ¿À¹ö·¦µå IO READ¿¡¼ ¹ß»ýÇÏ´Â ¿¡·¯´Ù. Ưº°È÷ µû·Î ó¸®ÇÒ Çʿ䰡 ¾ø´Â ÀÌ»ó, READ¿¡¼ ¹ß»ýÇÏ´Â ¿¡·¯´Â ¿¬°áÀÌ ²÷±ä °ÍÀ¸·Î °£ÁÖÇÏ¸é µÈ´Ù. À̺¸´Ù ÀÚÁÖ ¹ß»ýÇÏ´Â ¿¡·¯´Â ERROR_PIPE_NOT_CONNECTED¿Í ERROR_BROKEN_PIPE°¡ Àִµ¥, ÀÌ ¶ÇÇÑ ÆÄÀÌÇÁ ¿¬°áÀÌ ²÷¾îÁø °ÍÀ» ÀǹÌÇÑ´Ù. ÆÄÀÌÇÁ¸¦ ´Ù·ê ¶§ ¹ß»ýÇÏ´Â ¸ðµç ¿¡·¯¸¦ ¾Ë°í ½Í´Ù¸é MSDNÀ» Âü°íÇϱ⠹ٶõ´Ù.
ó¸®Çϱâ Á» °ï¶õÇÏÁö¸¸ ²À ó¸®ÇؾßÇÒ °æ¿ì°¡ Àִµ¥, Ŭ¶óÀÌ¾ðÆ®°¡ ´Ù¸¥ ¸Ó½ÅÀÇ ¼¹ö¿¡ Á¢¼ÓÇØ ÀÖ´Ù°¡, ¼¹ö°¡ Á×Àº °æ¿ìÀÌ´Ù. ÀÌ °æ¿ì Ŭ¶óÀÌ¾ðÆ®´Â ±æÀ̰¡ 0ÀÎ ¸Þ½ÃÁö¸¦ ¿©·¯ °³ ¹Þ°Ô µÈ´Ù. ó¸®Çϱ⠰ï¶õÇÑ ÀÌÀ¯´Â ÀÌ °æ¿ì, À©µµ¿ì ¿¡·¯(Get
Last
Error() ÇÔ¼öÀÇ ¸®Åϰª)°¡ ¶ßÁö ¾Ê±â ¶§¹®ÀÌ´Ù. ÀÌ °æ¿ìµµ Ä«¿îÆ®·Î ó¸®Çؼ ÀÏÁ¤ Ƚ¼ö ÀÌ»óÀÎ °æ¿ì, ¿¬°áÀÌ ²÷¾îÁø °ÍÀ¸·Î ÆÇ´ÜÇØ¾ßÇÒ °ÍÀÌ´Ù.
¾à°£ ºñÀϹÝÀûÀÌÁö¸¸, ¾ÈÁ¤ÀûÀÎ ¸Þ½ÃÁö Àü¼ÛÀ» ¿øÇÑ´Ù¸é ó¸®ÇؾßÇÒ ÀÏÀÌ ÀÖ´Ù. ¸Þ½ÃÁö¸¦ º¸³»´Â Ãø¿¡¼ ÇϳªÀÇ ¸Þ½ÃÁö¸¦ º¸³½ ÈÄ, ´Ù¸¥ ¸Þ½ÃÁö¸¦ Àü¼ÛÇϱâ Àü¿¡ ÀÌÀü¿¡ Àü¼ÛÇÑ ¸Þ½ÃÁö°¡ Àü¼Û ¿Ï·áµÇ±â¸¦ ±â´Ù¸®´Â ÀÏÀÌ´Ù. ÀÌ´Â ¿À¹ö·¦µå IO °ü·Ã ÇÔ¼ö¿¡¼ IO ¿Ï·á½Ã Event NotificationÀ» Áö¿øÇϹǷΠºñ±³Àû °£´ÜÈ÷ ó¸®ÇÒ ¼ö ÀÖ´Ù. ¸Þ½ÃÁö Àü¼Û ¿Ï·á¸¦ ±â´Ù¸®Áö ¾Ê°í, ¸· º¸³»¸é PIPE_WAIT Ç÷¡±×¸¦ ÀÌ¿ëÇØ »ý¼ºÇÑ ÆÄÀÌÇÁ¶ó°í ÇÏ´õ¶óµµ, ¹Þ´Â ÃøÀÇ ¹öÆÛ°¡ ³ÑÄ¡´Â °ÍÀ» ¹æÁöÇÒ ¼ö´Â ¾ø´Ù. ¿¹¸¦ µé¾î ºü¸¥ ¼Óµµ·Î A, B, CÀÇ ¸Þ½ÃÁö¸¦ º¸³»¸é, ¹Þ´Â Ãø¿¡¼´Â A, A, C ÀÌ·± ½ÄÀÇ ¸Þ½ÃÁö¸¦ ¹Þ°Ô µÈ´Ù´Â ¸»ÀÌ´Ù. ¹®Á¦Á¡Àº ¹Ù·Î ¿©±â¿¡ Á¸ÀçÇÑ´Ù. µ¥ÀÌÅ͸¦ ºü¸¥ ¼Óµµ·Î ¸¶±¸ º¸³»¸é, ¿À¹ö·¦µå IO WRITE°¡ ¼º°ø/½ÇÆÐ ¿©ºÎ¸¦ ¹ÝȯÇÏÁö ¾Ê°í ½ÇÆÐÇÏ´Â °æ¿ì°¡ ÀÖ´Ù. (READ°¡ ÀÌ·± °æ¿ì´Â À̶§±îÁö º» ¹Ù·Î´Â ¾ø´Ù.) ¹ÝȯÇÏÁö ¾Ê´Â WRITE¸¦ ³¡³»±â À§Çؼ´Â ŸÀӾƿôÀ» »ç¿ëÇØ¾ßÇÑ´Ù. »ç½Ç ÁÖ¾îÁø ½Ã°£ ¾È¿¡ ³¡³ªÁö ¾Ê´Â WRITE´Â Á¢¼ÓÀÌ ²÷¾îÁø °Í°ú °°ÀÌ Ãë±ÞÇØ¾ß ÇÑ´Ù°í »ý°¢ÇÑ´Ù.
5 °´Ã¼ »ý¼º°ú °ü·ÃµÈ ¹®Á¦µé
³×ÀÓµå ÆÄÀÌÇÁ°¡ NT Ä¿³Î ¿ÀºêÁ§Æ®À̱⠶§¹®¿¡ º¸¾È°ú °ü·ÃµÈ ¸î°¡Áö ¹®Á¦°¡ »ý±æ ¼ö ÀÖ´Ù.
ù°, º¸¾È ±â¼úÀÚ(security descriptor)·Î NULLÀ» ÁÖ´Â °ÍÀº º¸¾È °ü·Ã ¼³Á¤ÀÌ ¾ø´Â °ÍÀÌ ¾Æ´Ï¶ó, '±âº»' ¼³Á¤À» ÀÌ¿ëÇϰڴٴ ¸»ÀÌ´Ù. ¸ðµç °÷¿¡¼ ÆÄÀÌÇÁ µîÀÇ NT ¿ÀºêÁ§Æ®¸¦ Á¢±Ù °¡´ÉÇÏ°Ô ÇÏ·Á¸é, º¸¾È ±â¼úÀÚ¸¦ »ý¼ºÇؼ °Å±â´Ù°¡ ¸ðµç °÷¿¡¼ ¾×¼¼½ºÇÑ´Ù´Â °ÍÀ» Ç¥½ÃÇÑ ÈÄ, ±× ±â¼úÀÚ¸¦ ÆÄÀÌÇÁ »ý¼º¿¡ ÀÌ¿ëÇØ¾ßÇÑ´Ù.
µÑ°, ´Ù¸¥ ÄÄÇ»ÅÍ °£ÀÇ Åë½Å¿¡ ÀÖ¾î¼ Å¬¶óÀÌ¾ðÆ® ÂÊÀº ¼¹ö ÂÊÀÇ ÇÁ·Î¼¼½º°£ Åë½Å °øÀ¯ ÀåÄ¡(ipc$)¿¡ Á¢±ÙÇÒ ¼ö ÀÖ´Â ±ÇÇÑÀÌ ÀÖ¾î¾ß ÇÑ´Ù. ¼¹ö ÂÊ¿¡¼ NULL ¼¼¼ÇÀ» ÀÌ¿ëÇϸé, ¸ðµç Ŭ¶óÀÌ¾ðÆ®°¡ Á¢±ÙÇÒ ¼ö ÀÖ°Ô µÇ¹Ç·Î, ÀÌ ¹®Á¦¸¦ ÇØ°áÇÒ ¼ö ÀÖÁö¸¸, Æí¹ýÀÏ »ÓÀÌ´Ù. ¿Ö³ÄÇϸé ÀÌ·¸°Ô ÇØ¹ö¸®¸é º¸¾È ¼³Á¤ÀÌ ¿©·¯ °¡Áö·Î ¾û۱⠶§¹®ÀÌ´Ù. ÀÚ¼¼ÇÑ °ÍÀº Microsoft Knowledge Base¿¡ ÀÖ´Â
Q124184 "Service Running as System Account Fails Accessing Network"
¹®¼¸¦ Âü°íÇϱ⠹ٶõ´Ù.
6 Sysinternals Åøµé
Sysinternals Freeware
¿¡ °¡¸é À©µµ¿ì ½Ã½ºÅÛ°ú °ü·ÃµÈ ¿©·¯ °¡Áö ÅøµéÀ» ¾òÀ» ¼ö ÀÖ´Ù. ÀÌ Áß¿¡ Process Explorer¸¦ ÀÌ¿ëÇϸé, ÇöÀç ¸Ó½Å¿¡ Á¸ÀçÇÏ´Â ¿¸° ÆÄÀÌÇÁµéÀ» ¾Ë ¼ö ÀÖ°í, File
MonÀ̶õ ÅøÀ» ÀÌ¿ëÇÏ¸é ÆÄÀÏÀº ¹°·Ð ³×ÀÓµå ÆÄÀÌÇÁÀÇ È°µ¿ »óȲÀ» ¸ð´ÏÅ͸µÇÒ ¼ö ÀÖ´Ù. Pipe
List¶õ Åøµµ »ìÆìº¸±â ¹Ù¶õ´Ù.
see also
IPC
FindPage
by browsing, title search
, text search
or an index
Or try one of these actions:
AttachFile
,
DeletePage
,
LikePages
,
LocalSiteMap
,
RenamePage
,
SpellCheck
SeriousMoin
v1 (
koMoinMoin
1.0a4 Modified)