Fungsi KeEnterCriticalRegion (wdm.h)

Rutinitas KeEnterCriticalRegion untuk sementara menonaktifkan eksekusi APC kernel normal, tetapi tidak mencegah APC kernel khusus berjalan.

Sintaks

void KeEnterCriticalRegion();

Mengembalikan nilai

Tidak ada

Keterangan

Driver memanggil rutinitas ini untuk memasuki wilayah kritis di mana eksekusi APC kernel normal ditangguhkan sampai driver ini keluar dari wilayah kritis dengan memanggil rutinitas KeLeaveCriticalRegion . Setiap penelepon KeEnterCriticalRegion harus memanggil KeLeaveCriticalRegion secepat mungkin setelah memasuki wilayah penting.

Driver tingkat tertinggi dapat memanggil KeEnterCriticalRegion saat berjalan dalam konteks utas yang meminta operasi I/O saat ini.

Utas yang berada di dalam wilayah penting memiliki APC pengguna dan APC kernel normal yang dinonaktifkan, tetapi bukan APC kernel khusus. Untuk informasi selengkapnya tentang jenis APC ini, lihat Jenis APC.

Wilayah penting dapat dimasukkan secara rekursif dan setiap panggilan ke KeEnterCriticalRegion harus memiliki panggilan yang cocok ke KeLeaveCriticalRegion.

Driver dapat menggunakan wilayah penting untuk memperoleh dan merilis akses eksklusif ke sumber daya bersama. Dalam hal ini, rutinitas ExEnterCriticalRegionAndAcquireResourceExclusive dan ExReleaseResourceAndLeaveCriticalRegion dapat digunakan alih-alih rutinitas KeEnterCriticalRegion dan KeLeaveCriticalRegion . Untuk informasi selengkapnya, lihat contoh kode di ExEnterCriticalRegriticalRegionAndAcquireResourceExclusive.

Untuk informasi selengkapnya tentang APC, lihat Panggilan Prosedur Asinkron.

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Tersedia dimulai dengan Windows 2000.
Target Platform Universal
Header wdm.h (termasuk Wdm.h, Ntddk.h, Ntifs.h)
Pustaka NtosKrnl.lib
DLL NtosKrnl.exe
IRQL <= APC_LEVEL
Aturan kepatuhan DDI CriticalRegions(wdm), HwStorPortProhibitedDDIs(storport), IrqlKeApcLte2(wdm), WithinCriticalRegion(storport), WithinCriticalRegion(storport), WithinCriticalRegion(wdm)

Lihat juga

ExEnterCriticalRegionAndAcquireResourceExclusive

ExReleaseResourceAndLeaveCriticalRegion

KeAreApcsDisabled

KeLeaveCriticalRegion