RegQueryMultipleValuesA 関数 (winreg.h)

開いているレジストリ キーに関連付けられている値名の一覧の型とデータを取得します。

構文

LSTATUS RegQueryMultipleValuesA(
  [in]                HKEY     hKey,
  [out]               PVALENTA val_list,
  [in]                DWORD    num_vals,
  [out, optional]     LPSTR    lpValueBuf,
  [in, out, optional] LPDWORD  ldwTotsize
);

パラメーター

[in] hKey

開いているレジストリ キーへのハンドル。 キーは、KEY_QUERY_VALUEアクセス権を使用して開かれている必要があります。 詳細については、「

レジストリ キーのセキュリティとアクセス権

このハンドルは、 RegCreateKeyExRegCreateKeyTransactedRegOpenKeyEx、または RegOpenKeyTransacted 関数によって返されます。 また、次のいずれかの 定義済みキーを指定することもできます。

HKEY_CLASSES_ROOT
HKEY_CURRENT_CONFIG
HKEY_CURRENT_USER
HKEY_LOCAL_MACHINE
HKEY_PERFORMANCE_DATA
HKEY_USERS

[out] val_list

の配列へのポインター

1 つ以上の値エントリを記述する VALENT 構造体。 入力時に、各構造体の ve_valuename メンバーには、取得する値の名前へのポインターが含まれている必要があります。 指定した値のいずれかが指定されたキーに存在しない場合、関数は失敗します。

関数が成功した場合、配列の各要素には、指定された値の情報が含まれます。

[in] num_vals

val_list配列内の要素の数。

[out, optional] lpValueBuf

バッファーへのポインター。 関数が成功した場合、バッファーは各値のデータを受け取ります。

lpValueBufNULL の場合、ldwTotsize パラメーターが指す値は 0 である必要があります。その場合、関数は ERROR_MORE_DATAを返し、ldwTotsize はバッファーの必要なサイズをバイト単位で受け取ります。

[in, out, optional] ldwTotsize

lpValueBuf パラメーターによって指されるバッファーのサイズをバイト単位で指定する変数へのポインター。 関数が成功すると、 ldwTotsize はバッファーにコピーされたバイト数を受け取ります。 バッファーが小さすぎるために関数が失敗した場合、 ldwTotsize は必要なサイズ (バイト単位) を受け取ります。

戻り値

関数が成功した場合、戻り値は ERROR_SUCCESS です。

関数が失敗した場合、戻り値は次のいずれかのエラー コードになります。

リターン コード 説明
ERROR_CANTREAD

RegQueryMultipleValues は、動的キーのプロバイダーをインスタンス化またはアクセスできません。

ERROR_MORE_DATA
lpValueBuf が指すバッファーが小さすぎます。 この場合、 ldwTotsize は必要なバッファー サイズを受け取ります。
ERROR_TRANSFER_TOO_LONG
要求されたデータの合計サイズ ( val_list 配列のサイズ + ldwTotSize) は、システム制限の 1 MB を超えています。

解説

RegQueryMultipleValues 関数を使用すると、アプリケーションは静的キーまたは動的キーの 1 つ以上の値に対してクエリを実行できます。 ターゲット キーが静的キーの場合、システムはアトミックな方法ですべての値を提供します。 過剰なシリアル化を防ぐために、関数によって返される集計データは 1 MB を超えることはできません。

ターゲット キーが動的キーの場合、プロバイダーはすべての値をアトミックな方法で提供する必要があります。 つまり、プロバイダーは結果バッファーを同期的に入力する必要があり、過剰なシリアル化を回避しながら、バッファー内のすべての値の一貫性のあるビューを提供します。 プロバイダーは、この関数のアトミック呼び出し中に最大 1 MB の合計出力データを提供できます。

RegQueryMultipleValues はリモートでサポートされています。つまり、関数に渡される hKey パラメーターは、リモート コンピューターを参照できます。

注意

winreg.h ヘッダーは、Unicode プリプロセッサ定数の定義に基づいて、この関数の ANSI または Unicode バージョンを自動的に選択するエイリアスとして RegQueryMultipleValues を定義します。 エンコードに依存しないエイリアスをエンコードニュートラルでないコードと組み合わせて使用すると、コンパイルまたはランタイム エラーが発生する不一致が発生する可能性があります。 詳細については、「 関数プロトタイプの規則」を参照してください。

要件

   
サポートされている最小のクライアント Windows 2000 Professional [デスクトップ アプリのみ]
サポートされている最小のサーバー Windows 2000 Server [デスクトップ アプリのみ]
対象プラットフォーム Windows
ヘッダー winreg.h (Windows.h を含む)
Library Advapi32.lib
[DLL] Advapi32.dll

関連項目

レジストリ関数

レジストリの概要

原子価