Fungsi KeAcquireInStackQueuedSpinLock (wdm.h)

Rutinitas KeAcquireInStackQueuedSpinLock memperoleh kunci spin yang diantrekan.

Sintaks

void KeAcquireInStackQueuedSpinLock(
  PKSPIN_LOCK         SpinLock,
  PKLOCK_QUEUE_HANDLE LockHandle
);

Parameter

SpinLock

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

LockHandle

[keluar] Penunjuk ke variabel KLOCK_QUEUE_HANDLE yang disediakan penelepon yang dapat digunakan rutinitas untuk mengembalikan handel antrean kunci putar. Penelepon meneruskan nilai ini ke KeReleaseInStackQueuedSpinLock saat merilis kunci. Driver biasanya harus mengalokasikan struktur pada tumpukan setiap kali mereka memperoleh kunci. Driver tidak boleh menggunakan KLOCK_QUEUE_HANDLE yang sama dari beberapa situs panggilan.

Nilai kembali

Tidak ada

Keterangan

KeAcquireInStackQueuedSpinLock memperoleh kunci putar sebagai kunci spin yang diantrekan. Untuk informasi selengkapnya, lihat Kunci Spin Antrean. Pemanggil melepaskan kunci putar dengan memanggil rutinitas KeReleaseInStackQueuedSpinLock .

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.

Rutinitas ini meningkatkan tingkat IRQL ke DISPATCH_LEVEL saat memperoleh kunci putaran. Jika penelepon dijamin sudah berjalan pada DISPATCH_LEVEL, lebih efisien untuk memanggil KeAcquireInStackQueuedSpinLockAtDpcLevel.

Panggilan ke KeReleaseInStackQueuedSpinLock yang melepaskan kunci spin harus terjadi di IRQL = DISPATCH_LEVEL. Panggilan ini memulihkan IRQL asli yang disimpan sistem operasi di awal panggilan KeAcquireInStackQueuedSpinLock .

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

Persyaratan

Persyaratan Nilai
Header wdm.h (termasuk Wdm.h)
IRQL IRQL <= DISPATCH_LEVEL
Aturan kepatuhan DDI HwStorPortProhibitedDDIs(storport), MarkingQueuedIrps(wdm), QueuedSpinLock(storport), QueuedSpinLock(wdm), QueuedSpinLockRelease(storport), QueuedSpinLockRelease(wdm)

Lihat juga

KLOCK_QUEUE_HANDLE

KeAcquireInStackQueuedSpinLockAtDpcLevel

KeAcquireSpinLock

KeInitializeSpinLock

KeReleaseInStackQueuedSpinLock