RegQueryMultipleValuesW

開かれているレジストリキーに関連付けられた一連の値名について、型とデータを取得する。(Unicode)

RegQueryMultipleValuesW hKey, val_list, num_vals, lpValueBuf, ldwTotsize

hKey : [intptr] 開かれているレジストリキーへのハンドル。キーは KEY_QUERY_VALUE アクセス権で開かれている必要がある。詳細はレジストリキーのセキュリティとアクセス権を参照のこと。
val_list : [var] 1 つ以上の値エントリを記述する [VALENT](./ns-winreg-valentw.md) 構造体の配列へのポインタ。入力時、各構造体の ve_valuename メンバは取得する値の名前へのポインタを含まなければならない。指定された値のいずれかが指定されたキーに存在しない場合、関数は失敗する。
num_vals : [int] val_list 配列内の要素数。
lpValueBuf : [wstr] バッファへのポインタ。関数が成功した場合、バッファは各値のデータを受け取る。
ldwTotsize : [var] lpValueBuf パラメータが指すバッファのサイズ(バイト単位)を指定する変数へのポインタ。関数が成功した場合、ldwTotsize はバッファにコピーされたバイト数を受け取る。バッファが小さすぎて関数が失敗した場合、ldwTotsize は必要なサイズ(バイト単位)を受け取る。

(プラグイン / モジュール : advapi32.dll)

解説

開かれているレジストリキーに関連付けられた一連の値名について、型とデータを取得する。(Unicode)

[戻り値]
関数が成功した場合、戻り値は ERROR_SUCCESS となる。関数が失敗した場合、戻り値は次のエラーコードのいずれかとなる。
(以下省略)

[備考]
RegQueryMultipleValues 関数により、アプリケーションは静的または動的キーの 1
つ以上の値を問い合わせることができる。対象キーが静的キーである場合、システムはすべての値をアトミックに提供する。過剰な直列化を防ぐため、関数が返す集約データは
1
メガバイトを超えることはできない。対象キーが動的キーの場合、そのプロバイダはすべての値をアトミックに提供する必要がある。つまり、プロバイダは過剰な直列化を避けつつ、バッファ内のすべての値に対する一貫したビューを提供しながら、結果バッファを同期的に埋める必要がある。この関数へのアトミックな呼び出しの間に、プロバイダは最大
1 メガバイトの合計出力データを提供できる。RegQueryMultipleValues
はリモートでサポートされている。つまり、関数に渡される hKey パラメータはリモートコンピュータを参照できる。
> [!NOTE] > winreg.h ヘッダは RegQueryMultipleValues
をエイリアスとして定義しており、UNICODE プリプロセッサ定数の定義に基づいて ANSI または Unicode
版を自動的に選択する。エンコーディングに中立なエイリアスをエンコーディング中立でないコードと混在させると、コンパイル時または実行時エラーとなる可能性がある。詳細は
[Conventions for Function
Prototypes](/windows/win32/intl/conventions-for-function-prototypes)
を参照のこと。

情報

プラグイン / モジュールadvapi32.dll
バージョン1.0
作成日2026/04/16
著作者IronHSP / CsWin32 bridge
URLhttps://github.com/inovia/IronHSP
備考Win32 API の advapi32.dll 関数群。CsWin32 + win32metadata から自動生成。
hsp3net 専用 (intptr / NSTRUCT / wstr を使用)。
タイプ拡張命令
グループWin32API
対応環境
  • Windows 版 HSP
hs ファイルhsphelp\win32_advapi32_gen2.hs