Compartir a través de


Función DsGetDcNextA (dsgetdc.h)

La función DsGetDcNext recupera el siguiente controlador de dominio en una operación de enumeración del controlador de dominio.

Sintaxis

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

Parámetros

[in] GetDcContextHandle

Contiene el identificador de contexto de enumeración del controlador de dominio proporcionado por la función DsGetDcOpen .

[out, optional] SockAddressCount

Puntero a un valor de ULONG que recibe el número de elementos de la matriz SockAddresses . Si este parámetro es NULL, no se recuperan las direcciones de socket.

[out, optional] SockAddresses

Puntero a una matriz de estructuras de SOCKET_ADDRESS que recibe los datos de dirección del socket para el controlador de dominio. SockAddressCount recibe el número de elementos de esta matriz.

Todas las direcciones devueltas serán de tipo AF_INET o AF_INET6. El miembro sin_port contiene el puerto del registro del servidor. Un puerto de 0 indica que no hay ningún puerto disponible en DNS.

El autor de la llamada debe liberar esta memoria cuando ya no sea necesaria llamando a LocalFree.

Este parámetro se omite si SockAddressCount es NULL.

[out, optional] DnsHostName

Puntero a un puntero de cadena que recibe el nombre DNS del controlador de dominio. Este parámetro recibe NULL si no se conoce ningún nombre de host. El autor de la llamada debe liberar esta memoria cuando ya no sea necesaria mediante una llamada a NetApiBufferFree.

Valor devuelto

Devuelve ERROR_SUCCESS si se ejecuta correctamente o un error de Win32 o RPC en caso contrario. Entre los posibles valores de error se incluyen los siguientes.

Comentarios

Para restablecer la enumeración, cierre la enumeración actual llamando a DsGetDcClose y vuelva a abrir la enumeración llamando a DsGetDcOpen de nuevo.

El controlador de dominio devuelto por DsGetDcNext no será un DC de solo lectura (RODC) porque esos controladores de dominio solo registran registros específicos del sitio y CName, y tanto DsGetDcNext como DsGetDcOpen buscan registros SRV de DNS.

En el procedimiento siguiente se muestra cómo obtener una lista completa de controladores de dominio de un equipo que ejecuta Windows Server 2008.

Para obtener una lista completa de controladores de dominio

  1. Use DsGetDcName para obtener un nombre de controlador de dominio.
  2. Use DsBind para conectarse a ese controlador de dominio.
  3. Llame a DsGetDomainControllerInfo con InfoLevel 3 (DS_DOMAIN_CONTROLLER_INFO_3) para obtener la lista completa, incluidos los RODC.

Nota

El encabezado dsgetdc.h define DsGetDcNext como alias que selecciona automáticamente la versión ANSI o Unicode de esta función en función de la definición de la constante de preprocesador UNICODE. La combinación del uso del alias neutral de codificación con código que no es neutral de codificación puede dar lugar a errores de coincidencia que dan lugar a errores de compilación o tiempo de ejecución. Para obtener más información, vea Convenciones para prototipos de función.

Requisitos

Requisito Value
Cliente mínimo compatible Windows Vista
Servidor mínimo compatible Windows Server 2008
Plataforma de destino Windows
Encabezado dsgetdc.h
Library Netapi32.lib
Archivo DLL Netapi32.dll

Consulte también

Funciones del servicio de directorio

DsGetDcClose

DsGetDcOpen

Enumeración de controladores de dominio

LocalFree

NetApiBufferFree

SOCKET_ADDRESS