Функция обратного вызова SpQueryMetaDataFn (ntsecpkg.h)

Получает метаданные от поставщика поддержки безопасности (SSP), когда он инициирует контекст безопасности.

Синтаксис

SpQueryMetaDataFn Spquerymetadatafn;

NTSTATUS Spquerymetadatafn(
  [in]           LSA_SEC_HANDLE CredentialHandle,
  [in, optional] PUNICODE_STRING TargetName,
  [in]           ULONG ContextRequirements,
  [out]          PULONG MetaDataLength,
  [out]          PUCHAR *MetaData,
  [in, out]      PLSA_SEC_HANDLE ContextHandle
)
{...}

Параметры

[in] CredentialHandle

Дескриптор учетных данных, используемых для контекста безопасности. Если параметр ContextHandle указывает на значение NULL для входных данных, эта функция использует значение этого параметра для создания контекста безопасности.

Значение этого параметра не может иметь значение NULL, если параметр ContextHandle указывает на ЗНАЧЕНИЕ NULL на входных данных.

[in, optional] TargetName

Указатель на UNICODE_STRING , содержащий имя целевого объекта контекста.

[in] ContextRequirements

Флаги, указывающие атрибуты контекста, необходимые клиенту.

Допустимы следующие значения. Значения можно объединить с помощью логической операции ИЛИ .

Значение Значение
ISC_REQ_DELEGATE
Серверу разрешено олицетворить клиента.
ISC_REQ_MUTUAL_AUTH
И клиент, и сервер должны подтвердить свою личность.
ISC_REQ_REPLAY_DETECT
Контекст безопасности будет поддерживать обнаружение воспроизводимых пакетов.
ISC_REQ_SEQUENCE_DETECT
Контекст безопасности будет поддерживать обнаружение неупорядоченных сообщений.
ISC_REQ_USE_SESSION_KEY
Необходимо согласовать новый ключ сеанса .
ISC_REQ_PROMPT_FOR_CREDS
Если клиент является интерактивным пользователем, пакет должен, по возможности, запрашивать у пользователя соответствующие учетные данные.
ISC_REQ_USE_SUPPLIED_CREDS
Входной буфер содержит учетные данные для конкретного пакета, которые следует использовать для проверки подлинности подключения.
ISC_REQ_ALLOCATE_MEMORY
Пакет должен выделить память. В конечном итоге вызывающий объект должен вызвать функцию FreeContextBuffer , чтобы освободить память, выделенную пакетом.
ISC_REQ_USE_DCE_STYLE
Вызывающий объект ожидает трехуровневую транзакцию взаимной проверки подлинности.
ISC_REQ_DATAGRAM
Следует использовать канал связи типа datagram. Дополнительные сведения см. в разделе Контексты datagram.
ISC_REQ_CONNECTION
Следует использовать канал связи типа подключения. Дополнительные сведения см. в разделе Контексты, ориентированные на подключение.
ISC_REQ_EXTENDED_ERROR
Если контекст завершается сбоем, создайте ответное сообщение об ошибке для отправки обратно клиенту.
ISC_REQ_STREAM
Следует использовать канал связи типа потока. Дополнительные сведения см. в разделе контексты Stream.
ISC_REQ_INTEGRITY
Проверяется целостность буфера; однако повторно воспроизводимые и вне последовательности сообщения не будут обнаружены.

[out] MetaDataLength

Размер буфера метаданных (в символах).

[out] MetaData

Метаданные, которые предоставляет поставщик общих служб.

[in, out] ContextHandle

Дескриптор для используемого дескриптора безопасности. Если этот параметр указывает на значение NULL для входных данных, эта функция выделяет и инициализирует контекст безопасности с помощью значений параметров CredentialHandle и TargetName .

Если этот параметр указывает на ЗНАЧЕНИЕ NULL для входных данных, credentialHandle не может иметь значение NULL.

Возвращаемое значение

Если функция выполнена успешно, верните STATUS_SUCCESS или информационный код состояния.

Если функция завершается сбоем, верните код ошибки NTSTATUS , указывающий причину сбоя. Дополнительные сведения см. в подразделе "Примечания".

Комментарии

Указатель на функцию SpQueryMetaDataFn доступен в структуре SECPKG_FUNCTION_TABLE , полученной от функции SpLsaModeInitialize .

Требования

Требование Значение
Минимальная версия клиента Windows 7 [только классические приложения]
Минимальная версия сервера Windows Server 2008 R2 [только классические приложения]
Целевая платформа Windows
Header ntsecpkg.h