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
SockAddresses 配列内の要素の数を受け取る ULONG 値へのポインター。 このパラメーターが 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 によって返される DC は、サイト固有のレコードと CName レコードのみを登録し、DsGetDcNext と DsGetDcOpen の両方が DNS SRV レコードを検索するため、読み取り専用 DC (RODC) ではありません。
次の手順は、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 |
Library | Netapi32.lib |
[DLL] | Netapi32.dll |