Share via


FsRtlExitFileSystem 関数

FsRtlExitFileSystem マクロは、FsRtlEnterFileSystem の前の呼び出しで無効になった通常のカーネル モード APC の配信を再度有効にします。

構文

VOID FsRtlExitFileSystem(
   VOID 
);

パラメーター

なし

戻り値

この関数は値を返しません。

解説

すべてのファイル システム ドライバー エントリ ポイント ルーチンは、ファイル I/O 要求の実行に必要なリソースを取得する直前に FsRtlEnterFileSystem を呼び出し、その直後に FsRtlExitFileSystem を呼び出す必要があります。 これにより、ルーチンが実行中に中断されず、他のファイル I/O 要求がブロックされることがなくなります。

FsRtlEnterFileSystem の正常な呼び出しが後続の FsRtlExitFileSystem の呼び出しと一致する必要があります。

ローカル ファイル システムやネットワーク リダイレクターとは異なりますので、ファイル システム フィルター ドライバーは、通常のカーネル APC の配信を (FsRtlEnterFileSystem または KeEnterCriticalRegion を呼び出す、または、IoCallDriver の呼び出しで IRQL APC_LEVEL に上げる方法を使用して) 無効にできません。

ファイル システム フィルター ドライバーが通常のカーネル APC を無効にする必要があるのは、ExAcquireResourceExclusiveExAcquireResourceExclusiveLiteExAcquireResourceSharedExAcquireResourceSharedLite、または ExAcquireSharedStarveExclusive を呼び出す直前だけです。 フィルター ドライバーが ExReleaseResource または ExReleaseResourceLite を呼び出した後、通常のカーネル APC の配信をすぐに再度有効にする必要があります。 FsRtlEnterFileSystem の代わりに、ミニフィルター ドライバーは、リソースを取得および解放するときに APC を適切に処理する FltAcquireResourceExclusiveFltAcquireResourceSharedFltReleaseResource ルーチンを使用できます。

このルーチンは、通常のカーネル APC と特殊なカーネル APC の両方を無効にする KeRaiseIrqlToDpcLevel を呼び出すため、ExAcquireSharedWaitForExclusive を呼び出す前に通常のカーネル APC を無効にする必要はありません。 電話をかける前にそうする必要もありません ExAcquireFastMutex もしくは ExAcquireResourceExclusiveこれらのルーチンは通常のカーネル APC を無効にするためです。

要件

要件タイプ 要件
ヘッダー Ntifs.h (Ntifs.hを含む)
IRQL <= APC_LEVEL

関連項目

ExAcquireFastMutex

ExAcquireResourceExclusive

ExAcquireResourceExclusiveLite

ExAcquireResourceShared

ExAcquireResourceSharedLite

ExAcquireSharedWaitForExclusive

ExAcquireSharedStarveExclusive

ExReleaseResource

ExReleaseResourceLite

ExTryToAcquireFastMutex

FltAcquireResourceExclusive

FltAcquireResourceShared

FltReleaseResource

FsRtlEnterFileSystem

IoCallDriver

KeLeaveCriticalRegion

KeRaiseIrqlToDpcLevel