Программа должна следить за реестром. Драйвер работает на основе коллбаков. Как реализовать следующее: передавать информацию о хукнутой операции реестра в основную программу?
В работе с драйверами я новичок, единственное рациональное решение которое я нашел выглядит так:
Через DeviceIoControl передаем указатель на буфер. Все отловленное через коллбаки записываем туда. Программа каждую секунду посылает через DeviceIoControl указатель на другой буфер и считывает данные из старого(обнуляет его после считывания). Коллбаки записывают в новый. Через 1 секунду опять меняем буферы местами. И так до бесконечности)
Как я успел заметить реестр меняется все время. 2 буфера используются, чтобы все не спуталось и была синхронность в чтении-записи. Насколько я понял не существует аналога DeviceIoControl от лица драйвера. Но наверняка существует более удобный способ осуществить мою задумку)