IoRegisterFsRegistrationChange 関数 (ntifs.h)

IoRegisterFsRegistrationChange ルーチンは、ファイル システムが自身をアクティブ なファイル システムとして登録または登録解除するたびに呼び出されるファイル システム フィルター ドライバーの通知ルーチンを登録します。

構文

NTSTATUS IoRegisterFsRegistrationChange(
  [in] PDRIVER_OBJECT          DriverObject,
  [in] PDRIVER_FS_NOTIFICATION DriverNotificationRoutine
);

パラメーター

[in] DriverObject

FS フィルター ドライバーのドライバー オブジェクトへのポインター。

[in] DriverNotificationRoutine

ファイル システムが自身を登録または登録解除するときに呼び出す、 PDRIVER_FS_NOTIFICATION ルーチンへのポインター。

戻り値

IoRegisterFsRegistrationChange は、次のいずれかの NTSTATUS 値を返します。

リターン コード 説明
STATUS_SUCCESS 通知ルーチンが正常に登録されました。
STATUS_INSUFFICIENT_RESOURCES 通知パケットを通知ルーチンに割り当てられませんでした。
STATUS_DEVICE_ALREADY_ATTACHED 「解説」を参照してください。
STATUS_NOT_SUPPORTED レガシ FS フィルター ドライバーは、システム ポリシーによってブロックされます。 詳細については、「 レガシ ファイル システム フィルター ドライバーのブロック 」を参照してください。

注釈

IoRegisterFsRegistrationChange は、ファイル システムが IoRegisterFileSystem または IoUnregisterFileSystem を呼び出すたびに通知を受け取る FS フィルター ドライバー を登録します

このような通知の受信を停止するには、フィルター ドライバーで IoUnregisterFsRegistrationChange を呼び出す必要があります。

FS フィルター ドライバーが IoRegisterFsRegistrationChange を呼び出すと、OS は現在登録されているすべてのファイル システムに対して通知ルーチンを直ちに呼び出します。 (登録済みファイル システムは、 既に IoRegisterFileSystem を正常に呼び出したが、 IoUnregisterFileSystem を呼び出していないシステムです)。呼び出し元の通知ルーチンは IoRegisterFsRegistrationChange が返される前でも呼び出すことができるため、フィルター ドライバーは、これらの通知を処理するために必要なデータ構造を作成するまで、このルーチンを呼び出さないでください。

IoRegisterFsRegistrationChange は RAW デバイスを無視します。 名前による RAW ファイル システムへのアタッチの詳細については、「 フィルター デバイス オブジェクトをターゲット デバイス オブジェクトにアタッチする」を参照してください。

IoRegisterFsRegistrationChange は、フィルター ドライバーのドライバー オブジェクトの参照カウントをインクリメントします。

IoRegisterFsRegistrationChange は、次の条件に該当する場合、STATUS_DEVICE_ALREADY_ATTACHEDを返します。

  • FS フィルター ドライバーは、 IoRegisterFsRegistrationChange を呼び出さずに IoRegisterFsRegistrationChange 2 回連続して呼び出しました。
  • その FS フィルター ドライバーは、以前の IoRegisterFsRegistrationChange の呼び出しで登録した DriverObjectDriverNotificationRoutine に対して同じ値を渡しました。
  • 最初の呼び出し以降、他のフィルター ドライバーは登録されていません。

要件

要件
対象プラットフォーム ユニバーサル
Header ntifs.h (Ntifs.h を含む)
Library NtosKrnl.lib
[DLL] NtosKrnl.exe
IRQL < DISPATCH_LEVEL

こちらもご覧ください

IoRegisterFileSystem

IoRegisterFsRegistrationChangeEx

IoUnregisterFileSystem

IoUnregisterFsRegistrationChange