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 a la valeur 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 dans ce tableau.
Toutes les adresses retournées seront de type AF_INET ou AF_INET6. Le membre sin_port contient le port de l’enregistrement du serveur. Un port de 0 indique qu’aucun port n’est disponible à partir de DNS.
L’appelant doit libérer cette mémoire quand elle n’est plus nécessaire en appelant LocalFree.
Ce paramètre est ignoré si SockAddressCount a la valeur 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 quand elle n’est plus nécessaire en appelant NetApiBufferFree.
Valeur retournée
Retourne ERROR_SUCCESS en cas de réussite ou une 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 enregistrent uniquement des enregistrements spécifiques au site et CName, et DsGetDcNext et DsGetDcOpen recherchent des enregistrements SRV DNS.
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 une 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.
Notes
L’en-tête dsgetdc.h définit DsGetDcNext en tant qu’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. La combinaison 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.
Configuration requise
Condition requise | Valeur |
---|---|
Client minimal pris en charge | Windows Vista |
Serveur minimal pris en charge | Windows Server 2008 |
Plateforme cible | Windows |
En-tête | dsgetdc.h |
Bibliothèque | Netapi32.lib |
DLL | Netapi32.dll |
Voir aussi
Fonctions de service d’annuaire