Fonction LsaEnumerateTrustedDomains (ntsecapi.h)

La fonction LsaEnumerateTrustedDomains récupère les noms et SID des domaines approuvés pour authentifier les informations d’identification d’ouverture de session. LsaEnumerateTrustedDomains est destiné à être utilisé sur les systèmes exécutant Windows NT 4.0 ou des versions antérieures de Windows NT. Utilisez DsEnumerateDomainTrusts pour tout autre objectif d’énumération d’approbation. Plus précisément, LsaEnumerateTrustedDomains ne peut être utilisé que si une ou plusieurs des conditions suivantes sont remplies :

  • Le système appelant exécute Windows NT 4.0 ou une version antérieure de Windows NT.
  • Le système cible (spécifié à l’aide du paramètre PolicyHandle ) est un contrôleur de domaine exécutant Windows NT 4.0 ou une version antérieure.
  • Le système appelant exécute Windows NT 4.0 ou version antérieure et n’est pas un contrôleur de domaine, et le système cible est un contrôleur de domaine dans le domaine du système appelant. Le système cible peut exécuter n’importe quelle version de Windows NT, y compris Windows 2000 et Windows XP.

Syntaxe

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

Paramètres

[in] PolicyHandle

Handle d’un objet Policy . Le handle doit avoir le droit d’accès POLICY_VIEW_LOCAL_INFORMATION. Pour plus d’informations, consultez Ouverture d’un handle d’objet de stratégie.

[in] EnumerationContext

Pointeur vers un handle d’énumération qui vous permet d’effectuer plusieurs appels pour énumérer tous les domaines approuvés. Lors du premier appel à LsaEnumerateTrustedDomains, ÉnumérationContext doit pointer vers une variable qui a été initialisée sur zéro. Lors des appels suivants à LsaEnumerateTrustedDomains, ÉnumérationContext doit pointer vers le handle d’énumération retourné par l’appel précédent.

[out] Buffer

Reçoit un pointeur vers un tableau de structures LSA_TRUST_INFORMATION qui contiennent les noms et les SID d’un ou plusieurs domaines approuvés.

Lorsque vous n’avez plus besoin des informations, passez le pointeur retourné à LsaFreeMemory.

[in] PreferedMaximumLength

Spécifie la taille maximale par défaut, en octets, de la mémoire tampon retournée. Ces informations sont approximatives ; le nombre réel d’octets retournés peut être supérieur à cette valeur.

[out] CountReturned

Pointeur vers une variable qui reçoit le nombre d’éléments retournés dans le paramètre Buffer .

Valeur retournée

Si la fonction réussit, la valeur de retour est l’une des valeurs NTSTATUS suivantes.

Valeur Description
STATUS_SUCCESS
L’énumération a été terminée avec succès.
STATUS_MORE_ENTRIES
L’appel a réussi, mais il y a plus de domaines de confiance à énumérer. Appelez à nouveau LsaEnumerateTrustedDomains , en transmettant la valeur retournée dans le paramètre ÉnumérationContext .
STATUS_NO_MORE_ENTRIES
Il n’y a plus de domaines approuvés à énumérer.
 

Si la fonction échoue, la valeur de retour est un code NTSTATUS. Pour plus d’informations, consultez Valeurs de retour de la fonction de stratégie LSA.

Vous pouvez utiliser la fonction LsaNtStatusToWinError pour convertir le code NTSTATUS en code d’erreur Windows.

Remarques

Pour les domaines avec des contrôleurs de domaine exécutant uniquement Windows NT 4.0 ou versions antérieures de Windows NT, LsaEnumerateTrustedDomains retourne une liste de tous les domaines approuvés. Dans les versions de Windows NT jusqu’à la version 4.0 comprise, tous les domaines approuvés sont directement approuvés.

Dans les domaines Windows XP et Windows 2000 en mode mixte, les contrôleurs de domaine peuvent exécuter Windows XP, Windows 2000 ou Windows NT. Par conséquent, dans les domaines en mode mixte, certains domaines approuvés sont directement approuvés et d’autres sont indirectement approuvés. Lors de l’énumération des domaines approuvés d’un système dans un domaine en mode mixte, LsaEnumerateTrustedDomains retourne uniquement les domaines approuvés directement.

En revanche, les domaines Windows XP et Windows 2000 en mode natif contiennent uniquement des contrôleurs de domaine Windows 2000, même s’il peut y avoir des membres dans le domaine exécutant Windows NT 4.0 ou versions antérieures. Lors de l’énumération des domaines approuvés d’un système dans un domaine Windows XP et Windows 2000 en mode natif, LsaEnumerateTrustedDomains retourne des domaines approuvés directement et indirectement approuvés.

La récupération de toutes les informations d’approbation peut nécessiter plusieurs appels LsaEnumerateTrustedDomains . Vous pouvez utiliser le paramètre ÉnumérationContext pour effectuer plusieurs appels, comme suit : lors du premier appel, définissez la variable pointée vers ÉnumérationContext sur zéro. Si LsaEnumerateTrustedDomains retourne STATUS_SUCCESS ou STATUS_MORE_ENTRIES, appelez à nouveau la fonction en passant la valeur EnumerationContext retournée par l’appel précédent. L’énumération est terminée lorsque la fonction retourne STATUS_NO_MORE_ENTRIES.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows XP [applications de bureau uniquement]
Serveur minimal pris en charge Windows Server 2003 [applications de bureau uniquement]
Plateforme cible Windows
En-tête ntsecapi.h
Bibliothèque Advapi32.lib
DLL Advapi32.dll

Voir aussi

LSA_TRUST_INFORMATION

LsaEnumerateTrustedDomainsEx

LsaFreeMemory

LsaOpenPolicy