Share via


CriticalRegions 규칙(wdm)

CriticalRegions 규칙은 KeLeaveCriticalRegion을 호출하기 전에 드라이버가 KeEnterCriticalRegion을 호출해야 하며, 드라이버가 KeEnterCriticalRegion에 대한 후속 호출 전에 KeLeaveCriticalRegion을 호출하도록 지정합니다. (중첩된 호출은 허용됩니다.)

또한 이 규칙은 드라이버가 KeLeaveCriticalRegion 을 호출하여 반환하기 전에 일반 APC(커널 비동기 프로시저 호출)의 배달을 다시 사용하도록 설정하도록 지정합니다.

KeEnterCriticalRegionKeLeaveCriticalRegion의 WDK 설명서에서는 이러한 함수의 호출자가 IRQL<=APC_LEVEL 실행될 수 있다고 설명합니다. 이 경우 이 규칙은 모범 사례 권장 사항을 적용합니다.

드라이버 모델: WDM

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

테스트 방법

컴파일 시

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

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

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

런타임 시

드라이버 검증 도구를 실행하고 DDI 규정 준수 검사(추가) 옵션을 선택합니다.

적용 대상

ExEnterCriticalRegionAndAcquireResourceExclusiveExReleaseResourceAndLeaveCriticalRegionKeEnterCriticalRegionKeLeaveCriticalRegion