다음을 통해 공유


IrpProcessing 규칙 집합(KMDF)

이러한 규칙을 사용하여 드라이버가 IRP(I/O 요청 패킷)를 올바르게 처리하는지 확인합니다.

섹션 내용

항목 설명

FwdIrpToIoQueueValid

규칙 FwdIrpToIoQueueValid는 드라이버가 EvtDeviceWdmIrpDispatch 콜백 또는 EvtDeviceWdmIrpPreprocess 콜백에서 WdfDeviceWdmDispatchIrpToIoQueue 메서드를 사용하여 I/O 큐에 IRP를 보내도록 지정합니다.

SetCompletionRoutineFromDispatch

SetCompletionRoutineFromDispatch 규칙은 드라이버가 EvtDeviceWdmIrpDispatch 콜백 함수에서 IRP의 완료 루틴을 지정하지 않는지 확인합니다.

MiniportOnlyWdmDevice

MiniportOnlyWdmDevice 규칙은 WDF 드라이버가 IoCreateDevice 및 IoCreateDeviceSecure 함수를 사용하여 WDM 디바이스 개체를 만들지 않도록 지정합니다. 이로 인해 누군가가 IRP를 WDM 디바이스로 보내려고 하면 컴퓨터가 충돌합니다. 디바이스의 IRP 디스패치 항목이 WDF 관련 항목으로 설정되었지만 프레임워크에서 WDF 디바이스를 만들지 않았기 때문입니다. 그러나 드라이버 디스패치 진입점이 설정되어 있지 않으므로 미니포트 드라이버는 DDI를 사용할 수 있습니다.

IrpProcessing 규칙 집합을 선택하려면

  1. Microsoft Visual Studio에서 드라이버 프로젝트(.vcxProj)를 선택합니다. 드라이버 메뉴에서 정적 드라이버 검증 도구 시작...을 클릭합니다.

  2. 규칙 탭을 클릭합니다. 규칙 집합에서 IrpProcessing을 선택합니다.

    Visual Studio 개발자 명령 프롬프트 창에서 기본 규칙 집합을 선택하려면 /검사 옵션을 사용하여 IrpProcessing.sdv지정합니다. 예시:

    msbuild /t:sdv /p:Inputs="/check:IrpProcessing.sdv" mydriver.VcxProj /p:Configuration="Win8 Release" /p:Platform=Win32
    

    자세한 내용은 정적 드라이버 검증 도구를 사용하여 드라이버정적 드라이버 검증 도구 명령(MSBuild)에서 결함을 찾는 방법을 참조하세요.