Registrieren für Benachrichtigungen
Um Registrierungsaufrufe zu filtern, muss Ihr Registrierungsfiltertreiber im Kernelmodus zuerst CmRegisterCallback oder CmRegisterCallbackEx aufrufen, um eine RegistryCallback-Routine zu registrieren. (Für Windows Vista und höhere Betriebssystemversionen sollten Treiber CmRegisterCallbackEx anstelle von CmRegisterCallback verwenden.)
Nachdem Ihr Treiber eine RegistryCallback-Routine registriert hat, ruft der Konfigurations-Manager die Routine jedes Mal auf, wenn ein Thread versucht, einen Registrierungsvorgang auszuführen. Threads, die Registrierungsvorgänge ausführen, können aus Anwendungen im Benutzermodus stammen, die die Benutzermodusregistrierungsroutinen (RegCreateKeyEx, RegOpenKeyEx usw.) aufrufen, und von Treibern, die die Kernelmodusregistrierungsroutinen aufrufen (ZwCreateKey, ZwOpenKey usw.).
Bei den meisten Vorgängen kann Ihr Treiber eine Benachrichtigung erhalten, bevor der Konfigurations-Manager den Registrierungsvorgang verarbeitet (eine Vorabbenachrichtigung) oder unmittelbar nach Abschluss des Vorgangs (aber bevor der Konfigurations-Manager an den Aufrufer zurückkehrt – eine Benachrichtigung nach dem Aufrufer). Eine Liste der Arten von Benachrichtigungen, die Ihr Treiber empfangen kann, finden Sie unter REG_NOTIFY_CLASS.
Nachdem ein Treiber CmRegisterCallback oder CmRegisterCallbackEx aufgerufen hat, erhält der Treiber Benachrichtigungen, bis er CmUnRegisterCallback aufruft oder entladen wird.