Fungsi KeAcquireInStackQueuedSpinLockAtDpcLevel (wdm.h)

Rutinitas KeAcquireInStackQueuedSpinLockAtDpcLevel memperoleh kunci spin antrean ketika pemanggil sudah berjalan di IRQL >= DISPATCH_LEVEL.

Sintaks

void KeAcquireInStackQueuedSpinLockAtDpcLevel(
  PKSPIN_LOCK         SpinLock,
  PKLOCK_QUEUE_HANDLE LockHandle
);

Parameter

SpinLock

[in, out] Menentukan kunci putar yang akan diperoleh. Parameter ini harus diinisialisasi dengan panggilan ke rutinitas KeInitializeSpinLock .

LockHandle

[keluar] Penunjuk ke struktur KLOCK_QUEUE_HANDLE yang disediakan penelepon yang dapat digunakan rutinitas untuk mengembalikan handel antrean kunci putar. Untuk melepaskan kunci, penelepon meneruskan nilai ini ke rutinitas KeReleaseInStackQueuedSpinLockFromDpcLevel .

Nilai kembali

Tidak ada

Keterangan

Untuk driver yang berjalan di IRQL >= DISPATCH_LEVEL, KeAcquireInStackQueuedSpinLockAtDpcLevel memperoleh kunci putar sebagai kunci spin yang diantrekan. Untuk informasi selengkapnya, lihat Kunci Spin Antrean. Untuk melepaskan kunci putaran, panggil rutinitas KeReleaseInStackQueuedSpinLockFromDpcLevel .

Driver yang sudah berjalan di IRQL >= DISPATCH_LEVEL dapat memanggil rutinitas ini untuk memperoleh kunci spin yang diantrekan dengan lebih cepat. Jika tidak, gunakan rutinitas KeAcquireInStackQueuedSpinLock untuk memperoleh kunci putaran.

Untuk driver yang berjalan di IRQL > DISPATCH_LEVEL, rutinitas ini memperoleh kunci tanpa memodifikasi IRQL saat ini. Untuk driver yang berjalan di IRQL = DISPATCH_LEVEL, rutinitas ini meningkatkan performa dengan memperoleh kunci tanpa terlebih dahulu mengatur IRQL ke DISPATCH_LEVEL, yang, dalam hal ini, akan menjadi operasi redundan.

Seperti kunci spin biasa, kunci spin yang diantrekan hanya boleh digunakan dalam keadaan yang sangat khusus. Untuk deskripsi kapan harus menggunakan kunci spin, lihat KeAcquireSpinLock.

Driver tidak boleh menggabungkan panggilan ke KeAcquireSpinLock dan KeAcquireInStackQueuedSpinLock pada kunci putar yang sama. Kunci putar harus selalu diperoleh atau dilepaskan baik sebagai kunci putar antrean, atau sebagai kunci putar biasa.

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Windows XP
Header wdm.h
IRQL IRQL >= DISPATCH_LEVEL
Aturan kepatuhan DDI HwStorPortProhibitedDDIs(storport)

Lihat juga

KLOCK_QUEUE_HANDLE

KeAcquireSpinLock

KeAcquireInStackQueuedSpinLock

KeInitializeSpinLock

KeReleaseInStackQueuedSpinLockFromDpcLevel