#ifndef _NTREGAPI_H
/**
* Queries multiple values of a registry key.
*
* @param[in] KeyHandle A handle to the key to be queried.
* @param[in, out] ValueEntries A pointer to an array of KEY_VALUE_ENTRY structures that specify the values to be queried.
* @param[in] EntryCount The number of entries in the array.
* @param[out] ValueBuffer A pointer to a buffer that receives the value data.
* @param[in, out] BufferLength A pointer to a variable that specifies the size of the buffer and receives the size of the data returned.
* @param[out, optional] RequiredBufferLength A pointer to a variable that receives the size of the buffer required to hold the data.
* @return NTSTATUS Successful or errant status.
*/
NTSYSCALLAPI
NTSTATUS
NTAPI
NtQueryMultipleValueKey(
_In_ HANDLE KeyHandle,
_Inout_updates_(EntryCount) PKEY_VALUE_ENTRY ValueEntries,
_In_ ULONG EntryCount,
_Out_writes_bytes_(*BufferLength) PVOID ValueBuffer,
_Inout_ PULONG BufferLength,
_Out_opt_ PULONG RequiredBufferLength
);
View code on GitHub
#ifndef _NTZWAPI_H
NTSYSCALLAPI
NTSTATUS
NTAPI
ZwQueryMultipleValueKey(
_In_ HANDLE KeyHandle,
_Inout_updates_(EntryCount) PKEY_VALUE_ENTRY ValueEntries,
_In_ ULONG EntryCount,
_Out_writes_bytes_(*BufferLength) PVOID ValueBuffer,
_Inout_ PULONG BufferLength,
_Out_opt_ PULONG RequiredBufferLength
);
View code on GitHub
This function is documented in Windows SDK.
Function NtQueryMultipleValueKey
returns data of one or more values under specified Key Object.
HANDLE
to Key Object opened with KEY_READ
access.
Array of KEY_MULTIPLE_VALUE_INFORMATION
structures contains names of values to query.
Number of members in ValueList
array.
User's allocated buffer receiving queried value's data.
Pointer to value specifying length of DataBuffer
, in bytes.
Optionally pointer to value receiving required DataBuffer
length, in bytes.
KEY_MULTIPLE_VALUE_INFORMATION
NtCreateKey
NtEnumerateValueKey
NtOpenKey
NtQueryValueKey