DsGetDcOpenA 関数 (dsgetdc.h)
DsGetDcOpen 関数は、新しいドメイン コントローラー列挙操作を開きます。
構文
DSGETDCAPI DWORD DsGetDcOpenA(
[in] LPCSTR DnsName,
[in] ULONG OptionFlags,
[in, optional] LPCSTR SiteName,
[in, optional] GUID *DomainGuid,
[in, optional] LPCSTR DnsForestName,
[in] ULONG DcFlags,
[out] PHANDLE RetGetDcContext
);
パラメーター
[in] DnsName
ドメイン コントローラーを列挙するドメインのドメイン名前付けシステム (DNS) 名を含む null で終わる文字列へのポインター。 このパラメーターを NULL にすることはできません。
[in] OptionFlags
関数の動作を変更するフラグのセットが含まれます。 これは、0 または次の値の 1 つ以上の組み合わせにすることができます。
DS_ONLY_DO_SITE_NAME
サイト固有のドメイン コントローラーのみが列挙されます。
DS_NOTIFY_AFTER_SITE_RECORDS
DsGetDcNext 関数は、サイト固有のすべてのドメイン コントローラーが取得された後、ERROR_FILEMARK_DETECTED値を返します。 次に、DsGetDcNext は、最初のグループに含まれるサイト固有のドメイン コントローラーを含む、ドメイン内のすべてのドメイン コントローラーを含む 2 番目のグループを列挙します。
[in, optional] SiteName
クライアントが存在するサイトの名前を含む null で終わる文字列へのポインター。 このパラメーターは省略可能であり、 NULL にすることができます。
[in, optional] DomainGuid
DnsName で指定されたドメインの識別子を含む GUID 値へのポインター。 この識別子は、名前が変更されたドメインの大文字と小文字を処理するために使用されます。 この値を指定し、 DnsName で指定されたドメインの名前を変更すると、この関数は、指定した識別子を含むドメイン内のドメイン コントローラーの列挙を試みます。 このパラメーターは省略可能であり、 NULL にすることができます。
[in, optional] DnsForestName
DnsName ドメインを含むフォレストの名前を含む null で終わる文字列へのポインター。 この値は DomainGuid と組み合わせて使用され、ドメインの名前が変更された場合にドメイン コントローラーを列挙します。 このパラメーターは省略可能であり、 NULL にすることができます。
[in] DcFlags
列挙するドメイン コントローラーの種類を識別するフラグのセットが含まれます。 これは、0 または次の値の 1 つ以上の組み合わせにすることができます。
DS_FORCE_REDISCOVERY
キャッシュされたドメイン コントローラー データを強制的に無視します。 このフラグが指定されていない場合、 DsGetDcOpen は、キャッシュされたドメイン コントローラー データからドメイン コントローラー列挙を取得します。
DS_GC_SERVER_REQUIRED
列挙ドメイン コントローラーは、このドメインをルートとするドメインのフォレストのグローバル カタログ サーバーである必要があります。 このフラグを DS_PDC_REQUIRED フラグと組み合わせることはできません。
DS_KDC_REQUIRED
列挙されたドメイン コントローラーが現在 Kerberos キー配布センター サービスを実行している必要があります。 このフラグは、 DS_PDC_REQUIRED または DS_GC_SERVER_REQUIRED フラグと組み合わせることはできません。
DS_ONLY_LDAP_NEEDED
列挙されたサーバーが LDAP サーバーであることを指定します。 サーバーは必ずしもドメイン コントローラーではありません。 列挙された各サーバーには、他のサービスは存在しません。 サーバーには必ずしも書き込み可能な 構成 コンテナーも書き込み可能な スキーマ コンテナーもありません。 サーバーは、必ずしもセキュリティ原則を作成または変更するために使用されるとは限りません。 このフラグは 、グローバル カタログ サーバーもホストする LDAP サーバーを列挙するために、DS_GC_SERVER_REQUIRED フラグと共に使用できます。 その場合、列挙されたグローバル カタログ サーバーは必ずしもドメイン コントローラーではなく、他のサービスが各サーバーに存在することが暗黙的に示されます。 このフラグを指定すると、 DS_PDC_REQUIRED、 DS_TIMESERV_REQUIRED、 DS_GOOD_TIMESERV_PREFERRED、 DS_DIRECTORY_SERVICES_PREFERED、 DS_DIRECTORY_SERVICES_REQUIRED、 およびDS_KDC_REQUIRED フラグは無視されます。
DS_PDC_REQUIRED
列挙されたドメイン コントローラーがドメインのプライマリ ドメイン コントローラーである必要があります。 このフラグを DS_GC_SERVER_REQUIRED フラグと組み合わせることはできません。
[out] RetGetDcContext
ドメイン コントローラー列挙コンテキスト ハンドルを受け取る HANDLE 値へのポインター。 このハンドルは、 DsGetDcNext 関数と共に使用され、ドメイン コントローラーの列挙操作を識別します。 このハンドルは、ドメイン コントローラー列挙操作を閉じるには DsGetDcClose に渡されます。
戻り値
成功した場合 はERROR_SUCCESS を返し、それ以外の場合は Win32 または RPC エラーを返します。 考えられるエラー値は次のとおりです。
解説
注意
dsgetdc.h ヘッダーは、Unicode プリプロセッサ定数の定義に基づいて、この関数の ANSI または Unicode バージョンを自動的に選択するエイリアスとして DsGetDcOpen を定義します。 encoding-neutral エイリアスの使用を encoding-neutral ではないコードと混在すると、コンパイル エラーまたはランタイム エラーが発生する不一致が発生する可能性があります。 詳細については、「 関数プロトタイプの規則」を参照してください。
要件
サポートされている最小のクライアント | Windows Vista |
サポートされている最小のサーバー | Windows Server 2008 |
対象プラットフォーム | Windows |
ヘッダー | dsgetdc.h |
Library | Netapi32.lib |
[DLL] | Netapi32.dll |