Функция RpcAsyncCompleteCall (rpcasync.h)
Клиент и сервер вызывают функцию RpcAsyncCompleteCall для выполнения асинхронного вызова удаленной процедуры.
Синтаксис
RPC_STATUS RpcAsyncCompleteCall(
PRPC_ASYNC_STATE pAsync,
void *Reply
);
Параметры
pAsync
Указатель на структуру RPC_ASYNC_STATE , содержащую сведения об асинхронных вызовах.
Reply
Указатель на буфер, содержащий возвращаемое значение удаленного вызова процедуры.
Возвращаемое значение
В дополнение к следующим значениям RpcAsyncCompleteCall также может возвращать любую общую ошибку 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 освобождает параметры.
Все параметры [out] , включая параметры [comm_status] и [fault_status] , допустимы, только если возвращаемое значение RpcAsyncCompleteCall равно RPC_S_OK.
Требования
Минимальная версия клиента | Windows 2000 Профессиональная [классические приложения | Приложения UWP] |
Минимальная версия сервера | Windows 2000 Server [классические приложения | Приложения UWP] |
Целевая платформа | Windows |
Header | rpcasync.h (включая Rpc.h) |
Библиотека | Rpcrt4.lib |
DLL | Rpcrt4.dll |