Здравствуйте OlegO, Вы писали:
DT>>>>Привет всем.
DT>>>>Вот такая вот задачка.
DT>>>>Есть HKEY, надо бы получить че енто за ключ (типа HKEY_LOCAL_MACHINE\Software\Microsoft).
DT>>>>Помогите, а....
OO>Да изврат не спорю, еще вариант поискать может кто разбирал структуру HKEY'я из нее наверняка можно все вытащить.
HKEY — это handle, вся его структура — это 32 бита.
В NT требуемую информацию можно получить с помошью native функции ZwQueryKey:
NTSYSAPI
NTSTATUS
NTAPI
ZwQueryKey(
IN HANDLE KeyHandle,
IN KEY_INFORMATION_CLASS KeyInformationClass,
OUT PVOID KeyInformation,
IN ULONG KeyInformationLength,
OUT PULONG ResultLength
);
typedef enum _KEY_INFORMATION_CLASS {
KeyBasicInformation,
KeyNodeInformation,
KeyFullInformation,
KeyNameInformation
} KEY_INFORMATION_CLASS;
typedef struct _KEY_BASIC_INFORMATION {
LARGE_INTEGER LastWriteTime;
ULONG TitleIndex;
ULONG NameLength;
WCHAR Name[1]; // Variable length string
} KEY_BASIC_INFORMATION, *PKEY_BASIC_INFORMATION;
(c) Windows NT/2000 Native API Reference, Gary Nebbett.
В Win9x — скорее бы она сдохла, что ли.