Click to Rate and Give Feedback
MSDN
MSDN Library
System Services
Registry
Registry Reference
Registry Functions
 RegQueryInfoKey Function
RegQueryInfoKey Function

Retrieves information about the specified registry key.

Syntax

LONG WINAPI RegQueryInfoKey(
  __in         HKEY hKey,
  __out        LPTSTR lpClass,
  __inout_opt  LPDWORD lpcClass,
  __reserved   LPDWORD lpReserved,
  __out_opt    LPDWORD lpcSubKeys,
  __out_opt    LPDWORD lpcMaxSubKeyLen,
  __out_opt    LPDWORD lpcMaxClassLen,
  __out_opt    LPDWORD lpcValues,
  __out_opt    LPDWORD lpcMaxValueNameLen,
  __out_opt    LPDWORD lpcMaxValueLen,
  __out_opt    LPDWORD lpcbSecurityDescriptor,
  __out_opt    PFILETIME lpftLastWriteTime
);

Parameters

hKey [in]

A handle to an open registry key. The key must have been opened with the KEY_QUERY_VALUE access right. For more information, see Registry Key Security and Access Rights.

This handle is returned by the RegCreateKeyEx, RegCreateKeyTransacted, RegOpenKeyEx, or RegOpenKeyTransacted function. It can also be one of the following predefined keys:


     HKEY_CLASSES_ROOT
     HKEY_CURRENT_CONFIG
     HKEY_CURRENT_USER
     HKEY_LOCAL_MACHINE
     HKEY_PERFORMANCE_DATA
     HKEY_USERS

lpClass [out]

A pointer to a buffer that receives the user-defined class of the key. 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, it is NULL, then the function returns ERROR_INVALID_PARAMETER.

lpReserved

This parameter is reserved and must be NULL.

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 system error code.

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

Examples

For an example, see Enumerating Registry Subkeys.

Requirements

Client Requires Windows Vista, Windows XP, or Windows 2000 Professional.
Server Requires Windows Server 2008, Windows Server 2003, or Windows 2000 Server.
Header

Declared in Winreg.h; include Windows.h.

Library

Use Advapi32.lib.

DLL

Requires Advapi32.dll.

Unicode/ANSI

Implemented as RegQueryInfoKeyW (Unicode) and RegQueryInfoKeyA (ANSI).

See Also

FILETIME
RegDeleteKey
RegEnumValue
RegEnumKeyEx
Registry Functions
Registry Overview
RegQueryValueEx


Send comments about this topic to Microsoft

Build date: 8/14/2008

Tags What's this?: Add a tag
Community Content   What is Community Content?
Add new content RSS  Annotations
Processing
© 2008 Microsoft Corporation. All rights reserved. Terms of Use  |  Trademarks  |  Privacy Statement
Page view tracker