通知登録

レジストリ呼び出しをフィルター処理するには、カーネル モード レジストリ フィルター ドライバーは、最初に CmRegisterCallback または CmRegisterCallbackEx を呼び出して RegistryCallback ルーチンを登録する必要があります。 (Windows Vista 以降のオペレーティング システムバージョンの場合、ドライバーはCmRegisterCallback の代わりに CmRegisterCallbackEx を使用します。)

ドライバーが RegistryCallback ルーチンを登録した後、構成マネージャーは、スレッドがレジストリ操作を実行しようとするたびにルーチンを呼び出します。 レジストリ操作を実行するスレッドは、ユーザーモード レジストリ ルーチン (RegCreateKeyExRegOpenKeyEx など) を呼び出すユーザーモード アプリケーションと、カーネルモード レジストリ ルーチン (ZwCreateKeyZwOpenKey など) を呼び出すドライバーから実行できます。

ほとんどの操作では、ドライバーは、構成マネージャーがレジストリ操作 (事前通知) を処理する前に、または操作が完了した直後 (ただし、構成マネージャーが呼び出し元に戻る前、事後通知 を受け取ることができます。 ドライバーが受け取ることができる通知の種類の一覧については、REG_NOTIFY_CLASS を参照してください。

ドライバーが CmRegisterCallback または CmRegisterCallbackEx を呼び出すと、CmUnRegisterCallback を呼び出すかアンロードされるまで、ドライバーは通知を受けります。