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


Функция 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—>Буфер указывает на строковое представление структуры CREDENTIAL_TARGET_INFORMATION, возвращаемой функцией CredMarshalTargetInfo.

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

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

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

Замечания

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

Требования

Требование Ценность
минимальные поддерживаемые клиентские Windows Vista
минимальный поддерживаемый сервер Windows Server 2008
целевая платформа Всеобщий
заголовка ntifs.h (include Ntifs.h, FltKernel.h)
библиотеки Ksecdd.lib
IRQL <= APC_LEVEL

См. также

SecMakeSPN

SecMakeSPNEx