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 |
- Filed under : Server/IOCP