À©µµ API : CreateIoCompletionPort - Input/Output ¿Ï·á Æ÷Æ®ÀÇ »ý¼º
ÃÑ ÆäÀÌÁö ¼ö : 3224

Àüü ÇÔ¼ö/¿ë¾î»çÀü
Facebook Joinc ±×·ì   Joinc QA »çÀÌÆ®



joinc´Â Firefox¿Í chrome¿¡¼­ Å×½ºÆ® Çß½À´Ï´Ù. IE¿¡¼­´Â Å×À̺íÀÌ ±úÁö°Å³ª À̹ÌÁö°¡ º¸ÀÌÁö ¾ÊÀ» ¼ö ÀÖ½À´Ï´Ù. ƯÈ÷ ±¸±Û DocsÀ̹ÌÁöÀÇ °æ¿ì ¿¢¹Úó¸®µÉ ¼ö ÀÖ½À´Ï´Ù.

CreateIoCompletionPort

ÀÌ ÇÔ¼ö´Â ÁöÁ¤µÈ ÆÄÀÏ¿¡ ´ëÇØ¼­ Input/Output completion port (ÀÌÇÏ ÀÔÃâ·Â ¿Ï·á Æ÷Æ®)¸¦ ¸¸µç´Ù. ȤÀº ¿Ï·á Æ÷Æ®¸¦ ¸¸µé¾î ³õÀº ´ÙÀ½ ³ªÁß¿¡ ÆÄÀÏÀ» ¿Ï·á Æ÷Æ®¿¡ ÆÄÀÏÀ» ÁöÁ¤ÇÒ ¼ö ÀÖ´Ù. ÀÌÇÏ ÀÔÃâ·Â ¿Ï·á Æ÷Æ®¿¡ ÆÄÀÏÀ» ÁöÁ¤ÇÏ´Â ÀÛ¾÷Àº µî·ÏÀ̶ó°í ÇϰڴÙ.

¿­¸° ÆÄÀÏÀ» ÀÔÃâ·Â ¿Ï·á Æ÷Æ®¿¡ µî·ÏÇϸé, ÇÁ·Î¼¼½º°¡ ºñµ¿±âÀûÀ¸·Î ÀÔÃâ·Â ¿Ï·á º¸°í¸¦ ÅëÁö ¹ÞÀ» ¼ö ÀÖ´Ù.

»ç¿ë ¹ý

HANDLE WINAPI CreateIoCompletionPort( 
  __in      HANDLE FileHandle, 
  __in_opt  HANDLE ExistingCompletionPort, 
  __in      ULONG_PTR CompletionKey, 
  __in      DWORD NumberOfConcurrentThreads 
); 
 
  1. FileHandle
    ¿­¸° ÆÄÀÏ È¤Àº INVALID_HANDLE_VALUE. ÇÚµéÀº ¹Ýµå½Ã Áßø ÀÔÃâ·ÂÀ» Áö¿øÇÏ´Â °´Ã¼¿©¾ß ÇÑ´Ù.
  2. ExistingCompletionPort
    ÀÌ¹Ì ¸¸µé¾îÁø ÀÔÃâ·Â ¿Ï·á Æ÷Æ® ȤÀº NULL. ¸¸¾à ¸Å°³ º¯¼ö·Î ÀÌ¹Ì ¸¸µé¾îÁø ÀÔÃâ·Â ¿Ï·áÆ÷Æ®¸¦ ÁöÁ¤Çϸé, ÀÌ ÇÔ¼ö´Â FileHandleÀ» ÀÔÃâ·Â ¿Ï·á Æ÷Æ®¿¡ µî·ÏÇÑ´Ù. ¸¸¾à NULLÀ» ÀÔ·ÂÇÏ¸é »õ·Î¿î ÀÔÃâ·Â ¿Ï·á Æ÷Æ®¸¦ ¸¸µé°í ¿©±â¿¡ FileHandle¸¦ µî·ÏÇÑ´Ù.
  3. CompletionKey
    ÀÔÃâ·Â ¿Ï·á Æ÷Æ® ÇÚµéÀ» °¡¸®Å°´Â Ű·Î À¯Àú°¡ Á¤ÀÇÇÑ °ªÀÌ´Ù. ¸Å°³ º¯¼ö´Â ULONG ŸÀÔÀ̹ǷÎ, ºÎ°¡ÀûÀÎ Á¤º¸¸¦ ÇÔ²² ³Ñ±æ ¼ö ÀÖ´Ù.
  4. NumberOfConcurrentThread
    ÀÔÃâ·Â ¿Ï·á Æ÷Æ®ÀÇ Ã³¸®¸¦ À§Çؼ­ ¸î°³ÀÇ ½º·¹µå¸¦ ÇÒ´çÇÒ °ÍÀΰ¡¸¦ ÁöÁ¤ÇÑ´Ù.

