レジストリ呼び出しのフィルター処理

レジストリ フィルター ドライバーは、ウイルス対策ソフトウェア パッケージのドライバー コンポーネントなど、レジストリ呼び出しをフィルター処理するカーネル モード ドライバーです。 レジストリを実装する構成マネージャーを使用すると、レジストリ フィルター ドライバーは、レジストリ関数へのスレッドの呼び出しをフィルター処理することができます。 レジストリ呼び出しのフィルター処理は、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 をご覧ください。

レジストリ呼び出しのフィルター処理について詳しくは、以下のトピックをご覧ください。

通知登録

通知の処理

複数層レジストリ フィルター ドライバーのサポート

コンテキスト情報の指定

追加のレジストリ情報の取得

レジストリ通知内の無効なキー オブジェクト ポインター

アプリケーション ハイブのレジストリ操作のフィルター処理