Freigeben über


LsaEnumerateTrustedDomains-Funktion (ntsecapi.h)

Die LsaEnumerateTrustedDomains-Funktion ruft die Namen und SIDs von Domänen ab, die vertrauenswürdig sind, um Anmeldeinformationen zu authentifizieren. LsaEnumerateTrustedDomains ist für die Verwendung auf Systemen mit Windows NT 4.0 oder früheren Versionen von Windows NT vorgesehen. Verwenden Sie DsEnumerateDomainTrusts für andere Zwecke der Vertrauensenumeration. Insbesondere kann LsaEnumerateTrustedDomains nur verwendet werden, wenn mindestens eine der folgenden Werte zutrifft:

  • Auf dem aufrufenden System wird Windows NT 4.0 oder eine frühere Version von Windows NT ausgeführt.
  • Das Zielsystem (angegeben mit dem Parameter PolicyHandle ) ist ein Domänencontroller, auf dem Windows NT 4.0 oder eine frühere Version ausgeführt wird.
  • Das aufrufende System führt Windows NT 4.0 oder eine frühere Version aus und ist kein Domänencontroller, und das Zielsystem ist ein Domänencontroller in der Domäne des aufrufenden Systems. Auf dem Zielsystem kann eine beliebige Version von Windows NT ausgeführt werden, einschließlich Windows 2000 und Windows XP.

Syntax

NTSTATUS LsaEnumerateTrustedDomains(
  [in]  LSA_HANDLE              PolicyHandle,
  [in]  PLSA_ENUMERATION_HANDLE EnumerationContext,
  [out] PVOID                   *Buffer,
  [in]  ULONG                   PreferedMaximumLength,
  [out] PULONG                  CountReturned
);

Parameter

[in] PolicyHandle

Ein Handle für ein Policy-Objekt . Das Handle muss über das zugriffsrecht POLICY_VIEW_LOCAL_INFORMATION verfügen. Weitere Informationen finden Sie unter Öffnen eines Richtlinienobjekthandles.

[in] EnumerationContext

Zeiger auf ein Enumerationshandle, mit dem Sie mehrere Aufrufe ausführen können, um alle vertrauenswürdigen Domänen aufzulisten. Beim ersten Aufruf von LsaEnumerateTrustedDomains muss EnumerationContext auf eine Variable verweisen, die mit null initialisiert wurde. Bei nachfolgenden Aufrufen von LsaEnumerateTrustedDomains muss EnumerationContext auf das Vom vorherigen Aufruf zurückgegebene Enumerationshandle verweisen.

[out] Buffer

Empfängt einen Zeiger auf ein Array von LSA_TRUST_INFORMATION Strukturen, die die Namen und SIDs einer oder mehrerer vertrauenswürdiger Domänen enthalten.

Wenn Sie die Informationen nicht mehr benötigen, übergeben Sie den zurückgegebenen Zeiger an LsaFreeMemory.

[in] PreferedMaximumLength

Gibt die bevorzugte maximale Größe des zurückgegebenen Puffers in Bytes an. Diese Informationen sind ungefähr; Die tatsächliche Anzahl der zurückgegebenen Bytes kann größer als dieser Wert sein.

[out] CountReturned

Zeiger auf eine Variable, die die Anzahl der im Buffer-Parameter zurückgegebenen Elemente empfängt.

Rückgabewert

Wenn die Funktion erfolgreich ist, ist der Rückgabewert einer der folgenden NTSTATUS-Werte.

Wert BESCHREIBUNG
STATUS_SUCCESS
Die Enumeration wurde erfolgreich abgeschlossen.
STATUS_MORE_ENTRIES
Der Aufruf war erfolgreich, aber es gibt mehr vertrauenswürdige Domänen, die aufgelistet werden müssen. Rufen Sie LsaEnumerateTrustedDomains erneut auf, und übergeben Sie den wert, der im EnumerationContext-Parameter zurückgegeben wird.
STATUS_NO_MORE_ENTRIES
Es gibt keine vertrauenswürdigen Domänen, die aufgelistet werden müssen.
 

Wenn die Funktion fehlschlägt, ist der Rückgabewert ein NTSTATUS-Code. Weitere Informationen finden Sie unter Rückgabewerte der LSA-Richtlinienfunktion.

Sie können die LsaNtStatusToWinError-Funktion verwenden, um den NTSTATUS-Code in einen Windows-Fehlercode zu konvertieren.

Hinweise

Für Domänen mit Domänencontrollern, auf denen nur Windows NT 4.0 oder frühere Versionen von Windows NT ausgeführt werden, gibt LsaEnumerateTrustedDomains eine Liste aller vertrauenswürdigen Domänen zurück. In Releases von Windows NT bis einschließlich Release 4.0 sind alle vertrauenswürdigen Domänen direkt vertrauenswürdig.

In Windows XP- und Windows 2000-Domänen im gemischten Modus wird auf Domänencontrollern möglicherweise Windows XP, Windows 2000 oder Windows NT ausgeführt. Daher werden in Domänen im gemischten Modus einige vertrauenswürdige Domänen direkt vertrauenswürdig und andere indirekt vertrauenswürdig. Beim Aufzählen der vertrauenswürdigen Domänen eines Systems in einer Domäne im gemischten Modus gibt LsaEnumerateTrustedDomains nur direkt vertrauenswürdige Domänen zurück.

Im Gegensatz dazu enthalten Windows XP- und Windows 2000-Domänen im einheitlichen Modus nur Windows 2000-Domänencontroller, auch wenn mitglieder in der Domäne vorhanden sind, in der Windows NT 4.0 oder frühere Versionen ausgeführt werden. Beim Aufzählen der vertrauenswürdigen Domänen eines Systems in einer Windows XP- und Windows 2000-Domäne im einheitlichen Modus gibt LsaEnumerateTrustedDomains sowohl direkt vertrauenswürdige als auch indirekt vertrauenswürdige Domänen zurück.

Das Abrufen aller Vertrauensinformationen erfordert möglicherweise mehr als einen einzelnen LsaEnumerateTrustedDomains-Aufruf . Sie können den EnumerationContext-Parameter verwenden, um mehrere Aufrufe wie folgt auszuführen: Legen Sie beim ersten Aufruf die Variable, auf die enumerationContext verweist, auf Null fest. Wenn LsaEnumerateTrustedDomains STATUS_SUCCESS oder STATUS_MORE_ENTRIES zurückgibt, rufen Sie die Funktion erneut auf, und übergeben Sie dabei den Vom vorherigen Aufruf zurückgegebenen EnumerationContext-Wert . Die Enumeration ist abgeschlossen, wenn die Funktion STATUS_NO_MORE_ENTRIES zurückgibt.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows XP [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows Server 2003 [nur Desktop-Apps]
Zielplattform Windows
Kopfzeile ntsecapi.h
Bibliothek Advapi32.lib
DLL Advapi32.dll

Weitere Informationen

LSA_TRUST_INFORMATION

LsaEnumerateTrustedDomainsEx

LsaFreeMemory

LsaOpenPolicy