¹Ýȯ °ª

ÀÌ ÇÔ¼ö´Â ¼º°øÇϸé ÀÔÃâ·Â ¿Ï·á Æ÷Æ®¸¦ °¡¸®Å°´Â ÇÚµéÀ» ¹ÝȯÇÑ´Ù.
  • ¸¸¾à ExistingCompletionPort°¡ NULLÀ̶ó¸é »õ·Î¿î ÇÚµéÀ» ¹ÝȯÇÑ´Ù.
  • ¸¸¾à ExistingCompletionPort°¡ NULLÀÌ ¾Æ´Ï¶ó¸é, ¸Å°³ º¯¼ö·Î ÀÔ·ÂÇÑ ÇÚµé°ú °°Àº ÇÚµéÀ» ¹ÝȯÇÑ´Ù.
¸¸¾à ½ÇÆÐÇϸé NULLÀ» ¹ÝȯÇÑ´Ù. ¿¡·¯´Â GetLastErrorÀ¸·Î °¡Á®¿Ã ¼ö ÀÖ´Ù.

¼³¸í

ÀÔÃâ·Â ¿Ï·á Æ÷Æ®´Â µî·ÏµÈ ÇÚµéÀÇ ÀÔÃâ·ÂÀÌ ¿Ï·áµÇ¸é ¿Ï·á º¸°íÁ¤º¸¸¦ Å¥¿¡ ½×´Â´Ù. ÀÔÃâ·Â ¿Ï·á Æ÷Æ® ÇÚµéÀº ÇÁ·Î¼¼½º¿¡ Á¾¼ÓµÇ¸ç, ´Ù¸¥ ÇÁ·Î¼¼½º¿Í °øÀ¯ÇÒ ¼ö ¾ø´Ù. ¹°·Ð °°Àº ÇÁ·Î¼¼½ºÀÇ ½º·¹µé °£¿¡´Â °øÀ¯ÇÒ ¼ö ÀÖ´Ù.

CreateIoCompletionPort´Â ´ÙÀ½ÀÇ 3°¡Áö ¸ðµå°¡ ÀÖ´Ù.
  • ÆÄÀÏ ÇÚµéÀÇ µî·Ï¾øÀÌ, ´ÜÁö ÀÔÃâ·Â ¿Ï·á Æ÷Æ®¸¸ ÀÖ´Ù.
  • Á¸ÀçÇÏ´Â ÀÔÃâ·Â ¿Ï·á Æ÷Æ®¿¡ ÆÄÀÏ ÇÚµéÀ» µî·ÏÇÑ´Ù.
  • ÀÔÃâ·Â ¿Ï·á Æ÷Æ®¸¦ »õ·Î ¸¸µé°í ÆÄÀÏ ÇÚµé±îÁö µî·ÏÇÑ´Ù.
ÆÄÀÏ ÇÚµéÀÌ µî·ÏµÇÁö ¾ÊÀº ÀÔÃâ·Â ¿Ï·á Æ÷Æ®´Â ÇØµé °ª¿¡ INVALID_HANDLE_VALUE¸¦ ÁöÁ¤Çϰí, ExistingcompletionPort¸¦ NULL, CompletionKey¸¦ 0À¸·Î ÇÔÀ¸·Î½á ¸¸µé ¼ö ÀÖ´Ù.

µî·ÏÇÏ´Â ÆÄÀÏ ÇÚµéÀº overlapped ¼Ó¼ºÀ» °¡Áö°í ÀÖ¾î¾ß ÇÑ´Ù. Áßø ¼Ó¼ºÀ» °¡Áöµµ·Ï ÇÏ´Â °¡Àå ÀϹÝÀûÀÎ ¹æ¹ýÀº CreateFileÇÔ¼ö¸¦ FILE_FLAG_OVERLAPPEDÀ¸·Î ½ÇÇàÇÏ´Â °ÍÀÌ´Ù. ÇÚµéÀÌ ¼ÒÄÏÀÏ °æ¿ì¿¡µµ Áßø ¼Ó¼ºÀ» °¡Áö°í ÀÖ¾î¾ß ÇÑ´Ù. socketÇÔ¼ö·Î ¸¸µç ¼ÒÄÏÀº ±âº»ÀûÀ¸·Î Áßø ¼Ó¼ºÀ» °¡Áø´Ù.

ÇϳªÀÇ ÀÔÃâ·Â ¿Ï·á Æ÷Æ®´Â ¿©·¯ °³ÀÇ ÆÄÀÏ ÇÚµéÀ» ó¸®ÇÒ ¼ö ÀÖ´Ù.
EmailÀ» ±âÀÔÇϸé, ´ñ±ÛÀÌ ¸ÞÀÏ·Î Àü´ÞµË´Ï´Ù.