共用方式為


FsRtlExitFileSystem 函式

FsRtlExitFileSystem 宏會重新啟用先前呼叫 FsRtlEnterFileSystem 已停用的一般內核模式 APC 傳遞。

語法

VOID FsRtlExitFileSystem(
   VOID 
);

參數

None

傳回值

此函式不會傳回值。

備註

每個文件系統驅動程式進入點例程都必須立即呼叫 FsRtlEnterFileSystem ,才能取得執行檔案 I/O 要求所需的資源,並在之後立即呼叫 FsRtlExitFileSystem 。 這可確保例程在執行時無法暫停,因而封鎖其他檔案 I/O 要求。

對 FsRtlEnterFileSystem 的每個成功呼叫都必須與後續呼叫 FsRtlExitFileSystem 相符。

不同於本機文件系統和網路重新導向器,文件系統篩選驅動程序絕對不應該透過呼叫IoCallDriver呼叫 APC_LEVEL) FsRtlEnterFileSystemKeEnterCriticalRegion,或透過呼叫 IoCallDriver 來停用一般核心 APC (傳遞。

檔案系統篩選驅動程式應該在呼叫 ExAcquireResourceExclusiveExAcquireResourceExclusiveLiteExAcquireResourceShared、ExAcquireResourceSharedLiteExAcquireResourceSharedStarveExclusive 之前立即停用正常核心 APC 的唯一時間。 篩選驅動程式呼叫 ExReleaseResourceExReleaseResourceLite 之後,應該立即重新啟用正常核心 APC 的傳遞。 作為 FsRtlEnterFileSystem 的替代方案,迷你篩選驅動程式可以使用 FltAcquireResourceExclusiveFltAcquireResourceSharedFltReleaseResource 例程,以在取得和釋放資源時正確處理 APC。

呼叫 ExAcquireSharedWaitForExclusive 之前,不需要停用一般核心 APC,因為此例程會呼叫 KeRaiseIrqlToDpcLevel,這會停用一般和特殊核心 APC。 呼叫 ExAcquireFastMutexExAcquireResourceExclusive 之前,也不需要這麼做,因為這些例程會停用一般核心 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