GetQueuedCompletionStatus() 함수

Posted 2012. 8. 13. 22:49

이제 CP에 등록되는 완료된 IO의 확인방법. 이에 사용되느 함수는

 

BOOL GetQueuedCompletionStatus(

HANDLE CompletionPort,  //완료된 IO정보가 등록되어있는 CP오브젝트의 핸들 전달      

LPDWORD lpNumberOfBytes,  // 입출력 과정에서 송수신 된 데이터의 크기정보를 저장할 변수의 주소값

PULONG_PTR lpCompletionKey,   // CreateIoCompletioPort함수의 세번쨰 인자로 전달된 값의 저장을위한 변수의 주소값

LPOVERLAPPED* lpOverlapped,  // WSASend, WSARecv 함수호출시 전달하는 OVERLAPPED구조체변수의주소값이저장될변수의 주소값 전달

DWORD dwMillisecones   // 타임아웃 정보전달, ㅕㅇ기서 지정한 시간이 완료되면 FALSE를 반환하면서 함수를 빠져나감.

INFINITE-> 완료된 IO가 CP오브젝트에 등록될때까지 블로킹상태.

);

-> 성공시 TRUE, 실패시 FALSE 반환

 

" GetQueuedCompletionStatus 함수의 세번째 인자를 통해서 얻게 되는 것은 소켓과 CP오브젝트의 연결을 목적으로

CreateCompletionPort 함수가 호출될때 전달되는 네번째 인자 값이다.

네번째 인자로 얻게되는건  WSASend, WSARecv함수호출시 전달되느 WSAOVERLAPPED구조체 변수의 주소값이다.

 

'Server > IOCP' 카테고리의 다른 글

Completion Port 오브젝트와 소켓의 연결  (0) 2012.08.13
Completion Port의 생성  (0) 2012.08.13
IOCP  (0) 2012.08.13