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) |