Мне нужно отслеживать изменения в реестре. Мне нужна подробная информация, поэтому RegNotifyChangeKeyValue
недостаточно . Итак, единственный способ, который я нашел в Google, — использовать этот ужасный Отслеживание событий.
После настройки всех вещей и фактического получения данных у меня есть Registry_TypeGroup1 class
из EVENT_TRACE
:
[EventType{...}]class Registry_TypeGroup1 : Registry
{
sint64 InitialTime;
uint32 Status;
uint32 Index;
uint32 KeyHandle;
string KeyName;
};
Согласно документации, KeyName
— это просто Имя раздела реестра, а не полный путь к ключу для данного события. Но проблема в том, что мне нужен полный путь для ключа!
Если я преобразую KeyHandle
из uint32
в HKEY
и использую NtQueryKey
(вот так ) — функция завершится ошибкой с неизвестным статусом.
Итак, есть ли способ получить полный путь к ключу реестра из EVENT_TRACE
экземпляра EVENT_TRACE_FLAG_REGISTRY
?
(Я спрашиваю, потому что где-то читал, что ProcMon использует трассировку событий и показывает полный путь реестра для событий... Или перехватывает системные вызовы Reg*
функций?)