Share via


SpinLock 규칙(wdm)

SpinLock 규칙은 KeAcquireSpinLock을 호출한 후 드라이버가 KeAcquireSpinLock 또는 KeAcquireSpinLockRaiseToDpc에 대한 후속 호출 전에 KeReleaseSpinLock을 호출하도록 지정합니다.

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

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

드라이버 모델: WDM

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

테스트 방법

컴파일 시

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

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

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

런타임 시

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

적용 대상

KeAcquireSpinLockKeAcquireSpinLockRaiseToDpcKeReleaseSpinLockKeTryToAcquireSpinLockAtDpcLevel