IRegistryKey::EnumerateValueKey メソッド (portcls.h)
メソッドは EnumerateValueKey
、値キーを含むレジストリ エントリに関する情報を返します。
構文
NTSTATUS EnumerateValueKey(
[in] ULONG Index,
[in] KEY_VALUE_INFORMATION_CLASS KeyValueInformationClass,
[out] PVOID KeyValueInformation,
[in] ULONG Length,
[out] PULONG ResultLength
);
パラメーター
[in] Index
サブキー インデックスを指定します。 このパラメーターは、値が要求されたサブキーを識別します。 キーに n 個のサブキーが含まれている場合、有効なインデックスの範囲は 0 から n から 1 です。 インデックスがこの範囲を超えた場合、メソッドは STATUS_NO_MORE_ENTRIESを返します。
[in] KeyValueInformationClass
バッファーに返される情報の種類を指定します。 このパラメーターを、次のいずれかのKEY_VALUE_INFORMATION_CLASS列挙値に設定します。
- KeyValueBasicInformation
-
KeyValueFullInformation
-
KeyValuePartialInformation
[out] KeyValueInformation
キー値の出力ポインター。 このパラメーターは、メソッドが要求されたデータを書き込む呼び出し元によって割り当てられたバッファーを指します。 バッファーには、KeyValueInformationClass の値に応じて、KEY_VALUE_BASIC_INFORMATION型、KEY_VALUE_FULL_INFORMATION型、またはKEY_VALUE_PARTIAL_INFORMATION型の構造体が含まれています。 構造体の後に、キー値のデータ型に依存するサイズの追加データが続きます。
[in] Length
指定された KeyValueInformationClass に従って呼び出し元が設定する必要がある KeyValueInformation バッファーのサイズ (バイト単位)。 呼び出しを成功させるには、バッファーは、メソッドがバッファーに書き込むデータと少なくとも同じ大きさにする必要があります。
[out] ResultLength
結果のデータの長さの出力ポインター。 このパラメーターは、呼び出し元によって割り当てられた ULONG 変数を指します。この変数は、 KeyValueInformation バッファーに実際に書き込まれたバイト数を指定するカウントをメソッドが書き込みます。 ただし、指定したバッファー長が小さすぎて情報を格納できません。ただし、 メソッドは代わりに必要なバッファー サイズを出力し、STATUS_BUFFER_OVERFLOWを返します。
戻り値
EnumerateValueKey
は、要求された情報を KeyValueInformation バッファーにコピーして呼び出しが成功した場合に、STATUS_SUCCESSを返します。 指定したバッファー サイズが小さすぎて使用可能なすべての情報を受信できない場合、メソッドは STATUS_BUFFER_OVERFLOWを返します。 それ以外の場合、メソッドは適切なエラー コードを返します。 次の表は、可能な戻り状態コードの一部を示しています。
リターン コード | 説明 |
---|---|
|
指定したバッファーが小さすぎて情報を受信できません。 |
|
メソッドに渡されるパラメーターの 1 つが無効であることを示します。 |
|
使用できる値キーがこれ以上ないことを示します ( Index パラメーターが値キーの数以上です)。 |
要件
要件 | 値 |
---|---|
対象プラットフォーム | ユニバーサル |
Header | portcls.h (Portcls.h を含む) |
IRQL | PASSIVE_LEVEL |