LsaEnumerateTrustedDomains 函式 (ntsecapi.h)

LsaEnumerateTrustedDomains 函式會擷取受信任網域的名稱和 SID,以驗證登入認證LsaEnumerateTrustedDomains 適用於執行 Windows NT 4.0 或舊版 Windows NT 的系統。 針對任何其他信任列舉目的,請使用 DsEnumerateDomainTrusts 。 具體而言,只有在下列一或多個為 true 時,才能使用 LsaEnumerateTrustedDomains

  • 呼叫系統正在執行 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值。

Description
STATUS_SUCCESS
列舉已成功完成。
STATUS_MORE_ENTRIES
呼叫成功,但會列舉更多受信任的網域。 再次呼叫 LsaEnumerateTrustedDomains ,傳遞 EnumerationContext 參數中傳回的值。
STATUS_NO_MORE_ENTRIES
沒有更多信任的網域可列舉。
 

如果函式失敗,傳回值為NTSTATUS程式碼。 如需詳細資訊,請參閱 LSA 原則函式傳回值

您可以使用 LsaNtStatusToWinError 函式,將 NTSTATUS 程式代碼轉換成 Windows 錯誤碼。

備註

對於只執行 Windows NT 4.0 或舊版 Windows NT 之域控制器的網域,LsaEnumerateTrustedDomains 會傳回所有受信任網域的清單。 在最多 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
程式庫 Advapi32.lib
Dll Advapi32.dll

另請參閱

LSA_TRUST_INFORMATION

LsaEnumerateTrustedDomainsEx

LsaFreeMemory

LsaOpenPolicy