Bagikan melalui


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)

Lihat juga

KeAcquireInStackQueuedSpinLockAtDpcLevel

KeAcquireSpinLock

KeInitializeSpinLock

KeReleaseSpinLock

KeReleaseSpinLockFromDpcLevel

KeTryToAcquireSpinLockAtDpcLevel