LsaEnumerateTrustedDomains 函数 (ntsecapi.h)
LsaEnumerateTrustedDomains 函数检索受信任的域的名称和 SID,以便对登录凭据进行身份验证。 LsaEnumerateTrustedDomains 适用于运行 Windows NT 4.0 或更低版本的 Windows NT 的系统。 将 DsEnumerateDomainTrusts 用于任何其他信任枚举目的。 具体而言, LsaEnumerateTrustedDomains 仅当以下一项或多项为 true 时才能使用:
- 调用系统运行的是 Windows NT 4.0 或早期版本的 Windows NT。
- 使用 PolicyHandle 参数) 指定的目标系统 (,是运行 Windows NT 4.0 或更低版本的域控制器。
- 调用系统运行Windows NT 4.0 或更早版本,不是域控制器,目标系统是调用系统的域中的域控制器。 目标系统可以运行任何版本的Windows NT,包括 Windows 2000 和 Windows XP。
语法
NTSTATUS LsaEnumerateTrustedDomains(
[in] LSA_HANDLE PolicyHandle,
[in] PLSA_ENUMERATION_HANDLE EnumerationContext,
[out] PVOID *Buffer,
[in] ULONG PreferedMaximumLength,
[out] PULONG CountReturned
);
参数
[in] PolicyHandle
Policy 对象的句柄。 句柄必须具有POLICY_VIEW_LOCAL_INFORMATION访问权限。 有关详细信息,请参阅 打开策略对象句柄。
[in] EnumerationContext
指向枚举句柄的指针,该句柄使你能够进行多次调用来枚举所有受信任的域。 首次调用 LsaEnumerateTrustedDomains 时, EnumerationContext 必须指向已初始化为零的变量。 在后续调用 LsaEnumerateTrustedDomains 时, EnumerationContext 必须指向上一次调用返回的枚举句柄。
[out] Buffer
接收指向包含一个或多个受信任域的名称和 SID 的 LSA_TRUST_INFORMATION 结构的数组的指针。
如果不再需要这些信息,请将返回的指针传递给 LsaFreeMemory。
[in] PreferedMaximumLength
指定返回缓冲区的首选最大大小(以字节为单位)。 此信息是近似的;返回的实际字节数可能大于此值。
[out] CountReturned
指向一个变量的指针,该变量接收 Buffer 参数中返回的元素数。
返回值
如果函数成功,则返回值为以下 NTSTATUS 值之一。
值 | 说明 |
---|---|
|
枚举已成功完成。 |
|
调用成功,但要枚举的受信任域更多。 再次调用 LsaEnumerateTrustedDomains ,传递 EnumerationContext 参数中返回的值。 |
|
不再有要枚举的受信任域。 |
如果函数失败,则返回值为 NTSTATUS 代码。 有关详细信息,请参阅 LSA 策略函数返回值。
可以使用 LsaNtStatusToWinError 函数将 NTSTATUS 代码转换为 Windows 错误代码。
注解
对于域控制器仅运行 Windows NT 4.0 或更低版本的 Windows NT 的域,LsaEnumerateTrustedDomains 将返回所有受信任域的列表。 在 4.0 版(包括 4.0 版)的 Windows NT版本中,所有受信任的域都直接受信任。
在 Windows XP 和 Windows 2000 混合模式域中,域控制器可能运行 Windows XP、Windows 2000 或 Windows NT。 因此,在混合模式域中,某些受信任的域直接受信任,而其他域则间接受信任。 在枚举混合模式域中系统的受信任域时, LsaEnumerateTrustedDomains 仅返回直接受信任的域。
相比之下,Windows XP 和 Windows 2000 本机模式域仅包含 Windows 2000 域控制器,即使域中可能存在运行 Windows NT 4.0 或更低版本的成员。 在本机模式 Windows XP 和 Windows 2000 域中枚举系统的受信任域时, LsaEnumerateTrustedDomains 将返回直接信任和间接受信任的域。
检索所有信任信息可能需要多个 LsaEnumerateTrustedDomains 调用。 可以使用 EnumerationContext 参数进行多个调用,如下所示:在第一次调用时,将 EnumerationContext 指向的变量设置为零。 如果 LsaEnumerateTrustedDomains 返回STATUS_SUCCESS或STATUS_MORE_ENTRIES,请再次调用函数,并传入上一次调用返回的 EnumerationContext 值。 当函数返回STATUS_NO_MORE_ENTRIES时,枚举完成。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows XP [仅限桌面应用] |
最低受支持的服务器 | Windows Server 2003 [仅限桌面应用] |
目标平台 | Windows |
标头 | ntsecapi.h |
Library | Advapi32.lib |
DLL | Advapi32.dll |
另请参阅
LSA_TRUST_INFORMATION