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 不再需要記憶體時,必須釋放此記憶體。
傳回值
如果成功或 Win32 或 RPC 錯誤,則傳回 ERROR_SUCCESS 否則傳回 。 可能的錯誤值包括下列專案。
備註
若要重設列舉,請呼叫 DsGetDcClose 關閉目前的列舉,然後再次呼叫 DsGetDcOpen 重新開啟列舉。
DsGetDcNext 傳回的 DC 不會是只讀 DC (RODC) ,因為這些 DC 只會註冊網站特定和 CName 記錄,而 DsGetDcNext 和 DsGetDcOpen 都會尋找 DNS SRV 記錄。
下列程式示範如何從執行 Windows Server 2008 的電腦取得完整的 DC 清單。
取得域控制器的完整清單
- 使用 DsGetDcName 取得域控制器名稱。
- 使用 DsBind 連線到該域控制器。
- 使用 InfoLevel 3 (DS_DOMAIN_CONTROLLER_INFO_3) 呼叫 DsGetDomainControllerInfo 以取得完整的清單,包括 RODC。
注意
dsgetdc.h 標頭會將 DsGetDcNext 定義為別名,根據 UNICODE 預處理器常數的定義,自動選取此函式的 ANSI 或 Unicode 版本。 混合使用編碼中性別名與非編碼中性的程序代碼,可能會導致編譯或運行時間錯誤不符。 如需詳細資訊,請參閱 函式原型的慣例。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows Vista |
最低支援的伺服器 | Windows Server 2008 |
目標平台 | Windows |
標頭 | dsgetdc.h |
程式庫 | Netapi32.lib |
Dll | Netapi32.dll |