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
[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
- Utilisez DsGetDcName pour obtenir un nom de contrôleur de domaine.
- Utilisez DsBind pour vous connecter à ce contrôleur de domaine.
- 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