Compartilhar via


Função DsGetDcNextA (dsgetdc.h)

A função DsGetDcNext recupera o próximo controlador de domínio em uma operação de enumeração do controlador de domínio.

Sintaxe

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

Parâmetros

[in] GetDcContextHandle

Contém o identificador de contexto de enumeração do controlador de domínio fornecido pela função DsGetDcOpen.

[out, optional] SockAddressCount

Ponteiro para um valor ULONG que recebe o número de elementos na matriz SockAddresses . Se esse parâmetro for NULL, os endereços do soquete não serão recuperados.

[out, optional] SockAddresses

Ponteiro para uma matriz de estruturas de SOCKET_ADDRESS que recebe os dados de endereço do soquete para o controlador de domínio. SockAddressCount recebe o número de elementos nessa matriz.

Todos os endereços retornados serão do tipo AF_INET ou AF_INET6. O membro sin_port contém a porta do registro do servidor. Uma porta 0 indica que nenhuma porta está disponível no DNS.

O chamador deve liberar essa memória quando ela não for mais necessária chamando localfree.

Esse parâmetro será ignorado se sockAddressCount estiver NULL.

[out, optional] DnsHostName

Ponteiro para um ponteiro de cadeia de caracteres que recebe o nome DNS do controlador de domínio. Esse parâmetro receberá NULL se nenhum nome de host for conhecido. O chamador deve liberar essa memória quando ela não for mais necessária chamando NetApiBufferFree.

Valor de retorno

Retorna ERROR_SUCCESS se for bem-sucedido ou um erro Win32 ou RPC, caso contrário. Os valores de erro possíveis incluem o seguinte.

Observações

Para redefinir a enumeração, feche a enumeração atual chamando DsGetDcClose e reabra a enumeração chamando DsGetDcOpen novamente.

O DC retornado por DsGetDcNext não será um DC (RODC) somente leitura porque esses DCs registram apenas registros CName e específicos do site e ambos DsGetDcNext e DsGetDcOpen procurar registros SRV DNS.

O procedimento a seguir mostra como obter uma lista de DC completa de um computador que executa o Windows Server 2008.

Para obter uma lista completa de controladores de domínio

  1. Use DsGetDcName para obter um nome de controlador de domínio.
  2. Use DsBind para se conectar a esse controlador de domínio.
  3. Chame DsGetDomainControllerInfo com o InfoLevel 3 (DS_DOMAIN_CONTROLLER_INFO_3) para obter a lista completa, incluindo RODCs.

Nota

O cabeçalho dsgetdc.h define DsGetDcNext como um alias que seleciona automaticamente a versão ANSI ou Unicode dessa função com base na definição da constante do pré-processador UNICODE. A combinação do uso do alias neutro de codificação com código que não é neutro em codificação pode levar a incompatibilidades que resultam em erros de compilação ou de runtime. Para obter mais informações, consulte Conventions for Function Prototypes.

Requisitos

Requisito Valor
de cliente com suporte mínimo Windows Vista
servidor com suporte mínimo Windows Server 2008
da Plataforma de Destino Windows
cabeçalho dsgetdc.h
biblioteca Netapi32.lib
de DLL Netapi32.dll

Consulte também

Funções de serviço de diretório

DsGetDcClose

DsGetDcOpen

enumerando controladores de domínio

LocalFree

NetApiBufferFree

SOCKET_ADDRESS