WSAWaitForMultipleEvents

WSAWaitForMultipleEvents ÇÔ¼ö´Â ÁöÁ¤µÈ À̺¥Æ® °´Ã¼ÀÇ ÇÑ °³ ¶Ç´Â ¸ðµÎ°¡ ½ÅÈ£¹ÞÀº »óÅ¿´À» ¶§³ª, ŸÀӾƿô °£°ÝÀ¸·Î ÁöÁ¤ÇÑ ½Ã°£ÀÌ Áö³µÀ» ¶§±îÁö ±â´Ù·È´Ù ¹ÝȯµÇ´Â ÇÔ¼öÀÔ´Ï´Ù.

DWORD WSAWaitForMultipleEvents(
        DWORD                          
cEvents,
        const WSAEVENT FAR*  
 lphEvents,
        BOOL                             
fWaitAll,
        DWORD                         
 dwTimeOUT,
        BOOL                            
 fAlertable
);

 

Parameters

cEvents
[ÀÔ·Â] lphEvent ¸Å°³º¯¼ö·Î Æ÷ÀÎÆ®µÇ´Â ¹è¿­¿¡ ÀÖ´Â À̺¥Æ® °´Ã¼ ÇÚµéÀÇ °¹¼ö¸¦ ¸í½ÃÇÕ´Ï´Ù. À̺¥Æ® °´Ã¼ ÇÚµéÀÇ ÃÖ´ë °¹¼ö´Â WSA_MAXIMUM_WAIT_EVENTSÀÔ´Ï´Ù. ÇÑ °³ ¶Ç´Â ±× ÀÌ»óÀÇ À̺¥Æ®´Â ¹Ýµå½Ã ¸í½ÃµÇ¾î¾ß ÇÕ´Ï´Ù.

lphEvents
[ÀÔ·Â] À̺¥Æ® °´Ã¼ ÇÚµéÀÇ ¹è¿­¿¡ ´ëÇÑ Æ÷ÀÎÅÍ

fWaitAll
[ÀÔ·Â] ±â´Ù¸²ÀÇ ÇüŸ¦ ¸í½ÃÇÏ´Â ¸Å°³º¯¼ö·Î, ÀÌ°ªÀÌ TRUE ¶ó¸é, ÀÌ ÇÔ¼ö´Â lphEvent ¹è¿­¿¡ ÀÖ´Â ¸ðµç À̺¥Æ® °´Ã¼°¡ °°Àº ½Ã°£¿¡ ½ÅÈ£¸¦ ¹ÞÀ» ¶§ ¹ÝȯµË´Ï´Ù. ¹Ý¸é, FALSE ¶ó¸é, À̺¥Æ® °´Ã¼Áß¿¡ Çϳª°¡ ½ÅÈ£¸¦ ¹ÞÀ» ¶§ ¹Ýȯ µË´Ï´Ù. ÈÄÀÚÀÇ °æ¿ì, ÇÔ¼öÀÇ ¹Ýȯ°ªÀº À̺¥Æ® °´Ã¼(ÇÔ¼öÀÇ ¹ÝȯÀ¸·Î ÀϾ »óÅÂ)¸¦ ÀǹÌÇÕ´Ï´Ù.

dwTimeout
[ÀÔ·Â] ŸÀӾƿô °£°ÝÀ» ¸í½ÃÇÏ´Â ¸Å°³º¯¼ö·Î m/sec ´ÜÀ§(1/1000ÃÊ)ÀÔ´Ï´Ù. ÁöÁ¤µÈ ½Ã°£ÀÌ ´Ù Áö³ª°Ô µÇ¸é, fWaitAll ¸Å°³º¯¼ö¿¡ ÀÇÇØ ÁöÁ¤µÈ »óÅÂ(À̺¥Æ® °´Ã¼°¡ ½ÅÈ£¸¦ ¹Þ¾Æ¾ß ÇÏ´Â Á¶°Ç)°¡ ¸¸Á·µÇÁö ¾Ê´õ¶óµµ ÇÔ¼ö´Â ¹ÝȯµÇ°Ô µË´Ï´Ù.

