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


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

KeTryToAcquireSpinLockAtDpcLevel пытается получить блокировку спина на DISPATCH_LEVEL.

Синтаксис

BOOLEAN KeTryToAcquireSpinLockAtDpcLevel(
  [in, out] PKSPIN_LOCK SpinLock
);

Параметры

[in, out] SpinLock

Указывает блокировку спина для получения. Блокировка спина должна быть уже инициализирована KeInitializeSpinLock.

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

KeTryToAcquireSpinLockAtDpcLevel возвращает TRUE, если блокировка спина приобретена, и FALSE, если блокировка спина уже удерживается и не может быть приобретена.

Замечания

Если указанная блокировка спина не занята, программа KeTryToAcquireSpinLockAtDpcLevel получает блокировку спина (см. KeAcquireSpinLock) и возвращает TRUE. Если блокировка спина уже приобретена, подпрограмма немедленно возвращает FALSE.

Если блокировка спина приобретена, вызывающий объект может освободить его с помощью процедуры KeReleaseSpinLock.

Если вы хотите, чтобы драйвер блокировался, если он не может получить блокировку спина, используйте KeAcquireSpinLockAtDpcLevel.

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

Требования

Требование Ценность
минимальные поддерживаемые клиентские Доступно в Windows Server 2003 с пакетом обновления 1 (SP1) и более поздними версиями Windows.
целевая платформа Всеобщий
заголовка wdm.h (include Wdm.h, Ntddk.h, Ntifs.h)
библиотеки NtosKrnl.lib
DLL NtosKrnl.exe
IRQL DISPATCH_LEVEL
правил соответствия DDI HwStorPortProhibitedDIs(storport), SpinLock(wdm), SpinlockRelease(wdm)

См. также

KeAcquireSpinLock

KeAcquireSpinLockAtDpcLevel

KeInitializeSpinLock

KeReleaseSpinLock