レジストリ フィルター ドライバーは、ウイルス対策ソフトウェア パッケージのドライバー コンポーネントなど、レジストリ呼び出しをフィルター処理するカーネル モード ドライバーです。 レジストリを実装する構成マネージャーを使用すると、レジストリ フィルター ドライバーは、レジストリ関数へのスレッドの呼び出しをフィルター処理することができます。 レジストリ呼び出しのフィルター処理は、Microsoft Windows XP で最初にサポートされました。
Windows XP では、レジストリ フィルター ドライバーは CmRegisterCallback を呼び出して RegistryCallback ルーチンと CmUnRegisterCallback を登録し、コールバック ルーチンの登録を解除できます。 RegistryCallback ルーチンは、構成マネージャーが操作を処理する前に、各レジストリ操作の通知を受け取ります。 一連の REG_XXX_KEY_INFORMATION データ構造には、各レジストリ操作に関する情報が含まれています。 RegistryCallback ルーチンは、レジストリ操作をブロックすることができます。 コールバック ルーチンは、構成マネージャーがレジストリ キーの作成またはオープンを完了したときにも通知を受け取ります。
Windows Server 2003 では、追加の完了通知が提供されます。
Windows Vista には、次の追加のレジストリ フィルター機能が用意されています。
レジストリ フィルター ドライバーは、ドライバー スタックに階層化することができ、スタック内の各ドライバーはレジストリ操作をフィルター処理できます。
CmRegisterCallback ルーチンは、CmRegisterCallbackEx ルーチンに置き換えられます。
ドライバーは、レジストリ操作を完全に処理し (または要求された操作を別の操作にリダイレクトし)、構成マネージャーが操作を処理できないようにすることができます。
ドライバーは、個々のレジストリ操作またはキー オブジェクトにコンテキスト情報を割り当てることができます。
ドライバーは、レジストリ操作の出力パラメーターと戻り値を変更することができます。
すべての REG_XXX_KEY_INFORMATION データ構造に、追加のメンバーが追加されました。
ドライバーは、追加のレジストリ操作の通知を受け取ります。
ドライバーが Windows の各バージョンでフィルター処理できるレジストリ操作の一覧については、REG_NOTIFY_CLASS をご覧ください。
レジストリ呼び出しのフィルター処理について詳しくは、以下のトピックをご覧ください。