次の方法で共有


RegQueryMultipleValuesW 関数 (winreg.h)

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

構文

LSTATUS RegQueryMultipleValuesW(
  [in]                HKEY     hKey,
  [out]               PVALENTW val_list,
  [in]                DWORD    num_vals,
  [out, optional]     LPWSTR   lpValueBuf,
  [in, out, optional] LPDWORD  ldwTotsize
);

パラメーター

[in] hKey

開いているレジストリ キーへのハンドル。 キーは、KEY_QUERY_VALUEアクセス権で開かれている必要があります。 詳細については、「レジストリ キーのセキュリティとアクセス権のを する」を参照してください。

このハンドルは、RegCreateKeyEx、RegCreateKeyTransacted、RegOpenKeyEx、または 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

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

lpValueBuf NULL場合、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 メガバイトを超えています。

備考

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

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

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

手記

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

必要条件

要件 価値
サポートされる最小クライアント Windows 2000 Professional [デスクトップ アプリのみ]
サポートされる最小サーバー Windows 2000 Server [デスクトップ アプリのみ]
ターゲット プラットフォーム の ウィンドウズ
ヘッダー winreg.h (Windows.h を含む)
ライブラリ Advapi32.lib
DLL Advapi32.dll

関連項目

レジストリ関数 を する

レジストリの概要

VALENT