다음을 통해 공유


SpinLockSafe 규칙(wdm)

SpinLockSafe 규칙은 스핀 잠금을 유지하는 동안 IoStartNextPacketIoCompleteRequest가 호출되지 않도록 지정합니다.

또한 이 규칙은 드라이버가 KeReleaseSpinLockFromDpcLevel 또는 KeReleaseSpinLock을 호출하기 전에 KeAcquireSpinLock 또는 KeAcquireSpinLockAtDpcLevel을 호출하고 IoReleaseCancelSpinLock을 호출하기 전에 IoAcquireCancelSpinLock을 호출한다고 지정합니다.

정적 드라이버 검증 도구는 드라이버에 중첩된 SpinLocks가 포함된 경우 해당 스핀 잠금을 올바르게 획득하고 해제한 경우에도 이 규칙의 잘못된 위반을 보고할 수 있습니다.

드라이버 모델: WDM

테스트 방법

컴파일 시

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

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

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

적용 대상

IoAcquireCancelSpinLockIoCompleteRequestIoReleaseCancelSpinLockIoStartNextPacketKeAcquireSpinLockKeAcquireSpinLockRaiseToDpcKeReleaseSpinLock