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

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

[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)
Library Ksecdd.lib
IRQL <= APC_LEVEL

另请参阅

SecMakeSPNEx

SecMakeSPNEx2