FsRtlEnterFileSystem 函数

FsRtlEnterFileSystem 宏暂时禁止在 APC) (传递正常的内核模式异步过程调用。 仍会提供特殊的内核模式 APC。

语法

VOID FsRtlEnterFileSystem(
   VOID
);

参数

返回值

此函数不返回值。

注解

每个文件系统驱动程序入口点例程必须在获取执行文件 I/O 请求所需的资源之前立即调用 FsRtlEnterFileSystem ,然后立即调用 FsRtlExitFileSystem 。 这可确保例程在运行时无法挂起,从而阻止其他文件 I/O 请求。

每次成功调用 FsRtlEnterFileSystem 都必须与 后续对 FsRtlExitFileSystem 的调用相匹配。

仅当 FsRtlExitFileSystem 或 KeLeaveCriticalRegion 位于同一调度例程中时,文件系统筛选器驱动程序才能通过在 IoCallDriver 之前调用 FsRtlEnterFileSystemKeEnterCriticalRegion 来禁用正常内核 APC 的传递。 他们不应在 IoCallDriver 之前调用 FsRtlEnterFileSystemKeEnterCriticalRegion,然后在 IRP 的完成例程中调用 FsRtlExitFileSystemKeLeaveCriticalRegion。 驱动程序验证程序有一个规则来帮助捕获此条件。

文件系统筛选器驱动程序应在获取任何资源之前禁用普通内核 APC。 文件系统筛选器驱动程序使用以下例程获取资源:

作为 FsRtlEnterFileSystem 的替代方法,微筛选器驱动程序可以使用 FltAcquireResourceExclusiveFltAcquireResourceSharedFltReleaseResource 例程,这些例程在获取和释放资源时正确处理 APC。

要求

要求类型 要求
标头 Ntifs.h (包括 Ntifs.h)
IRQL <= APC_LEVEL

另请参阅

ExAcquireResourceExclusive

ExAcquireResourceExclusiveLite

ExAcquireResourceShared

ExAcquireResourceSharedLite

ExAcquireSharedWaitForExclusive

ExAcquireSharedStarveExclusive

ExReleaseResource

ExReleaseResourceLite

ExTryToAcquireFastMutex

FltAcquireResourceExclusive

FltAcquireResourceShared

FltReleaseResource

FsRtlExitFileSystem

IoCallDriver

KeEnterCriticalRegion

KeRaiseIrqlToDpcLevel