Регистрация для получения уведомлений
Чтобы фильтровать вызовы реестра, драйвер фильтрации реестра в режиме ядра должен сначала вызвать CmRegisterCallback или CmRegisterCallbackEx , чтобы зарегистрировать подпрограмму RegistryCallback . (Для Windows Vista и более поздних версий операционной системы драйверы должны использовать CmRegisterCallbackEx вместо CmRegisterCallback.)
После регистрации драйвера подпрограммы RegistryCallback диспетчер конфигурации вызывает подпрограмму каждый раз, когда поток пытается выполнить операцию реестра. Потоки, выполняющие операции с реестром, могут быть из приложений пользовательского режима, которые вызывают подпрограммы реестра в пользовательском режиме (RegCreateKeyEx, RegOpenKeyEx и т. д.), а также из драйверов, вызывающих подпрограммы реестра в режиме ядра (ZwCreateKey, ZwOpenKey и т. д.).
Для большинства операций драйвер может получать уведомления до того, как диспетчер конфигурации обработает операцию реестра ( предварительное уведомление) или сразу после завершения операции (но до того, как диспетчер конфигурации вернется к вызывающей системе — после уведомления). Список типов уведомлений, которые может получать драйвер, см. в разделе REG_NOTIFY_CLASS.
После вызова драйвера CmRegisterCallback или CmRegisterCallbackEx драйвер будет получать уведомления, пока он не вызовет CmUnRegisterCallback или не выгрузится.