호출자가 IRQL >= DISPATCH_LEVEL 이미 실행 중인 경우 KefAcquireSpinLockAtDpcLevel 루틴은 스핀 잠금을 획득합니다.
문법
VOID KefAcquireSpinLockAtDpcLevel(
PKSPIN_LOCK SpinLock
);
매개 변수
SpinLock
호출자가 스토리지를 제공해야 하는 초기화된 KSPIN_LOCK 스핀 잠금에 대한 포인터입니다. 스핀 잠금은 페이징되지 않은 풀에 있어야 합니다.
반환 값
없음
비고
드라이버는 이미 DISPATCH_LEVEL 이상의 IRQL에서 실행 중인 경우에만 더 나은 드라이버 성능을 위해 KeAcquireSpinLock 대신 KefAcquireSpinLockAtDpcLevel을 호출합니다.
드라이버가 IRQL <= APC_LEVEL 실행 중인 경우 KeAcquireSpinLock을 호출하여 해당 루틴에서 IRQL을 발생시켜야 합니다. KefAcquireSpinLockAtDpcLevel 은 호출자가 IRQL >= DISPATCH_LEVEL 이미 실행되고 있다고 가정하므로 발생이 필요하지 않습니다.
호출자는 가능한 한 빨리 KefReleaseSpinLockFromDpcLevel 을 사용하여 스핀 잠금을 해제해야 합니다.
스핀 잠금에 대한 자세한 내용은 스핀 잠금 참조하세요.
요구 사항
| 요구 사항 | 가치 |
|---|---|
| 대상 플랫폼 | 보편적 |
| 헤더 | wdm.h (Wdm.h, Ntddk.h, Ntifs.h를 포함하여) |
| 라이브러리 | NtosKrnl.lib |
| DLL | NtosKrnl.exe |
| IRQL | 디스패치 레벨 |
| DDI 규정 준수 규칙 | HwStorPortProhibitedDDIs(storport), IrqlDispatch(wdm), SpinLock(wdm), SpinlockRelease(wdm) |