Fungsi FsRtlEnterFileSystem
Makro FsRtlEnterFileSystem untuk sementara menonaktifkan pengiriman panggilan prosedur asinkron mode kernel normal (APC). APC mode kernel khusus masih dikirimkan.
Sintaks
VOID FsRtlEnterFileSystem(
VOID
);
Parameter
Tidak ada
Mengembalikan nilai
Fungsi ini tidak mengembalikan nilai.
Keterangan
Setiap rutinitas titik masuk driver sistem file harus memanggil FsRtlEnterFileSystem segera sebelum memperoleh sumber daya yang diperlukan dalam melakukan permintaan I/O file dan memanggil FsRtlExitFileSystem segera setelahnya. Ini memastikan bahwa rutinitas tidak dapat ditangguhkan saat berjalan dan dengan demikian memblokir permintaan I/O file lainnya.
Setiap panggilan yang berhasil ke FsRtlEnterFileSystem harus dicocokkan dengan panggilan berikutnya ke FsRtlExitFileSystem.
Driver filter sistem file dapat menonaktifkan pengiriman APC kernel normal dengan memanggil FsRtlEnterFileSystem atau KeEnterCriticalRegion sebelum IoCallDriver hanya jika FsRtlExitFileSystem atau KeLeaveCriticalRegion berada dalam rutinitas pengiriman yang sama. Mereka tidak boleh memanggil FsRtlEnterFileSystem atau KeEnterCriticalRegion sebelum IoCallDriver dan kemudian memanggil FsRtlExitFileSystem atau KeLeaveCriticalRegion dalam rutinitas penyelesaian IRP. Driver Verifier memiliki aturan untuk membantu menangkap kondisi ini.
Driver filter sistem file harus menonaktifkan APC kernel normal sebelum memperoleh sumber daya apa pun. Driver filter sistem file memperoleh sumber daya dengan rutinitas berikut:
- ExAcquireResourceExclusive
- ExAcquireResourceExclusiveLite
- ExAcquireResourceShared
- ExAcquireResourceSharedLite
- ExAcquireSharedStarveExclusive
- ExAcquireSharedWaitForExclusive
Sebagai alternatif untuk FsRtlEnterFileSystem, driver minifilter dapat menggunakan rutinitas FltAcquireResourceExclusive, FltAcquireResourceShared, dan FltReleaseResource , yang menangani APC dengan benar saat memperoleh dan merilis sumber daya.
Persyaratan
Jenis persyaratan | Persyaratan |
---|---|
Header | Ntifs.h (termasuk Ntifs.h) |
IRQL | <= APC_LEVEL |
Lihat juga
ExAcquireResourceExclusiveLite
ExAcquireSharedWaitForExclusive