fAlertable
[ÀÔ·Â] ½Ã½ºÅÛÀÌ ÇÔ¼ö¸¦ È£ÃâÇÏ´Â ¾²·¹µåÀÇ ½ÇÇà¿¡ ´ëÇÑ I/O ¿Ï·á·çƾ(completion routine)À» Å¥(queue) ½ÃÄ×À» ¶§ ÇÔ¼ö°¡ ¹ÝȯµÉÁö ¾î¶²Áö¸¦ ¸í½ÃÇÏ´Â ¸Å°³º¯¼ö·Î, ÀÌ°ªÀÌ TRUE ÀÏ °æ¿ì ¿Ï·á·çƾÀº ½ÇÇàµÇ°í, ÇÔ¼ö´Â ¹ÝȯµË´Ï´Ù. FALSE ¶ó¸é, ¿Ï·á·çƾÀº ÇÔ¼ö°¡ ¹ÝȯµÉ ¶§ ½ÇÇàµÇÁö ¾Ê½À´Ï´Ù.

 

Remarks

WSAWaitForMultipleEvents ÇÔ¼ö´Â ¸í½ÃµÈ °´Ã¼µé Áß ÇÑ °³ ¶Ç´Â ¸ðµÎ°¡ ½ÅÈ£¹ÞÀº »óÅÂ(signaled state)°¡ µÇ¾úÀ» ¶§³ª, ŸÀӾƿô °£°ÝÀ¸·Î ÁöÁ¤ÇÑ ½Ã°£À» ¸ðµÎ ¼ÒºñÇßÀ» ¶§ È£Ã⠵Ǵ ÇÔ¼öÀÔ´Ï´Ù. ÀÌ ÇÔ¼ö´Â ¶ÇÇÑ fAlertable ¸Å°³º¯¼ö¸¦ TRUE ·Î ¼³Á¤ÇÏ¿© ¾Ë¶÷´ë±â(alertable wait) ±â´ÉÀ» ¼öÇà Çϴµ¥ »ç¿ëÇÕ´Ï´Ù. ÀÌ·¯ÇÑ ±â´ÉÀº ½Ã½ºÅÛÀÌ È£Ãâ ¾²·¹µå¿¡¼­ ¼öÇàµÇ´Â ¿Ï·á·çƾ(completion routine)À» Å¥(queue) ÇßÀ» ¶§ ÇÔ¼ö°¡ ¹Ýȯ µÇµµ·Ï Çϴµ¥ »ç¿ëµÉ ¼ö ÀÖ½À´Ï´Ù.

fWaitAll ¸Å°³º¯¼ö°¡ TRUE¶ó¸é, ÇÔ¼öÀÇ ´ë±â»óÅÂ(wait condition)Àº °°Àº½Ã±â¿¡ ¸ðµç °´Ã¼ÀÇ »óÅ°¡ ½ÅÈ£¸¦ ¹Þ¾ÒÀ» ¶§¸¸, ¸¸Á·µË´Ï´Ù. ÀÌ ÇÔ¼ö´Â ¸ðµç °´Ã¼°¡ µ¿½Ã¿¡ ½ÅÈ£¹ÞÀ» ¶§ ±îÁö ¸í½ÃµÈ °´Ã¼ÀÇ »óŸ¦ °»½ÅÇÏÁö ¾Ê½À´Ï´Ù.

½ÅÈ£¹Þ´Â À̺¥Æ® °´Ã¼°¡ ÇÊ¿ä¾ø´Â °£´ÜÇÑ ¾Ë¶÷ ´ë±â »óŸ¦ ±¸ÇöÇÏ°íÀÚ ÇÏ°íÀÚ ÇÑ´Ù¸é, Win32 APIÀÎ SleepEx ÇÔ¼ö¸¦ »ç¿ëÇÏ¸é µË´Ï´Ù.

 

Return Values

ÇÔ¼ö°¡ ¼º°øÀûÀ¸·Î ¼öÇàµÈ´Ù¸é, ¹Ýȯ°ªÀº ¾Æ·¡ÀÇ Ç¥¿¡ ³ª¿­ÇÑ °ªÁß Çϳª¸¦ °¡Áö°Ô µË´Ï´Ù. ÇÔ¼ö°¡ ½ÇÆÐÇÑ´Ù¸é, ÇÔ¼ö´Â WSA_WAIT_FAILED¸¦ ¹ÝȯÇÕ´Ï´Ù. ¶ÇÇÑ WSAGetLastError ÇÔ¼ö¸¦ È£ÃâÇÏ¿© ƯÁ¤ÇÑ ¿¡·¯Äڵ带 ¾ò¾î³¾ ¼ö ÀÖ½À´Ï´Ù.

