KeAcquireSpinLockAtDpcLevel 매크로(wdm.h)

호출자가 이미 IRQL >= DISPATCH_LEVEL 실행 중일 때 KeAcquireSpinLockAtDpcLevel 루틴은 스핀 잠금을 획득합니다.

구문

void KeAcquireSpinLockAtDpcLevel(
  [in, out] PKSPIN_LOCK SpinLock
);

매개 변수

[in, out] SpinLock

호출자가 스토리지를 제공해야 하는 초기화된 KSPIN_LOCK 스핀 잠금에 대한 포인터입니다. 스핀 잠금은 페이징되지 않은 풀에 있어야 합니다.

반환 값

없음

설명

드라이버는 이미 DISPATCH_LEVEL 이상의 IRQL에서 실행 중인 경우에만 더 나은 드라이버 성능을 위해 KeAcquireSpinLock 대신 KeAcquireSpinLockAtDpcLevel을 호출합니다.

드라이버가 IRQL <= APC_LEVEL 실행 중인 경우 KeAcquireSpinLock 을 호출하여 해당 루틴에서 IRQL을 발생시켜야 합니다. KeAcquireSpinLockAtDpcLevel 은 호출자가 IRQL >= DISPATCH_LEVEL 이미 실행 중이라고 가정하므로 인상이 필요하지 않습니다.

호출자는 KeReleaseSpinLockFromDpcLevel 을 사용하여 스핀 잠금을 최대한 빨리 해제해야 합니다.

스핀 잠금에 대한 자세한 내용은 스핀 잠금을 참조하세요.

요구 사항

요구 사항
대상 플랫폼 유니버설
헤더 wdm.h(Wdm.h, Ntddk.h, Ntifs.h 포함)
라이브러리 NtosKrnl.lib
DLL NtosKrnl.exe
IRQL 설명 섹션을 참조하십시오.
DDI 규정 준수 규칙 HwStorPortProhibitedDDIs(storport), IrqlDispatch(storport), SpinLockSafe(storport)

추가 정보

KeAcquireInStackQueuedSpinLockAtDpcLevel

KeAcquireSpinLock

KeInitializeSpinLock

KeReleaseSpinLock

KeReleaseSpinLockFromDpcLevel

KeTryToAcquireSpinLockAtDpcLevel