Condividi tramite


Funzione DsGetDcNextA (dsgetdc.h)

La funzione DsGetDcNext recupera il controller di dominio successivo in un'operazione di enumerazione del controller di dominio.

Sintassi

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

Parametri

[in] GetDcContextHandle

Contiene l'handle del contesto di enumerazione del controller di dominio fornito dalla funzione DsGetDcOpen.

[out, optional] SockAddressCount

Puntatore a un valore ULONG che riceve il numero di elementi nella matrice SockAddresses. Se questo parametro è NULL, gli indirizzi socket non vengono recuperati.

[out, optional] SockAddresses

Puntatore a una matrice di strutture SOCKET_ADDRESS che riceve i dati dell'indirizzo socket per il controller di dominio. SockAddressCount riceve il numero di elementi in questa matrice.

Tutti gli indirizzi restituiti saranno di tipo AF_INET o AF_INET6. Il membro sin_port contiene la porta dal record del server. Una porta 0 indica che non è disponibile alcuna porta dal DNS.

Il chiamante deve liberare questa memoria quando non è più necessaria chiamando LocalFree.

Questo parametro viene ignorato se SockAddressCount è NULL.

[out, optional] DnsHostName

Puntatore a un puntatore di stringa che riceve il nome DNS del controller di dominio. Questo parametro riceve NULL se non è noto alcun nome host. Il chiamante deve liberare questa memoria quando non è più necessaria chiamando NetApiBufferFree.

Valore restituito

Restituisce ERROR_SUCCESS in caso di esito positivo o di errore Win32 o RPC in caso contrario. I possibili valori di errore includono quanto segue.

Osservazioni

Per reimpostare l'enumerazione, chiudere l'enumerazione corrente chiamando DsGetDcClose e quindi riaprire l'enumerazione chiamando di nuovo DsGetDcOpen.

Il controller di dominio restituito da DsGetDcNext non sarà un controller di dominio di sola lettura perché tali controller di dominio registrano solo record specifici del sito e CName e DsGetDcNext e DsGetDcOpen cercare i record SRV DNS.

La procedura seguente illustra come ottenere un elenco completo di controller di dominio da un computer che esegue Windows Server 2008.

Per ottenere un elenco completo dei controller di dominio

  1. Usare DsGetDcName per ottenere un nome di controller di dominio.
  2. Usare DsBind per connettersi al controller di dominio.
  3. Chiamare DsGetDomainControllerInfo con InfoLevel 3 (DS_DOMAIN_CONTROLLER_INFO_3) per ottenere l'elenco completo, inclusi i controller di dominio di sola lettura.

Nota

L'intestazione dsgetdc.h definisce DsGetDcNext come alias che seleziona automaticamente la versione ANSI o Unicode di questa funzione in base alla definizione della costante del preprocessore UNICODE. La combinazione dell'utilizzo dell'alias indipendente dalla codifica con il codice non indipendente dalla codifica può causare mancate corrispondenze che generano errori di compilazione o di runtime. Per altre informazioni, vedere convenzioni di per i prototipi di funzioni.

Fabbisogno

Requisito Valore
client minimo supportato Windows Vista
server minimo supportato Windows Server 2008
piattaforma di destinazione Finestre
intestazione dsgetdc.h
libreria Netapi32.lib
dll Netapi32.dll

Vedere anche

funzioni del servizio directory

DsGetDcClose

DsGetDcOpen

enumerazione dei controller di dominio

LocalFree

NetApiBufferFree

SOCKET_ADDRESS