ÇÔ¼ö¸¦ ¼º°øÀûÀ¸·Î ¼öÇàÇÏ°í ¹ÝȯµÇ´Â °ªÀ» ¾Æ·¡¿¡ ³ª¿­ ÇØ º¸¾Ò½À´Ï´Ù.

Value Meaning
WSA_WAIT_EVENT_0 ºÎÅÍ (WSA_WAIT_EVENT_0 + cEvents - 1)
ÀÇ ¼öÄ¡¸¦ °¡Áú °æ¿ì
fWaitAll ¸Å°³º¯¼ö°¡ TRUE¶ó¸é, ¹Ýȯ°ªÀº ¸ðµç ¸í½ÃµÈ À̺¥Æ® °´Ã¼°¡ ½ÅÈ£¹Þ¾Ò´Ù´Â °ÍÀ» ³ªÅ¸³À´Ï´Ù. fWaitAll ÀÌ FALSE ¶ó¸é, ¹Ýȯ°ªÀº ´ë±â »óÅ°¡ ¿Ï·áµÈ À̺¥Æ® °´Ã¼ ¹è¿­ÀÇ À妽º¸¦ °¡¸®Åµ´Ï´Ù.
WAIT_IO_COMPLETION ÇÑ °³ ¶Ç´Â ±× ÀÌ»óÀÇ I/O ¿Ï·á·çƾ(completion routine)ÀÌ ¼öÇàÀ» À§ÇÏ¿© Å¥(queue) µÇ¾ú½À´Ï´Ù.
WSA_WAIT_TIMEOUT fWaitAll ¸Å°³º¯¼ö·Î ÁöÁ¤µÈ Á¶°ÇÀÌ ¸¸Á·µÇÁö ¾ÊÀº »óÅ¿¡¼­ ŸÀӾƿôÀ¸·Î ´ë±â»óÅ°¡ Á¾·á µÇ¾ú½À´Ï´Ù.

 

Error Codes

WSANOTINITIALISED

ÀÌ ÇÔ¼ö¸¦ »ç¿ëÇϱâ Àü¿¡ ¼º°øÀûÀÎ WSAStartup ÇÔ¼öÀÇ È£ÃâÀÌ ¾ø¾ú½À´Ï´Ù.

WSAENETDOWN ³×Æ®¿÷ ¼­ºê½Ã½ºÅÛ¿¡ ¿¡·¯°¡ ¹ß»ýÇß½À´Ï´Ù.
WSAEINPROGRESS ºí·°Å· À©¼Ó v1.1 ÀÌ ÇöÀç ÁøÇà ÁßÀ̰ųª, ¼­ºñ½º ÇÁ·Î¹ÙÀÌ´õ°¡ Äݹé ÇÔ¼ö¸¦ ¿©ÀüÈ÷ ó¸®ÇÏ°í ÀÖ½À´Ï´Ù.
WSA_NOT_ENOUGH_MEMORY ¸Þ¸ð¸®°¡ ºÎÁ·ÇÕ´Ï´Ù.
WSA_INVALID_HANDLE ÇÑ °³ ¶Ç´Â ±× ÀÌ»óÀÇ lphEvents ¹è¿­¿ä¼Ò°¡ ¿Ã¹Ù¸¥ À̺¥Æ® °´Ã¼ ÇÚµéÀÌ ¾Æ´Õ´Ï´Ù.
WSA_INVALID_PARAMETER cEvent ¸Å°³º¯¼ö°¡ ¿Ã¹Ù¸¥ ÇÚµéÀÇ °¹¼ö¸¦ °¡Áö°í ÀÖÁö ¾Ê½À´Ï´Ù.

 

QuickInfo

Windows NT : »ç¿ë°¡´É
Windows : »ç¿ë°¡´É
Windows CE : Áö¿øÇÏÁö ¾Ê½À´Ï´Ù.
Header :
          Win16/32 : winsock.h
          Win32-II : winsock2.h
Import Library :
          Win16 : winsock.lib
          Win32 : wsock32.lib
          Win32-II : ws2_32.lib

See Also

overview, WSACloseEvent, WSACreateEvent