Partager via


DsGetDcNextA, fonction (dsgetdc.h)

La fonction DsGetDcNext récupère le contrôleur de domaine suivant dans une opération d’énumération de contrôleur de domaine.

Syntaxe

DSGETDCAPI DWORD DsGetDcNextA(
  [in]            HANDLE           GetDcContextHandle,
  [out, optional] PULONG           SockAddressCount,
  [out, optional] LPSOCKET_ADDRESS *SockAddresses,
  [out, optional] LPSTR            *DnsHostName
);

Paramètres

[in] GetDcContextHandle

Contient le handle de contexte d’énumération du contrôleur de domaine fourni par la fonction DsGetDcOpen.

[out, optional] SockAddressCount

Pointeur vers une valeur ULONG qui reçoit le nombre d’éléments dans le tableau SockAddresses . Si ce paramètre est NULL, les adresses de socket ne sont pas récupérées.

[out, optional] SockAddresses

Pointeur vers un tableau de structures SOCKET_ADDRESS qui reçoit les données d’adresse de socket pour le contrôleur de domaine. SockAddressCount reçoit le nombre d’éléments de ce tableau.

Toutes les adresses retournées seront de type AF_INET ou AF_INET6. Le membre sin_port contient le port à partir de l’enregistrement du serveur. Un port de 0 indique qu’aucun port n’est disponible à partir du DNS.

L’appelant doit libérer cette mémoire lorsqu’il n’est plus nécessaire en appelant LocalFree.

Ce paramètre est ignoré si SockAddressCount est NULL.

[out, optional] DnsHostName

Pointeur vers un pointeur de chaîne qui reçoit le nom DNS du contrôleur de domaine. Ce paramètre reçoit NULL si aucun nom d’hôte n’est connu. L’appelant doit libérer cette mémoire lorsqu’elle n’est plus nécessaire en appelant NetApiBufferFree.

Valeur de retour

Retourne ERROR_SUCCESS en cas de réussite ou d’erreur Win32 ou RPC dans le cas contraire. Les valeurs d’erreur possibles sont les suivantes.

Remarques

Pour réinitialiser l’énumération, fermez l’énumération actuelle en appelant DsGetDcClose, puis rouvrez l’énumération en appelant à nouveau DsGetDcOpen.

Le contrôleur de domaine retourné par DsGetDcNext ne sera pas un contrôleur de domaine en lecture seule (RODC), car ces contrôleurs de domaine inscrivent uniquement des enregistrements de site spécifiques au site et CName, et les deux DsGetDcNext et DsGetDcOpen rechercher des enregistrements DNS SRV.

La procédure suivante montre comment obtenir une liste de contrôleurs de domaine complète à partir d’un ordinateur exécutant Windows Server 2008.

Pour obtenir la liste complète des contrôleurs de domaine

  1. Utilisez DsGetDcName pour obtenir un nom de contrôleur de domaine.
  2. Utilisez DsBind pour vous connecter à ce contrôleur de domaine.
  3. Appelez DsGetDomainControllerInfo avec InfoLevel 3 (DS_DOMAIN_CONTROLLER_INFO_3) pour obtenir la liste complète, y compris les contrôleurs de domaine complets.

Note

L’en-tête dsgetdc.h définit DsGetDcNext comme alias qui sélectionne automatiquement la version ANSI ou Unicode de cette fonction en fonction de la définition de la constante de préprocesseur UNICODE. Le mélange de l’utilisation de l’alias neutre en encodage avec du code qui n’est pas neutre en encodage peut entraîner des incompatibilités qui entraînent des erreurs de compilation ou d’exécution. Pour plus d’informations, consultez Conventions pour les prototypes de fonction.

Exigences

Exigence Valeur
client minimum pris en charge Windows Vista
serveur minimum pris en charge Windows Server 2008
plateforme cible Windows
d’en-tête dsgetdc.h
bibliothèque Netapi32.lib
DLL Netapi32.dll

Voir aussi

fonctions de service d’annuaire

DsGetDcClose

DsGetDcOpen

énumération des contrôleurs de domaine

LocalFree

NetApiBufferFree

SOCKET_ADDRESS