생성했다면 오브젝트에 연결해야됨..그래야 완료된 소켓의 IO정보가 CP오브젝트에 등록된다.

 

생성과 연결 함수

HANDLE CreateIoCompletionPort(

HANDLE FileHandle,

HANDLE ExistingCompletionPort,

ULONG_PTR CompletionKey,

DWORD NumberOfConcurrentThreads

);

이번은 연결시점으로 설명)

HANDLE FileHandle     // CP오브젝트에 연결할 소켓의 핸들 전달

 

HANDLE ExistingCompletionPort,    // 소켓과 연결할 CP오브젝트의 핸들 전달

ULONG_PTR CompletionKey,      //완료된 IO관련 정보의 전달을 위한 매개변수. 이는 GetQueuedCompletionStatus함수와 함꼐이해해야됨

DWORD NumberOfConcurrentThreads    // 어떠한 값을 전달하건 이 함수의 두번째 매개변수가 NULL이아니면 그냥 무시됨.

 

ex)

HANDLE hCpObject;

SOCKET hSock;

........

CreateIoCompletionPort( (HANDLE)hSock, hCpObject, (DWORD)ioInfo, 0 );

이렇게 Crea......함수가 호출된 이후부터는 hSock를 대상으로 진행된 IO가 완료되면 이에대한 정보가 핸들 hCpObject에 해당하는 CP오브젝트에 등록된다.

 

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

GetQueuedCompletionStatus() 함수  (0) 2012.08.13
Completion Port의 생성  (0) 2012.08.13
IOCP  (0) 2012.08.13