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
指向接收所创建的 SPN 的实际长度(包括终止 null 字符)的 ULONG 的指针。
[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,但内存分配请求失败。 |
言论
SecMakeSPNEx 是 SecMakeSPN的增强版本。
要求
要求 | 价值 |
---|---|
最低支持的客户端 | 此函数仅是 Windows XP |
目标平台 | 普遍 |
标头 | ntifs.h(包括 Ntifs.h、FltKernel.h) |
库 | Ksecdd.lib |
IRQL | <= APC_LEVEL |