Функция KeInitializeSpinLock (wdm.h)
Подпрограмма KeInitializeSpinLock инициализирует переменную типа KSPIN_LOCK.
Синтаксис
void KeInitializeSpinLock(
[out] PKSPIN_LOCK SpinLock
);
Параметры
[out] SpinLock
Указатель на спин-блокировку, для которой вызывающий объект должен предоставить хранилище.
Возвращаемое значение
None
Remarks
Эта подпрограмма должна вызываться перед первоначальным вызовом KeAcquireSpinLock, KeAcquireInStackQueuedSpinLock или любой другой подпрограммы поддержки, требующей спин-блокировки в качестве аргумента.
Хранилище для объекта spin lock должно быть резидентным: в расширении устройства объекта устройства, созданного драйвером, в расширении контроллера созданного драйвером объекта контроллера или в невыгружаемом пуле, выделенном вызывающим объектом.
Эта функция встраивается в системы x64 от Windows XP до Windows 7. Начиная с Windows 8, эта функция экспортируется из ntoskrnl.lib
. В результате, если вы используете Windows 10 WDK для создания двоичного файла, работающего в Windows 7 (поэтому для прохождения Windows 10 тестов HLK требуется использование пула NX), необходимо определить WIN9X_COMPAT_SPINLOCK
. В противном случае может отображаться .Windows cannot load the device driver for this hardware. The driver may be corrupted or missing. (Code 39)
Дополнительные сведения о спин-блокировках см. в разделе Спин-блокировки.
Вызывающие абоненты этой подпрограммы могут выполняться в любой среде IRQL. Как правило, вызывающий объект выполняется в среде IRQL = PASSIVE_LEVEL в подпрограмме AddDevice .
Требования
Требование | Значение |
---|---|
Целевая платформа | Универсальное |
Верхняя часть | wdm.h (включая Wdm.h, Ntddk.h, Ntifs.h) |
Библиотека | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | Любой уровень (см. раздел "Примечания") |
Правила соответствия DDI | HwStorPortProhibitedDIS(storport) |
См. также раздел
KeAcquireInStackQueuedSpinLock
KeAcquireInStackQueuedSpinLockAtDpcLevel
KeReleaseInStackQueuedSpinLock