Поделиться через


Функция DsGetDcNextA (dsgetdc.h)

Функция DsGetDcNext извлекает следующий контроллер домена в операции перечисления контроллера домена.

Синтаксис

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

Параметры

[in] GetDcContextHandle

Содержит дескриптор контекста перечисления контроллера домена, предоставляемый функцией DsGetDcOpen.

[out, optional] SockAddressCount

Указатель на значение ULONG, которое получает количество элементов в массиве SockAddresses. Если этот параметр NULL, адреса сокета не извлекаются.

[out, optional] SockAddresses

Указатель на массив SOCKET_ADDRESS структур, получающих данные адреса сокета для контроллера домена. SockAddressCount получает количество элементов в этом массиве.

Все возвращенные адреса будут иметь тип AF_INET или AF_INET6. Элемент sin_port содержит порт из записи сервера. Порт 0 указывает, что порт недоступен из DNS.

Вызывающий объект должен освободить эту память, если она больше не требуется путем вызова LocalFree.

Этот параметр игнорируется, если SockAddressCount имеет значение NULL .

[out, optional] DnsHostName

Указатель на строковый указатель, который получает DNS-имя контроллера домена. Этот параметр получает NULL, если имя узла неизвестно. Вызывающий объект должен освободить эту память, если она больше не требуется путем вызова NetApiBufferFree.

Возвращаемое значение

Возвращает ERROR_SUCCESS, если ошибка Win32 или RPC успешно выполнена в противном случае. Возможные значения ошибок включают следующие значения.

Замечания

Чтобы сбросить перечисление, закройте текущее перечисление путем вызова DsGetDcClose, а затем повторно откройте перечисление, вызвав dsGetDcOpen еще раз.

Контроллер домена, возвращаемый dsGetDcNext, не будет контроллером домена только для чтения (RODC), так как эти контроллеры домена регистрируют только записи сайта и записи CName, и как dsGetDcNext, так и dsGetDcOpen искать записи DNS SRV.

В следующей процедуре показано, как получить полный список контроллеров домена с компьютера под управлением Windows Server 2008.

Получение полного списка контроллеров домена

  1. Используйте dsGetDcName для получения имени контроллера домена.
  2. Используйте DsBind для подключения к контроллеру домена.
  3. Вызовите DsGetDomainControllerInfo с InfoLevel 3 (DS_DOMAIN_CONTROLLER_INFO_3) для получения полного списка, включая RODCs.

Заметка

Заголовок dsgetdc.h определяет DsGetDcNext как псевдоним, который автоматически выбирает версию ANSI или Юникод этой функции на основе определения константы препроцессора ЮНИКОДа. Сочетание использования псевдонима, нейтрального для кодирования, с кодом, не зависящим от кодирования, может привести к несоответствиям, которые приводят к ошибкам компиляции или среды выполнения. Дополнительные сведения см. в соглашениях о прототипах функций.

Требования

Требование Ценность
минимальные поддерживаемые клиентские Windows Vista
минимальный поддерживаемый сервер Windows Server 2008
целевая платформа Виндоус
заголовка dsgetdc.h
библиотеки Netapi32.lib
DLL Netapi32.dll

См. также

функций службы каталогов

DsGetDcClose

DsGetDcOpen

перечисление контроллеров домена

LocalFree

NetApiBufferFree

SOCKET_ADDRESS