Поделиться через


Функция KeInitializeSpinLock (wdm.h)

Подпрограмма keInitializeSpinLock инициализирует переменную типа KSPIN_LOCK.

Синтаксис

void KeInitializeSpinLock(
  [out] PKSPIN_LOCK SpinLock
);

Параметры

[out] SpinLock

Указатель на блокировку спина, для которой вызывающий объект должен предоставить хранилище.

Возвращаемое значение

Никакой

Замечания

Эта подпрограмма должна вызываться перед первоначальным вызовом KeAcquireSpinLock, чтобы KeAcquireInStackQueuedSpinLockили к любой другой подпрограмме поддержки, требующей блокировки спина в качестве аргумента.

Хранилище для объекта блокировки спина должно быть резидентом: в расширении устройства созданного драйвером объекта устройства, в расширении контроллера объекта контроллера, созданного драйвером, или в непакованном пуле, выделенном вызывающим объектом.

Эта функция применяется для систем x64 из Windows XP до Windows 7. Начиная с Windows 8 эта функция экспортируется из ntoskrnl.lib. В результате, если вы используете Windows 10 WDK для создания двоичного файла, работающего в Windows 7 (поэтому для передачи тестов HLK windows 10 NX требуется использование пула NX), необходимо определить WIN9X_COMPAT_SPINLOCK. В противном случае может отображаться Windows cannot load the device driver for this hardware. The driver may be corrupted or missing. (Code 39).

Дополнительные сведения о блокировках спина см. в разделе Spin Locks.

Вызывающие функции этой подпрограммы могут выполняться в любом IRQL. Обычно вызывающий объект выполняется в IRQL = PASSIVE_LEVEL в подпрограмме AddDevice.

Требования

Требование Ценность
целевая платформа Всеобщий
заголовка wdm.h (include Wdm.h, Ntddk.h, Ntifs.h)
библиотеки NtosKrnl.lib
DLL NtosKrnl.exe
IRQL Любой уровень (см. раздел "Примечания")
правил соответствия DDI HwStorPortProhibitedDIs(storport)

См. также

KeAcquireInStackQueuedSpinLock

KeAcquireInStackQueuedSpinLockAtDpcLevel

KeAcquireSpinLock

KeAcquireSpinLockAtDpcLevel

KeReleaseInStackQueuedSpinLock

KeReleaseInStackQueuedSpinLockFromDpcLevel

KeReleaseSpinLock

KeReleaseSpinLockFromDpcLevel