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
KeyInformation バッファーのサイズ (バイト単位)。 呼び出し元は、指定された KeyInformationClassに従って設定する必要があります。 要求されたすべてのデータを受信するには、バッファーが少なくとも要求されたデータのサイズと同じ大きさである必要があります。
[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 に書き込まれる値は、要求されたすべての情報を保持するために必要な最小バッファー サイズを示します。
必要条件
要件 | 価値 |
---|---|
ターゲット プラットフォーム の | 万国 |
ヘッダー | portcls.h (Portcls.h を含む) |
IRQL | PASSIVE_LEVEL |