다음을 통해 공유


WinAsyncAPPCIOCP

WinAsyncAPPCIOCP 함수는 모든 APPC 동사에 대한 비동기 진입점을 제공합니다. I/O 완료 포트를 사용하여 여러 세션을 동일한 스레드에서 처리할 수 있도록 동사의 차단 버전 대신 이 함수를 사용합니다. 이 동사는 Microsoft Windows에서만 지원되며 Win32 I/O 완료 포트를 사용합니다.

구문

  
    HANDLE WINAPI WinAsyncAPPCIOCP(   
APPC_IOCP_INFO *iocp_handle,  
longlpVcb);  

매개 변수

iocp_handle
I/O 완성 포트 정보를 전달하는 데 사용되는 APPC_IOCP_INFO 구조체에 대한 포인터입니다.

lpVcb
동사 제어 블록에 대한 포인터

APPC_IOCP_INFO 구조에는 다음과 같은 프로토타입이 있습니다.

  
APPC_CompletionPort;APPC_NumberOfBytesTransferred;  
    APPC_CompletionKey;  
    APPC_pOverlapped;  
  

APPC_CompletionPort

이 제공된 매개 변수는 I/O 완료 포트를 만들 때 CreateIoCompletionPort 함수를 호출하여 반환되는 HANDLE입니다. WinAsyncAPPCIOCP 함수를 호출하기 전에 I/O 완료 포트를 만들어야 합니다. 동사가 완료되면 APPC 라이브러리는 구조체의 나머지 필드를 입력으로 사용하여 PostQueuedCompletionStatus 함수를 호출하고, 이러한 필드는 애플리케이션에서 발급 한 GetQueuedCompletionStatus 함수로 전달됩니다.

APPC_NumberOfBytesTransferred

제공된 이 매개 변수는 무시됩니다. APPC 동사가 완료되면 APPC 라이브러리는 이 필드를 입력으로 사용하여 PostQueuedCompletionStatus 함수를 호출하고 dwNumberOfBytesTransferred 에 대해 반환된 값은 애플리케이션에서 발급한 GetQueuedCompletionStatus 함수로 전달됩니다.

APPC_CompletionKey

제공된 이 매개 변수는 무시됩니다. APPC 동사가 완료되면 APPC 라이브러리는 이 필드를 입력으로 사용하여 PostQueuedCompletionStatus 함수를 호출하고 dwCompletionKey 에 대해 반환된 값은 애플리케이션에서 발급 한 GetQueuedCompletionStatus 함수로 전달됩니다.

APPC_pOverlapped

제공된 이 매개 변수는 무시됩니다. APPC 동사가 완료되면 APPC 라이브러리는 이 필드를 입력으로 사용하여 PostQueuedCompletionStatus 함수를 호출하고 lpOverlapped 에 대해 반환된 값은 애플리케이션에서 발급한 GetQueuedCompletionStatus 함수로 전달됩니다.

반환 값

반환 값은 비동기 확인 요청이 성공했는지 여부를 지정합니다. 함수가 성공한 경우 반환 값은 비동기 작업 핸들입니다. 함수가 성공하지 못하면 0이 반환됩니다.

이 함수가 성공적인 값으로 반환될 때 APPC 호출이 궁극적으로 성공적으로 반환된다는 것을 의미하지는 않습니다. 이는 APPC 라이브러리가 알림을 위해 I/O 완료 포트를 사용하여 APPC 호출을 비동기적으로 시도할 수 있음을 나타냅니다.

설명

이 함수는 Win32 API에서 CreateIoCompletionPortGetQueuedCompletionStatus 와 함께 사용하기 위한 것입니다. 이러한 함수는 Microsoft Platform SDK 설명서의 "참조" 섹션에 설명되어 있습니다.

다중 스레드 TP에서 이 동사를 사용하는 방법에 대한 예제는 호스트 통합 서버 SDK에 포함된 I/O 완료 포트를 사용하여 다중 스레드 수신 샘플 TP(SNA\MSENDRCV 폴더에 있는 MRCVIO)를 참조하세요.

차단할 수 있는 기본 대화에 사용되는 APPC 동사는 다음과 같습니다.