Поделиться через


Получение асинхронного ответа

После уведомления о том, что сервер отправил ответ, клиент вызывает RpcAsyncCompleteCall с асинхронным дескриптором, чтобы он смог получить ответ. Когда RpcAsyncCompleteCall успешно завершился, параметр Reply направлен на буфер, содержащий возвращаемое значение удаленной функции. Все буферы, предоставляемые клиентской программой, как выходные параметры [] или как входные параметры [, ] асинхронной удаленной функции, содержат допустимые данные. Если клиент вызывает RpcAsyncCompleteCall до отправки ответа на сервер, вызов завершится ошибкой и возвращает значение RPC_S_ASYNC_CALL_PENDING.

Если в клиентской программе используются порты завершения ввода-вывода или события для уведомления, она должна вызывать CloseHandle, чтобы освободить порт или дескриптор, когда она больше не нуждается в них.