Bagikan melalui


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:

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

ExAcquireResourceExclusive

ExAcquireResourceExclusiveLite

ExAcquireResourceShared

ExAcquireResourceSharedLite

ExAcquireSharedWaitForExclusive

ExAcquireSharedStarveExclusive

ExReleaseResource

ExReleaseResourceLite

ExTryToAcquireFastMutex

FltAcquireResourceExclusive

FltAcquireResourceShared

FltReleaseResource

FsRtlExitFileSystem

IoCallDriver

KeEnterCriticalRegion

KeRaiseIrqlToDpcLevel