DsCrackNamesA 関数 (ntdsapi.h)
DsCrackNames 関数は、ディレクトリ サービス オブジェクト名の配列をある形式から別の形式に変換します。 名前変換を使用すると、クライアント アプリケーションは、さまざまなディレクトリ サービス オブジェクトを識別するために使用される複数の名前の間でマップできます。 たとえば、ユーザー オブジェクトは、SAM アカウント名 (ドメイン\ユーザー名)、ユーザー プリンシパル名 (UserName@Domain.com)、または識別名で識別できます。
構文
NTDSAPI DWORD DsCrackNamesA(
[in] HANDLE hDS,
[in] DS_NAME_FLAGS flags,
[in] DS_NAME_FORMAT formatOffered,
[in] DS_NAME_FORMAT formatDesired,
[in] DWORD cNames,
[in] const LPCSTR *rpNames,
[out] PDS_NAME_RESULTA *ppResult
);
パラメーター
[in] hDS
DSBind 関数または DSBindWithCred 関数から取得したディレクトリ サービス ハンドルが含まれます。 フラグにDS_NAME_FLAG_SYNTACTICAL_ONLYが含まれている場合、hDS は NULL にすることができます。
[in] flags
名前構文の解読方法を決定するために使用される 1 つ以上の DS_NAME_FLAGS 値が含まれます。
[in] formatOffered
入力名の形式を識別する DS_NAME_FORMAT 値のいずれかを格納します。
このパラメーターには 、DS_LIST_NCS 値を渡すこともできます。 これにより、 DsCrackNames は 現在のフォレスト内のすべての名前付けコンテキストの識別名を返します。 formatDesired パラメーターは無視されます。 cName は 少なくとも 1 つであり、 rpNames 内のすべての文字列の長さが 0 文字を超える必要があります。 rpNames 文字列の内容は無視されます。
#ifndef DS_LIST_NCS
#define DS_LIST_NCS 0xfffffff6
#endif
[in] formatDesired
出力名の形式を識別する DS_NAME_FORMAT 値のいずれかを格納します。 DS_SID_OR_SID_HISTORY_NAME値はサポートされていません。
[in] cNames
rpNames 配列内の要素の数を格納します。
[in] rpNames
変換する名前を含む null で終わる文字列へのポインターの配列へのポインター。
[out] ppResult
変換された名前を含む DS_NAME_RESULT 構造体を受け取る PDS_NAME_RESULT 値へのポインター。 呼び出し元は、 DsFreeNameResult を呼び出すことによって、不要になったときにこのメモリを解放する必要があります。
戻り値
Win32 エラー値、RPC エラー値、または次のいずれかを返します。
注釈
名前変換要求の成功は、クライアントがバインドされている場所によって異なります。 クライアントは、何らかのバリアントの DsBind を使用して、ディレクトリ サービスの特定のインスタンスにバインドします。 グローバル カタログにバインドされている場合、名前マッピングのスコープはフォレスト全体です。 グローバル カタログにバインドされていない場合、名前マッピングのスコープは、そのドメイン コントローラーのグローバル カタログでカバーされていないドメインです。 グローバル カタログにバインドされておらず、名前が見つからないが、入力名がそのドメインを明確に識別し、このドメインがフォレスト内にある場合、戻りデータは目的のドメインの DNS ドメイン名を識別します。 クライアントは、このデータを使用して正しいドメイン コントローラーまたはグローバル カタログにバインドし、新しいバインド ハンドルを使用して DsCrackNames を再度呼び出す必要があります。
DsCrackNames からの戻り値は、無効なパラメーターやメモリ不足などのエラーを示します。 ただし、個々の名前の変換に関する問題は、入力名ごとに返されるDS_NAME_RESULT_ITEM構造体の状態メンバーで報告されます。
注意
ntdsapi.h ヘッダーは、DSCrackNames をエイリアスとして定義します。このエイリアスは、UNICODE プリプロセッサ定数の定義に基づいて、この関数の ANSI または Unicode バージョンを自動的に選択します。 encoding-neutral エイリアスの使用を encoding-neutral ではないコードと混在すると、コンパイル エラーまたはランタイム エラーが発生する不一致が発生する可能性があります。 詳細については、「 関数プロトタイプの規則」を参照してください。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows Vista |
サポートされている最小のサーバー | Windows Server 2008 |
対象プラットフォーム | Windows |
ヘッダー | ntdsapi.h |
Library | Ntdsapi.lib |
[DLL] | Ntdsapi.dll |