Share via


QueuedSpinLock 규칙(wdm)

QueuedSpinLock 규칙은 드라이버가 KeReleaseInStackQueuedSpinLock을 호출하기 전에 KeAcquireInStackQueuedSpinLock을 호출하고 드라이버가 KeAcquireInStackQueuedSpinLock에 대한 후속 호출 전에 KeReleaseInStackQueuedSpinLock을 호출하도록 지정합니다.

중첩된 호출은 다른 리소스를 획득하고 해제하는 경우 허용됩니다. 동일한 리소스를 획득하거나 해제하기 위한 중첩된 호출은 이 규칙을 위반합니다.

또한 이 규칙은 드라이버가 KeReleaseInStackQueuedSpinLock 을 호출하여 디스패치 루틴 또는 취소 루틴이 끝나기 전에 대기 중인 모든 스핀 잠금을 해제하도록 지정합니다.

드라이버 모델: WDM

버그 검사 0xC4: DRIVER_VERIFIER_DETECTED_VIOLATION(0x00040006) 규칙으로 발견된 버그 검사

테스트 방법

컴파일 시

정적 드라이버 검증 도구 를 실행하고 QueuedSpinLock 규칙을 지정합니다.

다음 단계를 사용하여 코드 분석을 실행합니다.
  1. 코드를 준비합니다(역할 형식 선언 사용).
  2. 정적 드라이버 검증 도구 실행
  3. 결과를 보고 분석합니다.

자세한 내용은 정적 드라이버 검증 도구로 드라이버에서 결함 찾기를 참조하세요.

런타임 시

드라이버 검증 도구 를 실행하고 DDI 준수 확인 옵션을 선택합니다.

적용 대상

KeAcquireInStackQueuedSpinLockKeReleaseInStackQueuedSpinLock