다음을 통해 공유


RpcAsyncCompleteCall 함수(rpcasync.h)

클라이언트와 서버는 RpcAsyncCompleteCall 함수를 호출하여 비동기 원격 프로시저 호출을 완료합니다.

구문

RPC_STATUS RpcAsyncCompleteCall(
  PRPC_ASYNC_STATE pAsync,
  void             *Reply
);

매개 변수

pAsync

비동기 호출 정보를 포함하는 RPC_ASYNC_STATE 구조체에 대한 포인터입니다.

Reply

원격 프로시저 호출의 반환 값을 포함하는 버퍼에 대한 포인터입니다.

반환 값

RpcAsyncCompleteCall은 다음 값 외에도 일반 RPC 또는 애플리케이션별 오류를 반환할 수 있습니다.

의미
RPC_S_OK
호출이 성공적으로 완료되었습니다.
RPC_S_INVALID_ASYNC_HANDLE
비동기 호출 핸들이 잘못되었습니다.
RPC_S_ASYNC_CALL_PENDING
호출이 아직 완료되지 않았습니다.
RPC_S_CALL_CANCELLED
호출이 취소되었습니다.
 
참고 유효한 오류 코드 목록은 RPC 반환 값을 참조하세요.
 

설명

비동기 RPC 호출을 완료합니다. 클라이언트와 서버 모두 이 함수를 호출합니다.

클라이언트: 회신은 회신 을 받을 버퍼를 가리킵니다. 응답이 도착하기 전에 클라이언트가 이 함수를 호출하면 호출이 RPC_S_ASYNC_CALL_PENDING 반환됩니다. 버퍼는 유효해야 하며 반환 값을 받을 수 있을 만큼 커야 합니다. 이 호출이 성공하면 [out][in,out] 매개 변수가 유효합니다. 호출이 RPC_S_ASYNC_CALL_PENDING 반환하지 않으면 이 RpcAsyncCompleteCall 호출은 RPC 호출에 대한 최종 호출입니다. 이 함수 호출 후에는 성공 또는 실패에 관계없이 RPC 런타임에 의해 할당된 모든 리소스가 해제됩니다. RpcAsyncCompleteCall 또는 RpcAsyncCancelCall 함수에 대한 후속 호출은 RPC_ASYNC_STATE 구조체에 대한 새 호출이 시작될 때까지 정의되지 않은 결과를 갖습니다.

서버: 회신 은 클라이언트로 보내야 하는 반환 값이 포함된 버퍼를 가리킵니다. 함수가 반환 형식으로 선언된 경우에만 회신 에 유효한 버퍼를 설정하면 됩니다. RpcAsyncCompleteCall을 호출하기 전에 [out][in,out] 매개 변수를 업데이트해야 합니다. 이러한 매개 변수 및 비동기 핸들은 RpcAsyncCompleteCall 호출이 반환된 후에는 터치하면 안 됩니다. 서버에서 RpcAsyncCompleteCall 호출이 최종입니다. RpcAsyncCompleteCall 함수 호출이 실패하면 RPC 런타임에서 매개 변수를 해제합니다.

[comm_status] 및 [fault_status] 매개 변수를 포함한 모든 [out] 매개 변수는 RpcAsyncCompleteCall의 반환 값이 RPC_S_OK 경우에만 유효합니다.

요구 사항

   
지원되는 최소 클라이언트 Windows 2000 Professional [데스크톱 앱 | UWP 앱]
지원되는 최소 서버 Windows 2000 Server [데스크톱 앱 | UWP 앱]
대상 플랫폼 Windows
헤더 rpcasync.h(Rpc.h 포함)
라이브러리 Rpcrt4.lib
DLL Rpcrt4.dll

추가 정보

비동기 RPC

오류 처리

RPC_ASYNC_STATE

RpcAsyncAbortCall

RpcAsyncCancelCall

RpcAsyncGetCallHandle

RpcAsyncGetCallStatus

RpcAsyncInitializeHandle

RpcServerTestCancel