Bagikan melalui


Fungsi KeInitializeSpinLock (wdm.h)

Rutinitas KeInitializeSpinLock menginisialisasi variabel jenis KSPIN_LOCK.

Sintaks

void KeInitializeSpinLock(
  [out] PKSPIN_LOCK SpinLock
);

Parameter

[out] SpinLock

Penunjuk ke kunci spin, yang pemanggilnya harus menyediakan penyimpanan.

Nilai kembali

Tidak ada

Keterangan

Rutinitas ini harus dipanggil sebelum panggilan awal ke KeAcquireSpinLock, ke KeAcquireInStackQueuedSpinLock, atau ke rutinitas dukungan lainnya yang memerlukan kunci spin sebagai argumen.

Penyimpanan untuk objek kunci spin harus merupakan residen: dalam ekstensi perangkat objek perangkat yang dibuat driver, di ekstensi pengontrol objek pengontrol yang dibuat driver, atau di kumpulan yang tidak disebarkan yang dialokasikan oleh pemanggil.

Fungsi ini sebaris untuk sistem x64 dari Windows XP hingga Windows 7. Mulai dari Windows 8, fungsi ini diekspor dari ntoskrnl.lib. Akibatnya, jika Anda menggunakan Windows 10 WDK untuk membangun biner yang berjalan pada Windows 7 (dan oleh karena itu Anda memerlukan penggunaan kumpulan NX untuk lulus Windows 10 tes HLK), Anda harus menentukan WIN9X_COMPAT_SPINLOCK. Jika tidak, Anda mungkin melihat Windows cannot load the device driver for this hardware. The driver may be corrupted or missing. (Code 39).

Untuk informasi selengkapnya tentang kunci spin, lihat Spin Locks.

Penelepon rutin ini dapat berjalan di IRQL apa pun. Biasanya, penelepon berjalan di IRQL = PASSIVE_LEVEL dalam rutinitas AddDevice .

Persyaratan

Persyaratan Nilai
Target Platform Universal
Header wdm.h (termasuk Wdm.h, Ntddk.h, Ntifs.h)
Pustaka NtosKrnl.lib
DLL NtosKrnl.exe
IRQL Tingkat apa pun (lihat bagian Keterangan)
Aturan kepatuhan DDI HwStorPortProhibitedDDIs(storport)

Lihat juga

KeAcquireInStackQueuedSpinLock

KeAcquireInStackQueuedSpinLockAtDpcLevel

KeAcquireSpinLock

KeAcquireSpinLockAtDpcLevel

KeReleaseInStackQueuedSpinLock

KeReleaseInStackQueuedSpinLockFromDpcLevel

KeReleaseSpinLock

KeReleaseSpinLockFromDpcLevel