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


Функция 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 .

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

Требования

Требование Значение
Минимальная версия клиента Доступно в Windows Server 2003 с пакетом обновления 1 (SP1) и более поздних версиях Windows.
Целевая платформа Универсальное
Верхняя часть wdm.h (включая 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