Функция 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.
Получение полного списка контроллеров домена
- Используйте dsGetDcName для получения имени контроллера домена.
- Используйте DsBind для подключения к контроллеру домена.
- Вызовите 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 |
См. также
функций службы каталогов