Condividi tramite


Funzione DsGetDcNextA (dsgetdc.h)

La funzione DsGetDcNext recupera il controller di dominio successivo in un'operazione di enumerazione 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 ricevono i dati degli indirizzi 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 da DNS.

Il chiamante deve liberare questa memoria quando non è più richiesto 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ù richiesto chiamando NetApiBufferFree.

Valore restituito

Restituisce ERROR_SUCCESS se ha esito positivo o un errore WIN32 o RPC in caso contrario. I valori di errore possibili includono quanto segue.

Commenti

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 (RODC) perché tali controller di dominio registrano record specifici del sito e CName e DsGetDcNext e DsGetDcOpen cercano record SRV DNS.

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

Per ottenere un elenco completo dei controller di dominio

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

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 preprocessore UNICODE. La combinazione dell'utilizzo dell'alias di codifica neutrale con il codice che non è neutrale dalla codifica può causare errori di corrispondenza che causano errori di compilazione o runtime. Per altre informazioni, vedere Convenzioni per i prototipi di funzione.

Requisiti

Requisito Valore
Client minimo supportato Windows Vista
Server minimo supportato Windows Server 2008
Piattaforma di destinazione Windows
Intestazione dsgetdc.h
Libreria Netapi32.lib
DLL Netapi32.dll

Vedi anche

Funzioni del servizio directory

DsGetDcClose

DsGetDcOpen

Enumerazione dei controller di dominio

LocalFree

NetApiBufferFree

SOCKET_ADDRESS