Функция RpcServerInqCallAttributesA (rpcasync.h)
Функция RpcServerInqCallAttributes — это вызов сервера RPC, который получает атрибуты контекста безопасности клиента.
Синтаксис
RPC_STATUS RpcServerInqCallAttributesA(
[in] RPC_BINDING_HANDLE ClientBinding,
[in, out] void *RpcCallAttributes
);
Параметры
[in] ClientBinding
Необязательный. Для явной привязки в подпрограмме сервера ClientBinding — это дескриптор привязки, с помощью которого была вызвана подпрограмма диспетчера. См. примечания.
[in, out] RpcCallAttributes
RPC_CALL_ATTRIBUTES_V2 структура, которая получает атрибуты вызова.
Возвращаемое значение
Возвращает RPC_S_OK при успешном выполнении и заполняется RpcCallAttributes. Если возвращается ERROR_MORE_DATA, одно или несколько полей в RpcCallAttributes было недостаточной длины и не может быть заполнено. Дополнительные сведения об обработке ERROR_MORE_DATA см. в RPC_CALL_ATTRIBUTES_V2.
После сбоя содержимое RpcCallAttributes не определено и может быть частично изменено RPC.
Замечания
Функция RpcServerInqCallAttributes использует схему управления версиями для включения новых возможностей без необходимости вводить новые функции с идентификаторами суффикса. Например, вторая версия RPC_CALL_ATTRIBUTES_V2, определяемая простым #define в заголовке, может добавлять новые члены для упрощения новых функций, встроенных в будущие версии функции RpcServerInqCallAttributes, не выпуская функцию RpcServerInqCallAttributesEx.
Если функция RpcServerInqCallAttributes вызывается вне подпрограммы сервера, а если функция вызывает атрибуты контекста безопасности для асинхронного вызова RPC, ClientBinding можно получить, вызвав функцию RpcAsyncGetCallHandle из асинхронного дескриптора.
Функция
Функция RpcServerInqCallAttributes является потокобезопасной.
Примеры
RPC_CALL_ATTRIBUTES CallAttributes; // this maps to RPC_CALL_ATTRIBUTES_V1
memset(&CallAttributes, 0, sizeof(CallAttributes));
CallAttributes.Version = RPC_CALL_ATTRIBUTES_VERSION; // maps to 1
CallAttributes.Flags = ;//....
Status = RpcServerInqCallAttributes(0, &ClientContextAttributes);
Заметка
Заголовок rpcasync.h определяет RpcServerInqCallAttributes как псевдоним, который автоматически выбирает версию ANSI или Юникод этой функции на основе определения константы препроцессора ЮНИКОДа. Сочетание использования псевдонима, нейтрального для кодирования, с кодом, не зависящим от кодирования, может привести к несоответствиям, которые приводят к ошибкам компиляции или среды выполнения. Дополнительные сведения см. в соглашениях о прототипах функций.
Требования
Требование | Ценность |
---|---|
минимальные поддерживаемые клиентские | Windows XP [только классические приложения] |
минимальный поддерживаемый сервер | Windows Server 2003 [только классические приложения] |
целевая платформа | Виндоус |
заголовка | rpcasync.h (include Rpc.h) |
библиотеки |
Rpcrt4.lib |
DLL | Rpcrt4.dll |