IRegistryKey::QueryKey メソッド (portcls.h)
メソッドは QueryKey
、キー名、キー クラス、サブキーの数とそのサイズなど、レジストリ キーに関する情報を取得します。
構文
NTSTATUS QueryKey(
[in] KEY_INFORMATION_CLASS KeyInformationClass,
[out] PVOID KeyInformation,
[in] ULONG Length,
[out] PULONG ResultLength
);
パラメーター
[in] KeyInformationClass
バッファーに返される情報の種類を指定します。 このパラメーターを、次のいずれかのKEY_INFORMATION_CLASS列挙値に設定します。
- KeyBasicInformation
- KeyFullInformation
- KeyNodeInformation
[out] KeyInformation
メソッドが要求されたデータを書き込む呼び出し元によって割り当てられたバッファーへのポインター。 バッファーは、KeyInformationClass の値に応じて、KEY_BASIC_INFORMATION型、KEY_FULL_INFORMATION型、またはKEY_NODE_INFORMATION型の構造体を保持します。 構造体の後に Unicode 文字の文字列が続き、そのサイズは、キーに関して要求される情報の種類と、キーの名前またはクラス文字列の長さに依存します。
[in] Length
指定された KeyInformationClass に従って呼び出し元が設定する必要がある KeyInformation バッファーのサイズ (バイト単位)。 要求されたすべてのデータを受信するには、バッファーが少なくとも要求されたデータのサイズと同じ大きさである必要があります。
[out] ResultLength
結果のデータの長さの出力ポインター。 このパラメーターは、呼び出し元によって割り当てられた ULONG 変数を指し、メソッドが KeyInformation バッファーに実際に書き込まれたバイト数を指定するカウントを書き込みます。 ただし、指定したバッファー長が小さすぎて情報を格納できません。ただし、 メソッドは代わりに必要なバッファー サイズを出力し、STATUS_BUFFER_OVERFLOWまたはSTATUS_BUFFER_TOO_SMALLを返します。 詳細については、「解説」を参照してください。
戻り値
QueryKey
は、要求された情報を KeyInformation バッファーにコピーする呼び出しが成功した場合に、STATUS_SUCCESSを返します。 指定したバッファー サイズが小さすぎて要求されたすべての情報を受け取れない場合、メソッドは STATUS_BUFFER_OVERFLOWを返します。 指定したバッファー サイズが小さすぎて要求された情報を受け取れない場合、メソッドは STATUS_BUFFER_TOO_SMALLを返します。 それ以外の場合、メソッドは適切なエラー状態コードを返します。 次の表に、考えられるエラー コードの一部を示します。
リターン コード | 説明 |
---|---|
|
メソッドに渡されるパラメーターの 1 つが無効であることを示します。 |
注釈
KeyInformation バッファーが小さすぎて要求された情報を保持できない場合、メソッドは必要なサイズを *ResultLength に書き込み、STATUS_BUFFER_OVERFLOWまたはSTATUS_BUFFER_TOO_SMALLのいずれかの状態コードを返します。 メソッドは、要求された情報の一部のみをバッファーに書き込むのに成功した場合、STATUS_BUFFER_OVERFLOWを返します。 バッファーに情報を書き込めなかった場合、メソッドはSTATUS_BUFFER_TOO_SMALLを返します。 *ResultLength に書き込まれた値は、要求されたすべての情報を保持するために必要な最小バッファー サイズを示します。
要件
要件 | 値 |
---|---|
対象プラットフォーム | ユニバーサル |
Header | portcls.h (Portcls.h を含む) |
IRQL | PASSIVE_LEVEL |