Функция SecMakeSPNEx2 (ntifs.h)

SecMakeSPNEx2 создает строку имени поставщика служб, которую можно использовать при обмене данными с определенными поставщиками служб безопасности.

Синтаксис

KSECDDDECLSPEC NTSTATUS SecMakeSPNEx2(
  [in]            IN PUNICODE_STRING     ServiceClass,
  [in]            IN PUNICODE_STRING     ServiceName,
  [in, optional]  IN PUNICODE_STRING     InstanceName,
  [in, optional]  IN USHORT              InstancePort,
  [in, optional]  IN PUNICODE_STRING     Referrer,
  [in, optional]  IN PUNICODE_STRING     InTargetInfo,
  [in, out]       IN OUT PUNICODE_STRING Spn,
  [out, optional] OUT PULONG             TotalSize,
  [in]            IN BOOLEAN             Allocate,
  [in]            IN BOOLEAN             IsTargetInfoMarshaled
);

Параметры

[in] ServiceClass

Указатель на строку Юникода, задающую класс службы для поставщика служб безопасности.

[in] ServiceName

Указатель на строку Юникода, указывающую имя службы для поставщика служб безопасности.

[in, optional] InstanceName

Указатель на необязательную строку Юникода, указывающую имя экземпляра, используемого для подключения к поставщику службы безопасности.

[in, optional] InstancePort

Номер порта для экземпляра службы. Используйте 0 для порта по умолчанию. Если этот параметр равен нулю, имя субъекта-службы не содержит номер порта.

[in, optional] Referrer

Указатель на константную строку, завершающуюся null, которая указывает DNS-имя узла, который дал ссылку на IP-адрес. Этот параметр игнорируется, если только параметр ServiceName не указывает IP-адрес.

[in, optional] InTargetInfo

Указатель на строку, завершающуюся значением NULL, которая указывает целевой объект контекста.

[in, out] Spn

Указатель на строку Юникода, получающую строку имени поставщика службы безопасности, созданную этой функцией.

[out, optional] TotalSize

Указатель на ULONG, получающий фактическую длину созданного имени субъекта-службы, включая завершающий символ NULL.

[in] Allocate

Логическая переменная, указывающая, должна ли эта функция выделять память, используемую для хранения строки Юникода spn . Если этот параметр имеет значение TRUE, память для spn будет выделена из страничного пула.

[in] IsTargetInfoMarshaled

Логическая переменная, указывающая, что вызывающий объект предоставил маршалированную структуру InTargetInfo . Если параметр IsTargetInfoMarshaled имеет значение TRUE, InTargetInfo-Buffer> указывает на строковое представление структуры CREDENTIAL_TARGET_INFORMATION, возвращаемое функцией CredMarshalTargetInfo.

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

SecMakeSPNEx2 возвращает STATUS_SUCCESS при успешном выполнении или один из следующих кодов ошибок при сбое.

Код возврата Описание
STATUS_BUFFER_OVERFLOW Для параметра Allocate задано значение false, и произошло одно из следующих условий: (1) Параметр Spn был указателем NULL. (2) Максимальная длина строкового параметра Spn Юникода была слишком мала.
STATUS_INVALID_PARAMETER Общая длина параметра Spn превышает 65535 байт.
STATUS_NO_MEMORY Параметру Allocate присвоено значение true, но запрос на выделение памяти завершился сбоем.

Комментарии

SecMakeSPNEx2 — это расширенная версия SecMakeSPNEx.

Требования

Требование Значение
Минимальная версия клиента Windows Vista
Минимальная версия сервера Windows Server 2008
Целевая платформа Универсальное
Верхняя часть ntifs.h (включая Ntifs.h, FltKernel.h)
Библиотека Ksecdd.lib
IRQL <= APC_LEVEL

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

SecMakeSPN

SecMakeSPNEx