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


Функция 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_*. При вызове при вызове, который выполняется в последовательности протокола датаграммы, возвращается 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 [только классические приложения]
Целевая платформа Windows
Header rpcasync.h (включая Rpc.h)
Библиотека Rpcrt4.lib
DLL Rpcrt4.dll

См. также раздел

RPC_CALL_ATTRIBUTES_V2

RpcAsyncGetCallHandle