FsRtlExitFileSystem 函式
FsRtlExitFileSystem 宏會重新啟用先前呼叫 FsRtlEnterFileSystem 已停用的一般內核模式 APC 傳遞。
語法
VOID FsRtlExitFileSystem(
VOID
);
參數
None
傳回值
此函式不會傳回值。
備註
每個文件系統驅動程式進入點例程都必須立即呼叫 FsRtlEnterFileSystem ,才能取得執行檔案 I/O 要求所需的資源,並在之後立即呼叫 FsRtlExitFileSystem 。 這可確保例程在執行時無法暫停,因而封鎖其他檔案 I/O 要求。
對 FsRtlEnterFileSystem 的每個成功呼叫都必須與後續呼叫 FsRtlExitFileSystem 相符。
不同於本機文件系統和網路重新導向器,文件系統篩選驅動程序絕對不應該透過呼叫IoCallDriver呼叫 APC_LEVEL) FsRtlEnterFileSystem 或 KeEnterCriticalRegion,或透過呼叫 IoCallDriver 來停用一般核心 APC (傳遞。
檔案系統篩選驅動程式應該在呼叫 ExAcquireResourceExclusive、ExAcquireResourceExclusiveLite、ExAcquireResourceShared、ExAcquireResourceSharedLite 或 ExAcquireResourceSharedStarveExclusive 之前立即停用正常核心 APC 的唯一時間。 篩選驅動程式呼叫 ExReleaseResource 或 ExReleaseResourceLite 之後,應該立即重新啟用正常核心 APC 的傳遞。 作為 FsRtlEnterFileSystem 的替代方案,迷你篩選驅動程式可以使用 FltAcquireResourceExclusive、 FltAcquireResourceShared 和 FltReleaseResource 例程,以在取得和釋放資源時正確處理 APC。
呼叫 ExAcquireSharedWaitForExclusive 之前,不需要停用一般核心 APC,因為此例程會呼叫 KeRaiseIrqlToDpcLevel,這會停用一般和特殊核心 APC。 呼叫 ExAcquireFastMutex 或 ExAcquireResourceExclusive 之前,也不需要這麼做,因為這些例程會停用一般核心 APC。
規格需求
需求類型 | 需求 |
---|---|
標頭 | Ntifs.h (包含 Ntifs.h) |
IRQL | <= APC_LEVEL |
另請參閱
ExAcquireResourceExclusiveLite
ExAcquireSharedWaitForExclusive