次の方法で共有


FsRtlEnterFileSystem 関数

その FsRtlEnterFileSystem このマクロは、通常のカーネル モードの非同期プロシージャ コール (APC) の配信を一時的に無効にします。 特殊なカーネル モードのAPCsは引き続き配信されます。

構文

VOID FsRtlEnterFileSystem(
   VOID
);

パラメーター

なし

戻り値

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

解説

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

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

ファイル システム フィルター ドライバーは、FsRtlEnterFileSystem または KeEnterCriticalRegion が同じディスパッチ ルーチン内にある場合にのみ、IoCallDriver の前に FsRtlExitFileSystem または KeLeaveCriticalRegion を呼び出すことで、通常のカーネル APC の配信を無効にすることができます。 IoCallDriver の前に FsRtlEnterFileSystem または KeEnterCriticalRegion を呼び出し、IRP の完了ルーチンFsRtlExitFileSystem または KeLeaveCriticalRegion を呼び出さないでください。 Driver Verifier には、この状態を検出するのに役立つルールがあります。

ファイル システム フィルター ドライバーは、リソースを取得する前に通常のカーネル APC を無効にする必要があります。 ファイル システム フィルター ドライバーは、次のルーチンを使用してリソースを取得します。

FsRtlEnterFileSystem の代わりに、ミニフィルター ドライバーは、リソースを取得および解放するときに APC を適切に処理する FltAcquireResourceExclusiveFltAcquireResourceSharedFltReleaseResource ルーチンを使用できます。

要件

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

関連項目

ExAcquireResourceExclusive

ExAcquireResourceExclusiveLite

ExAcquireResourceShared

ExAcquireResourceSharedLite

ExAcquireSharedWaitForExclusive

ExAcquireSharedStarveExclusive

ExReleaseResource

ExReleaseResourceLite

ExTryToAcquireFastMutex

FltAcquireResourceExclusive

FltAcquireResourceShared

FltReleaseResource

FsRtlExitFileSystem

IoCallDriver

KeEnterCriticalRegion

KeRaiseIrqlToDpcLevel