RegQueryMultipleValues

【勇芳软件工作室】汉化HomePreviousNext

RegQueryMultipleValues函数检索与打开的注册表项相关联的值名称列表的类型和数据。

LONG RegQueryMultipleValues(

HKEY 【的hKeyru-Latn】,//查询键的句柄
PVALENT 【val_list】,//数值输入结构数组的地址
DWORD 【num_vals】,//数值输入结构数组的大小
LPTSTR 【lpValueBuf】,//用于值信息的缓冲区地址
LPDWORD 【ldwTotsize】//值缓冲区大小的地址
); 

参数

【的hKeyru-Latn】

标识当前打开的键或任何预定义的保留句柄值:

HKEY_CLASSES_ROOT
HEY_CURRENT_USER
HKEY_LOCAL_MACHINE
HKEY_USERS

【val_list】

描述一个或多个值条目的VALENT结构数组的地址。在输入上,每个结构的ve_valueptr成员必须包含一个指向要检索的值的名称的指针。如果指定的键中不存在任何指定的值,则该函数将失败。

如果函数成功,则数组的每个元素都包含指定值的信息。

【num_vals】

指定【val_list】数组中的元素数。

【lpValueBuf】

指向缓冲区的指针如果功能成功,缓冲区会接收每个值的数据。

如果【lpValueBuf】为NULL,则该函数返回成功,【ldwTotsize】返回缓冲区所需的大小(以字节为单位)。

【ldwTotsize】

指向指定【lpValueBuf】参数指向的缓冲区大小(以字节为单位)的值。如果函数成功,【ldwTotsize】返回复制到缓冲区的字节数。如果该函数因缓冲区太小而失败,【ldwTotsize】将以字节为单位接收所需的大小。

返回值

如果函数成功,则返回值为ERROR_SUCCESS。

如果函数失败,则返回值为以下错误代码之一:

含义
ERROR_CANTREADRegQueryMultipleValues无法实例化或访问动态密钥的提供者。
ERROR_MORE_DATA【lpValueBuf】指出的缓冲区太小了。在这种情况下,【ldwTotsize】返回所需的缓冲区大小。
ERROR_TRANSFER_TOO_LONG所请求数据的总长度(【val_list】数组的大小+ 【ldwTotSize】)超过了一兆字节的系统限制。

备注

RegQueryMultipleValues功能允许应用程序查询静态或动态键的一个或多个值。如果目标键是静态键,则系统以原子方式提供所有值。为防止过多的序列化,该函数返回的聚合数据不能超过1兆字节。

如果目标键是动态键,则其提供者必须以原子方式提供所有值。这意味着提供程序应该同步填充结果缓冲区,提供缓冲区中所有值的一致视图,同时避免过多的序列化。在对该函数的原子调用期间,提供商可以提供至多1兆字节的总输出数据。

远程支持RegQueryMultipleValues也就是说,传递给函数的【的hKeyru-Latn】参数可以引用远程计算机。

也可以看看

VALENT