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
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk