INtime SDK Help
RtRegQueryInfoKey
INtime SDK v7 > About INtime > INtime Kernel > Registry access > RtRegQueryInfoKey

Retrieves information about a specified registry key.

LONG RtRegQueryInfoKey(

HKEY hKey, // handle to key to query
LPTSTR lpClass, // address of buffer for class string
LPDWORD lpcbClass, // address of size of class string buffer
LPDWORD lpReserved, // reserved
LPDWORD lpcSubKeys, // address of buffer for number of subkeys
LPDWORD lpcbMaxSubKeyLen, // address of buffer for longest subkey name length
LPDWORD lpcbMaxClassLen, // address of buffer for longest class string length
LPDWORD lpcValues, // address of buffer for number of value entries
LPDWORD lpcbMaxValueNameLen, // address of buffer for longest value name length
LPDWORD lpcbMaxValueLen, // address of buffer for longest value data length
LPDWORD lpcbSecurityDescriptor, // address of buffer for security descriptor length
PFILETIME lpftLastWriteTime // address of buffer for last write time
);

Parameters

hKey
Handle to a currently open key or any of the following predefined reserved handle values:

HKEY_CLASSES_ROOT
HKEY_CURRENT_CONFIG
HKEY_CURRENT_USER
HKEY_LOCAL_MACHINE
HKEY_USERS
HKEY_PERFORMANCE_DATA
lpClass
Pointer to a buffer that receives the key's class name. This parameter can be NULL.
lpcbClass
Pointer to a variable that specifies the size, in characters, of the buffer pointed to by the lpClass parameter. This size should include the terminating null character. When the call returns, this variable contains the length of the class string stored in the buffer. The count returned does not include the terminating null character. If the buffer is not big enough, the call returns ERROR_MORE_DATA, and the variable contains the size of the string, in characters, without counting the null character.

If lpClass is NULL, lpcbClass can be NULL.

If the lpClass parameter is a valid address, but the lpcbClass parameter is not (for example, it is NULL), the call returns ERROR_INVALID_PARAMETER.
lpReserved
Reserved; must be NULL.
lpcSubKeys
Pointer to a variable that receives the number of subkeys contained by the specified key. This parameter can be NULL.
lpcbMaxSubKeyLen
Pointer to a variable that receives the length, in characters, of the key's subkey with the longest name. The count returned does not include the terminating null character. This parameter can be NULL.
lpcbMaxClassLen
Pointer to a variable that receives the length, in characters, of the longest string specifying a subkey class. The count returned does not include the terminating null character. This parameter can be NULL.
lpcValues
Pointer to a variable that receives the number of values associated with the key. This parameter can be NULL.
lpcbMaxValueNameLen
Pointer to a variable that receives the length, in characters, of the key's longest value name. The count returned does not include the terminating null character. This parameter can be NULL.
lpcbMaxValueLen
Pointer to a variable that receives the length, in bytes, of the longest data component among the key's values. This parameter can be NULL.
lpcbSecurityDescriptor
Pointer to a variable that receives the length, in bytes, of the key's security descriptor. This parameter can be NULL.
lpftLastWriteTime
Pointer to a FILETIME structure. This parameter can be NULL.

The call sets the FILETIME structure's members to indicate the last time that the key or any of its value entries was modified.

Remarks

The key identified by the hKey parameter must have been opened with KEY_QUERY_VALUE access (KEY_READ access includes KEY_QUERY_VALUE access).

Return Values

ERROR_SUCCESS
Success.
A nonzero status code defined in RTWIN32.H.
Failure.

Requirements

Versions Defined in Include Link to
INtime 3.0 intime/rt/include/rtbase.h rt.h rt.lib

See Also

Registry system calls, RtRegDeleteKey, RtRegEnumKeyEx, RtRegEnumValue, RtRegQueryValueEx