FsRtlExitFileSystem 関数
FsRtlExitFileSystem マクロは、FsRtlEnterFileSystem の前の呼び出しで無効になった通常のカーネル モード APC の配信を再度有効にします。
構文
VOID FsRtlExitFileSystem(
VOID
);
パラメーター
なし
戻り値
この関数は値を返しません。
解説
すべてのファイル システム ドライバー エントリ ポイント ルーチンは、ファイル I/O 要求の実行に必要なリソースを取得する直前に FsRtlEnterFileSystem を呼び出し、その直後に FsRtlExitFileSystem を呼び出す必要があります。 これにより、ルーチンが実行中に中断されず、他のファイル I/O 要求がブロックされることがなくなります。
FsRtlEnterFileSystem の正常な呼び出しが後続の FsRtlExitFileSystem の呼び出しと一致する必要があります。
ローカル ファイル システムやネットワーク リダイレクターとは異なりますので、ファイル システム フィルター ドライバーは、通常のカーネル APC の配信を (FsRtlEnterFileSystem または KeEnterCriticalRegion を呼び出す、または、IoCallDriver の呼び出しで IRQL APC_LEVEL に上げる方法を使用して) 無効にできません。
ファイル システム フィルター ドライバーが通常のカーネル APC を無効にする必要があるのは、ExAcquireResourceExclusive、ExAcquireResourceExclusiveLite、ExAcquireResourceShared、ExAcquireResourceSharedLite、または ExAcquireSharedStarveExclusive を呼び出す直前だけです。 フィルター ドライバーが ExReleaseResource または ExReleaseResourceLite を呼び出した後、通常のカーネル APC の配信をすぐに再度有効にする必要があります。 FsRtlEnterFileSystem の代わりに、ミニフィルター ドライバーは、リソースを取得および解放するときに APC を適切に処理する FltAcquireResourceExclusive、FltAcquireResourceShared、FltReleaseResource ルーチンを使用できます。
このルーチンは、通常のカーネル APC と特殊なカーネル APC の両方を無効にする KeRaiseIrqlToDpcLevel を呼び出すため、ExAcquireSharedWaitForExclusive を呼び出す前に通常のカーネル APC を無効にする必要はありません。 電話をかける前にそうする必要もありません ExAcquireFastMutex もしくは ExAcquireResourceExclusiveこれらのルーチンは通常のカーネル APC を無効にするためです。
要件
要件タイプ | 要件 |
---|---|
ヘッダー | Ntifs.h (Ntifs.hを含む) |
IRQL | <= APC_LEVEL |
関連項目
ExAcquireResourceExclusiveLite
ExAcquireSharedWaitForExclusive