ORQueryInfoKey function

Retrieves information about the specified registry key in an offline registry hive.

Syntax

DWORD ORQueryInfoKey(
  _In_        ORHKEY    Handle,
  _Out_opt_   PWSTR     lpClass,
  _Inout_opt_ PDWORD    lpcClass,
  _Out_opt_   PDWORD    lpcSubKeys,
  _Out_opt_   PDWORD    lpcMaxSubKeyLen,
  _Out_opt_   PDWORD    lpcMaxClassLen,
  _Out_opt_   PDWORD    lpcValues,
  _Out_opt_   PDWORD    lpcMaxValueNameLen,
  _Out_opt_   PDWORD    lpcMaxValueLen,
  _Out_opt_   PDWORD    lpcbSecurityDescriptor,
  _Out_opt_   PFILETIME lpftLastWriteTime
);

Parameters

Handle [in]

A handle to an open registry key in an offline registry hive.

lpClass [out, optional]

A pointer to a buffer that receives the key class. This parameter can be NULL.

lpcClass [in, out, optional]

A pointer to a variable that specifies the size of the buffer pointed to by the lpClass parameter, in characters.

The size should include the terminating null character. When the function returns, this variable contains the size of the class string that is stored in the buffer. The count returned does not include the terminating null character. If the buffer is not big enough, the function returns ERROR_MORE_DATA, and the variable contains the size of the string, in characters, without counting the terminating null character.

If lpClass is NULL, lpcClass can be NULL.

If the lpClass parameter is a valid address, but the lpcClass parameter is not (for example, if the lpcClass parameter is NULL) then the function returns ERROR_INVALID_PARAMETER.

lpcSubKeys [out, optional]

A pointer to a variable that receives the number of subkeys that are contained by the specified key. This parameter can be NULL.

lpcMaxSubKeyLen [out, optional]

A pointer to a variable that receives the size of the key's subkey with the longest name, in Unicode characters, not including the terminating null character. This parameter can be NULL.

lpcMaxClassLen [out, optional]

A pointer to a variable that receives the size of the longest string that specifies a subkey class, in Unicode characters. The count returned does not include the terminating null character. This parameter can be NULL.

lpcValues [out, optional]

A pointer to a variable that receives the number of values that are associated with the key. This parameter can be NULL.

lpcMaxValueNameLen [out, optional]

A pointer to a variable that receives the size of the key's longest value name, in Unicode characters. The size does not include the terminating null character. This parameter can be NULL.

lpcMaxValueLen [out, optional]

A pointer to a variable that receives the size of the longest data component among the key's values, in bytes. This parameter can be NULL.

lpcbSecurityDescriptor [out, optional]

A pointer to a variable that receives the size of the key's security descriptor, in bytes. This parameter can be NULL.

lpftLastWriteTime [out, optional]

A pointer to a FILETIME structure that receives the last write time. This parameter can be NULL.

The function sets the members of the FILETIME structure to indicate the last time that the key or any of its value entries is modified.

Return value

If the function succeeds, the return value is ERROR_SUCCESS.

If the function fails, the return value is a nonzero error code defined in Winerror.h. You can use the FormatMessage function with the FORMAT_MESSAGE_FROM_SYSTEM flag to get a generic description of the error.

If the lpClass buffer is too small to receive the name of the class, the function returns ERROR_MORE_DATA.

Requirements

Requirement Value
Redistributable
Windows Offline Registry library version 1.0 or later
Header
Offreg.h
DLL
Offreg.dll

See also

FILETIME

ORCreateKey

OROpenKey

ORDeleteKey