dsCrackSpnA 函数 (dsparse.h)
DsCrackSpn 函数将服务主体名称 (SPN) 解析为其组件字符串。
语法
DSPARSE DWORD DsCrackSpnA(
[in] LPCSTR pszSpn,
[in, out, optional] LPDWORD pcServiceClass,
[out, optional] LPSTR ServiceClass,
[in, out, optional] LPDWORD pcServiceName,
[out, optional] LPSTR ServiceName,
[in, out, optional] LPDWORD pcInstanceName,
[out, optional] LPSTR InstanceName,
[out, optional] USHORT *pInstancePort
);
参数
[in] pszSpn
指向常量以 null 结尾的字符串的指针,该字符串包含要分析的 SPN。 SPN 具有以下格式,其中 <必须存在服务类> 和 <实例名称> 组件, <端口号> 和服务 <名称> 组件是可选的。 <端口号>组件必须是数字字符串值。
<service class>/<instance name>:<port number>/<service name>
[in, out, optional] pcServiceClass
指向 DWORD 值的指针,该值在输入时包含 ServiceClass 缓冲区的大小(以 TCHAR 为单位),包括终止 null 字符。 退出时,此参数包含 ServiceClass 字符串中的 TCHAR 数,包括终止 null 字符。
如果此参数为 NULL、包含零或 ServiceClass 为 NULL,则忽略此参数和 ServiceClass 。
若要获取 ServiceClass 字符串(包括 null 终止符)所需的字符数,请使用有效的 SPN、非 NULLServiceClass 和此参数设置为 1 调用此函数。
[out, optional] ServiceClass
指向 TCHAR 缓冲区的指针,该缓冲区接收一个以 null 结尾的字符串,其中包含 <SPN 的服务类> 组件。 此缓冲区的大小必须至少为 *pcServiceClass TCHAR 。 如果不需要服务类,此参数可能为 NULL 。
[in, out, optional] pcServiceName
指向 DWORD 值的指针,该值在输入时包含 ServiceName 缓冲区的大小(以 TCHAR 为单位),包括终止 null 字符。 退出时,此参数包含 ServiceName 字符串中的 TCHAR 数,包括终止 null 字符。
如果此参数为 NULL、包含零或 ServiceName 为 NULL,则忽略此参数和 ServiceName 。
若要获取 ServiceName 字符串所需的字符数(包括 null 终止符),请使用有效的 SPN、非 NULLServiceName 和此参数设置为 1 调用此函数。
[out, optional] ServiceName
指向 TCHAR 缓冲区的指针,该缓冲区接收一个以 null 结尾的字符串, <其中包含 SPN 的服务名称> 组件。 此缓冲区的大小必须至少 为 *pcServiceName TCHAR 。 <如果 SPN 中不存在服务名称>组件,则此缓冲区接收<实例名称>组件。 如果不需要服务名称,此参数可能为 NULL 。
[in, out, optional] pcInstanceName
指向 DWORD 值的指针,该值在输入时包含 InstanceName 缓冲区的大小(以 TCHAR 为单位),包括终止 null 字符。 退出时,此参数包含 InstanceName 字符串中的 TCHAR 数,包括终止 null 字符。
如果此参数为 NULL、包含零或 InstanceName 为 NULL,则忽略此参数和 InstanceName 。
若要获取 InstanceName 字符串(包括 null 终止符)所需的字符数,请使用有效的 SPN、非 NULLInstanceName 和此参数设置为 1 调用此函数。
[out, optional] InstanceName
指向 TCHAR 缓冲区的指针,该缓冲区接收一个以 null 结尾的字符串,其中包含 <SPN 的实例名称> 组件。 此缓冲区的大小必须至少 为 *pcInstanceName TCHAR 。 如果不需要实例名称,此参数可能为 NULL 。
[out, optional] pInstancePort
指向接收 SPN 端口号>组件的整数值的 DWORD 值的<指针。 如果 SPN 不包含 <端口号> 组件,则此参数接收零。 如果端口号不是必需的,此参数可能为 NULL 。
返回值
返回 Win32 错误代码,包括以下内容。
注解
注意
dsparse.h 标头将 DsCrackSpn 定义为别名,该别名根据 UNICODE 预处理器常量的定义自动选择此函数的 ANSI 或 Unicode 版本。 将非特定编码别名的使用与非非特定编码的代码混合使用可能会导致不匹配,从而导致编译或运行时错误。 有关详细信息,请参阅 函数原型的约定。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows Vista |
最低受支持的服务器 | Windows Server 2008 |
目标平台 | Windows |
标头 | dsparse.h (包括 Ntdsapi.h) |
Library | Ntdsapi.lib |
DLL | Ntdsapi.dll |
另请参阅
反馈
https://aka.ms/ContentUserFeedback。
即将发布:在整个 2024 年,我们将逐步淘汰作为内容反馈机制的“GitHub 问题”,并将其取代为新的反馈系统。 有关详细信息,请参阅:提交和查看相关反馈