SecMakeSPN 函数 (ntifs.h)

SecMakeSPN 创建一个服务提供程序名称字符串,该字符串可在与特定安全服务提供商通信时使用。

语法

KSECDDDECLSPEC NTSTATUS SecMakeSPN(
  [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, out]       IN OUT PUNICODE_STRING Spn,
  [out, optional] OUT PULONG             Length,
  [in]            IN BOOLEAN             Allocate
);

参数

[in] ServiceClass

指向为安全服务提供程序指定服务类的 Unicode 字符串的指针。

[in] ServiceName

指向 Unicode 字符串的指针,指定安全服务提供程序的服务名称。

[in, optional] InstanceName

指向可选 Unicode 字符串的指针,该字符串指定用于连接到安全服务提供程序的实例名称。

[in, optional] InstancePort

服务的实例的端口号。 将 0 用于默认端口。 如果此参数为零,SPN 不包括端口号。

[in, optional] Referrer

指向常量以 null 结尾的字符串的指针,该字符串指定给定 IP 地址引用的主机的 DNS 名称。 除非 ServiceName 参数指定 IP 地址,否则将忽略此参数。

[in, out] Spn

指向 Unicode 字符串的指针,用于存储此函数创建的安全服务提供程序名称字符串。

[out, optional] Length

指向接收所创建的 SPN 的实际长度(包括终止 null 字符)的 ULONG 的指针。

[in] Allocate

一个布尔变量,指示存储 Spn Unicode 字符串的内存是否应由此函数分配。 如果此参数为 true,将从分页池中分配 Spn 的内存。

返回值

SecMakeSPN 在成功或失败时返回以下错误代码之一STATUS_SUCCESS。

返回代码 描述
STATUS_BUFFER_OVERFLOW Allocate 参数设置为 false,并且发生了以下情况之一:(1) Spn 参数为 NULL 指针。 (2) Spn Unicode 字符串参数的最大长度太小。
STATUS_INVALID_PARAMETER Spn 参数的总长度超过 65535 字节。
STATUS_NO_MEMORY Allocate 参数设置为 true,但内存分配请求失败。

要求

要求 价值
目标平台 普遍
标头 ntifs.h(包括 Ntifs.h、FltKernel.h)
Ksecdd.lib
IRQL <= APC_LEVEL

另请参阅

SecMakeSPNEx

SecMakeSPNEx2