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