SecMakeSPNEx 函数 (ntifs.h)

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

语法

KSECDDDECLSPEC NTSTATUS SecMakeSPNEx(
  [in]            IN PUNICODE_STRING     ServiceClass,
  [in]            IN PUNICODE_STRING     ServiceName,
  [in]            IN PUNICODE_STRING     InstanceName,
  [in, optional]  IN USHORT              InstancePort,
  [in, optional]  IN PUNICODE_STRING     Referrer,
  [in, optional]  IN PUNICODE_STRING     TargetInfo,
  [in, out]       IN OUT PUNICODE_STRING Spn,
  [out, optional] OUT PULONG             Length,
  [in]            IN BOOLEAN             Allocate
);

参数

[in] ServiceClass

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

[in] ServiceName

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

[in] InstanceName

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

[in, optional] InstancePort

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

[in, optional] Referrer

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

[in, optional] TargetInfo

指向以 null 结尾的字符串的指针,该字符串指示上下文的目标。

[in, out] Spn

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

[out, optional] Length

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

[in] Allocate

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

返回值

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

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

注解

SecMakeSPNExSecMakeSPN 的增强版本。

要求

要求
最低受支持的客户端 此函数仅是 Windows XP
目标平台 通用
标头 ntifs.h (包括 Ntifs.h、FltKernel.h)
Library Ksecdd.lib
IRQL <= APC_LEVEL

另请参阅

SecMakeSPN

SecMakeSPNEx2