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


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

Подпрограмма KefAcquireSpinLockAtDpcLevel получает блокировку спина, когда вызывающий объект уже работает в IRQL >= DISPATCH_LEVEL.

Синтаксис

void KefAcquireSpinLockAtDpcLevel(
  PKSPIN_LOCK SpinLock
);

Параметры

SpinLock

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

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

Отсутствует

Замечания

Драйверы вызывают KefAcquireSpinLockAtDpcLevel вместо KeAcquireSpinLock для повышения производительности драйвера, если и только если они уже работают в IRQL DISPATCH_LEVEL или более поздней версии.

Если драйвер работает в IRQL = APC_LEVEL, он должен вызвать KeAcquireSpinLock, чтобы irQL <поднялся этой подпрограммой. KefAcquireSpinLockAtDpcLevel предполагает, что вызывающий объект уже работает в IRQL >= DISPATCH_LEVEL, поэтому повышение не требуется.

Вызывающий объект должен освободить блокировку спина с KefReleaseSpinLockFromDpcLevel как можно быстрее.

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

Требования

Требование Ценность
целевая платформа универсальный
Заголовок wdm.h (включите Wdm.h, Ntddk.h, Ntifs.h)
Библиотека NtosKrnl.lib
Библиотека dll NtosKrnl.exe
IRQL DISPATCH_LEVEL
правил соответствия DDI HwStorPortProhibitedDDIs(storport), IrqlDispatch(wdm), SpinLock(wdm), SpinlockRelease(wdm)

См. также