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
指向 Unicode 字符串的指针,该字符串指定安全服务提供程序的服务类。
[in] ServiceName
指向 Unicode 字符串的指针,该字符串指定安全服务提供程序的服务名称。
[in, optional] InstanceName
指向可选 Unicode 字符串的指针,该字符串指定用于连接到安全服务提供商的实例名称。
[in, optional] InstancePort
服务的实例的端口号。 将 0 用于默认端口。 如果此参数为零,SPN 不包括端口号。
[in, optional] Referrer
指向常量以 null 结尾的字符串的指针,该字符串指定给定 IP 地址引用的主机的 DNS 名称。 除非 ServiceName 参数指定 IP 地址,否则将忽略此参数。
[in, optional] InTargetInfo
指向以 null 结尾的字符串的指针,指示上下文的目标。
[in, out] Spn
指向 Unicode 字符串的指针,该字符串接收此函数创建的安全服务提供程序名称字符串。
[out, optional] TotalSize
指向接收所创建的 SPN 的实际长度(包括终止 null 字符)的 ULONG 的指针。
[in] Allocate
一个布尔变量,指示是否应由此函数分配用于存储 Spn Unicode 字符串的内存。 如果此参数为 TRUE,将从分页池中分配 Spn 的内存。
[in] IsTargetInfoMarshaled
一个布尔变量,指示调用方提供了封送 InTargetInfo 结构。 如果 IsTargetInfoMarshaled 为 TRUE,InTargetInfo->Buffer 指向 CredMarshalTargetInfo 函数返回的CREDENTIAL_TARGET_INFORMATION结构的字符串表示形式。
返回值
SecMakeSPNEx2 在成功或失败时返回以下错误代码之一STATUS_SUCCESS。
返回代码 | 描述 |
---|---|
STATUS_BUFFER_OVERFLOW | Allocate 参数设置为 false,并且发生了以下情况之一:(1) Spn 参数为 NULL 指针。 (2) Spn Unicode 字符串参数的最大长度太小。 |
STATUS_INVALID_PARAMETER | Spn 参数的总长度超过 65535 字节。 |
STATUS_NO_MEMORY | Allocate 参数设置为 true,但内存分配请求失败。 |
言论
SecMakeSPNEx2 是 SecMakeSPNEx的增强版本。
要求
要求 | 价值 |
---|---|
最低支持的客户端 | Windows Vista |
支持的最低服务器 | Windows Server 2008 |
目标平台 | 普遍 |
标头 | ntifs.h(包括 Ntifs.h、FltKernel.h) |
库 | Ksecdd.lib |
IRQL | <= APC_LEVEL |