Freigeben über


DsGetDcNextA-Funktion (dsgetdc.h)

Die DsGetDcNext-Funktion ruft den nächsten Domänencontroller in einem Domänencontroller-Enumerationsvorgang ab.

Syntax

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

Parameter

[in] GetDcContextHandle

Enthält das Kontexthandle für die Domänencontrolleraufzählung, das von der DsGetDcOpen-Funktion bereitgestellt wird.

[out, optional] SockAddressCount

Zeiger auf einen ULONG-Wert , der die Anzahl der Elemente im SockAddresses-Array empfängt . Wenn dieser Parameter NULL ist, werden Socketadressen nicht abgerufen.

[out, optional] SockAddresses

Zeiger auf ein Array von SOCKET_ADDRESS Strukturen, das die Socketadressdaten für den Domänencontroller empfängt. SockAddressCount empfängt die Anzahl der Elemente in diesem Array.

Alle zurückgegebenen Adressen sind vom Typ AF_INET oder AF_INET6. Der sin_port-Member enthält den Port aus dem Serverdatensatz. Der Port 0 gibt an, dass über DNS kein Port verfügbar ist.

Der Aufrufer muss diesen Arbeitsspeicher freigeben, wenn er durch Aufrufen von LocalFree nicht mehr benötigt wird.

Dieser Parameter wird ignoriert, wenn SockAddressCountNULL ist.

[out, optional] DnsHostName

Zeiger auf einen Zeichenfolgenzeiger, der den DNS-Namen des Domänencontrollers empfängt. Dieser Parameter empfängt NULL , wenn kein Hostname bekannt ist. Der Aufrufer muss diesen Arbeitsspeicher freigeben, wenn er nicht mehr benötigt wird, indem Er NetApiBufferFree aufruft.

Rückgabewert

Gibt ERROR_SUCCESS zurück, wenn erfolgreich oder andernfalls ein Win32- oder RPC-Fehler auftritt. Mögliche Fehlerwerte sind:

Hinweise

Um die Enumeration zurückzusetzen, schließen Sie die aktuelle Enumeration, indem Sie DsGetDcClose aufrufen, und öffnen Sie die Enumeration erneut, indem Sie DsGetDcOpen erneut aufrufen.

Der von DsGetDcNext zurückgegebene DC ist kein schreibgeschützter DC (RODC), da diese DCs nur standortspezifische Datensätze und CName-Datensätze registrieren und sowohl DsGetDcNext als auch DsGetDcOpen nach DNS SRV-Einträgen suchen.

Das folgende Verfahren zeigt, wie Sie eine vollständige DC-Liste von einem Computer mit Windows Server 2008 abrufen.

So rufen Sie eine vollständige Liste der Domänencontroller ab

  1. Verwenden Sie DsGetDcName , um einen Domänencontrollernamen abzurufen.
  2. Verwenden Sie DsBind , um eine Verbindung mit diesem Domänencontroller herzustellen.
  3. Rufen Sie DsGetDomainControllerInfo mit InfoLevel 3 (DS_DOMAIN_CONTROLLER_INFO_3) auf, um die vollständige Liste einschließlich RODCs zu erhalten.

Hinweis

Der Dsgetdc.h-Header definiert DsGetDcNext als Alias, der die ANSI- oder Unicode-Version dieser Funktion basierend auf der Definition der UNICODE-Präprozessorkonstante automatisch auswählt. Das Mischen der Verwendung des codierungsneutralen Alias mit Code, der nicht Codierungsneutral ist, kann zu Nichtübereinstimmungen führen, die zu Kompilierungs- oder Laufzeitfehlern führen. Weitere Informationen finden Sie unter Konventionen für Funktionsprototypen.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows Vista
Unterstützte Mindestversion (Server) Windows Server 2008
Zielplattform Windows
Kopfzeile dsgetdc.h
Bibliothek Netapi32.lib
DLL Netapi32.dll

Weitere Informationen

Verzeichnisdienstfunktionen

DsGetDcClose

DsGetDcOpen

Auflisten von Domänencontrollern

LocalFree

NetApiBufferFree

SOCKET_ADDRESS