次の方法で共有


IRegistryKey::QueryValueKey メソッド (portcls.h)

QueryValueKey メソッドは、レジストリ キーの値エントリに関する情報 (名前、型、データ サイズ、値など) を取得します。

構文

NTSTATUS QueryValueKey(
  [in]  PUNICODE_STRING             ValueName,
  [in]  KEY_VALUE_INFORMATION_CLASS KeyValueInformationClass,
  [out] PVOID                       KeyValueInformation,
  [in]  ULONG                       Length,
  [out] PULONG                      ResultLength
);

パラメーター

[in] ValueName

値エントリの製造元が指定した名前へのポインター。 名前の文字列は、UNICODE_STRING型の構造体によって指定されます。

[in] KeyValueInformationClass

バッファーで返される情報の種類を指定します。 このパラメーターを、次のいずれかのKEY_VALUE_INFORMATION_CLASS列挙値に設定します。

  • KeyValueBasicInformation
  • KeyValueFullInformation
  • KeyValuePartialInformation

[out] KeyValueInformation

メソッドが要求されたデータを書き込む呼び出し元によって割り当てられたバッファーへのポインター。 バッファーには、KeyValueInformationClass の値に応じて、KEY_VALUE_BASIC_INFORMATIONKEY_VALUE_FULL_INFORMATION、または KEY_VALUE_PARTIAL_INFORMATION型の構造体が含まれています。 構造体の後に、キー値のデータ型に依存するサイズの追加データが続きます。

[in] Length

KeyValueInformation バッファーのバイト単位のサイズ。呼び出し元は、指定された KeyValueInformationClassに従って設定する必要があります。 要求されたすべてのデータを受信するには、バッファーが少なくとも要求されたデータのサイズと同じ大きさである必要があります。

[out] ResultLength

結果のデータの長さの出力ポインター。 このパラメーターは、メソッドが実際に KeyValueInformation バッファーに書き込まれたバイト数を指定するカウントを書き込む呼び出し元によって割り当てられた ULONG 変数を指します。 ただし、指定されたバッファー長が小さすぎて情報を格納できません。ただし、メソッドは代わりに必要なバッファー サイズを出力し、STATUS_BUFFER_OVERFLOWまたはSTATUS_BUFFER_TOO_SMALLを返します。 詳細については、次の「解説」セクションを参照してください。

戻り値

QueryValueKey は、要求された情報を KeyValueInformation バッファーにコピーする呼び出しが成功した場合にSTATUS_SUCCESSを返します。 指定したバッファー サイズが小さすぎて、要求されたすべての情報を受け取れなければ、メソッドはSTATUS_BUFFER_OVERFLOWを返します。 指定したバッファー サイズが小さすぎて要求された情報を受け取れなければ、メソッドはSTATUS_BUFFER_TOO_SMALLを返します。 それ以外の場合、メソッドは適切なエラー状態コードを返します。 次の表に、考えられるエラー コードの一部を示します。

リターン コード 形容
STATUS_INVALID_PARAMETER
メソッドに渡されたパラメーターの 1 つが無効であることを示します。
STATUS_OBJECT_NAME_NOT_FOUND
指定した名前の値エントリが見つからなかったことを示します。

備考

KeyValueInformation バッファーが小さすぎて要求された情報を保持できない場合、メソッドは必要なサイズを *ResultLength に書き込み、STATUS_BUFFER_OVERFLOWまたはSTATUS_BUFFER_TOO_SMALLのいずれかの状態コードを返します。 このメソッドは、要求された情報の一部のみをバッファーに書き込むのに成功した場合、STATUS_BUFFER_OVERFLOWを返します。 このメソッドは、バッファーに情報を書き込むことができなかった場合にSTATUS_BUFFER_TOO_SMALLを返します。 *ResultLength に書き込まれる値は、要求されたすべての情報を保持するために必要な最小バッファー サイズを示します。

必要条件

要件 価値
ターゲット プラットフォーム 万国
ヘッダー portcls.h (Portcls.h を含む)
IRQL PASSIVE_LEVEL

関連項目

IRegistryKey

KEY_VALUE_BASIC_INFORMATION

KEY_VALUE_FULL_INFORMATION

KEY_VALUE_PARTIAL_INFORMATION

UNICODE_STRING

ZwQueryValueKey