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


Функция 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.

Примечание Список допустимых кодов ошибок см. в разделе возвращаемых значений RPC.
 

Замечания

Функция RpcServerInqCallAttributes использует схему управления версиями для включения новых возможностей без необходимости вводить новые функции с идентификаторами суффикса. Например, вторая версия RPC_CALL_ATTRIBUTES_V2, определяемая простым #define в заголовке, может добавлять новые члены для упрощения новых функций, встроенных в будущие версии функции RpcServerInqCallAttributes, не выпуская функцию RpcServerInqCallAttributesEx.

Если функция RpcServerInqCallAttributes вызывается вне подпрограммы сервера, а если функция вызывает атрибуты контекста безопасности для асинхронного вызова RPC, ClientBinding можно получить, вызвав функцию RpcAsyncGetCallHandle из асинхронного дескриптора.

Функция RpcServerInqCallAttributes не поддерживается для последовательностей протоколов диаграммы данных, таких как ncadg_*. При вызове, который выполняется в последовательности протокола datagram, возвращается RPC_S_CANNOT_SUPPORT.

Функция 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

См. также

RPC_CALL_ATTRIBUTES_V2

RpcAsyncGetCallHandle