다음을 통해 공유


C28144

경고 C28144: 취소 루틴 내에서 종료 지점에서 Irp-CancelIrql>의 IRQL은 현재 IRQL이어야 합니다.

추가 정보

특정 함수에서 값을 복원할 필요는 없지만 종료하기 전에 복원해야 합니다. PREfast가 필요한 값으로 복원되었는지 확인할 수 없습니다.

드라이버의 Cancel 루틴이 종료되면 Irp-CancelIrql> 멤버의 값이 현재 IRQL이 아닙니다. 일반적으로 이 오류는 드라이버가 IoAcquireCancelSpinLock 에 대한 최신 호출에서 제공한 IRQL을 사용하여 IoReleaseCancelSpinLock을 호출하지 않을 때 발생합니다.

루틴 취소 에 대한 자세한 내용은 IRP 취소를 참조하세요. 이 경고와 관련된 자세한 내용은 IRP를 취소할 때 고려할 사항을 참조하세요.

예제

다음 코드 예제에서는 이 경고를 유도합니다.

IoReleaseCancelSpinLock(PASSIVE_LEVEL);

다음 코드 예제에서는 이 경고를 방지합니다.

IoReleaseCancelSpinLock(Irp->CancelIrql);