Makro KeAcquireSpinLockAtDpcLevel (wdm.h)
Rutinitas KeAcquireSpinLockAtDpcLevel memperoleh kunci putar ketika pemanggil sudah berjalan di IRQL >= DISPATCH_LEVEL.
Sintaks
void KeAcquireSpinLockAtDpcLevel(
[in, out] PKSPIN_LOCK SpinLock
);
Parameter
[in, out] SpinLock
Arahkan ke kunci putar KSPIN_LOCK yang diinisialisasi yang harus disediakan pemanggil penyimpanan. Kunci putar harus dari kumpulan non-halaman.
Nilai kembali
Tidak ada
Keterangan
Driver memanggil KeAcquireSpinLockAtDpcLevel alih-alih KeAcquireSpinLock untuk performa driver yang lebih baik jika dan hanya jika mereka sudah berjalan di IRQL DISPATCH_LEVEL atau lebih tinggi.
Jika driver berjalan di IRQL <= APC_LEVEL, driver harus memanggil KeAcquireSpinLock agar IRQL dinaikkan oleh rutinitas tersebut. KeAcquireSpinLockAtDpcLevel mengasumsikan pemanggil sudah berjalan di IRQL >= DISPATCH_LEVEL, sehingga tidak diperlukan kenaikan.
Pemanggil harus melepaskan kunci putar dengan KeReleaseSpinLockFromDpcLevel secepat mungkin.
Untuk informasi selengkapnya tentang kunci putaran, lihat Spin Locks.
Persyaratan
Persyaratan | Nilai |
---|---|
Target Platform | Universal |
Header | wdm.h (termasuk Wdm.h, Ntddk.h, Ntifs.h) |
Pustaka | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | Lihat bagian Keterangan. |
Aturan kepatuhan DDI | HwStorPortProhibitedDDIs(storport), IrqlDispatch(storport), SpinLockSafe(storport) |