다음을 통해 공유


KeAcquireSpinLockAtDpcLevel 매크로(wdm.h)

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

통사론

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