Compartir a través de


Conjunto de reglas de IrpProcessing (KMDF)

Use estas reglas para comprobar que el controlador procesa correctamente los paquetes de solicitud de E/S (IRP).

En esta sección

Tema Descripción

FwdIrpToIoQueueValid

La regla FwdIrpToIoQueueValid especifica que el controlador envía un IRP a una cola de E/S mediante el método WdfDeviceWdmDispatchIrpToIoQueue desde las devoluciones de llamada EvtDeviceWdmIrpDispatch o EvtDeviceWdmIrpPreprocess.

SetCompletionRoutineFromDispatch

La regla SetCompletionRoutineFromDispatch comprueba que el controlador no especifica una rutina de finalización en un IRP desde su función de devolución de llamada EvtDeviceWdmIrpDispatch.

MiniportOnlyWdmDevice

La regla MiniportOnlyWdmDevice especifica que los controladores WDF no deben usar las funciones IoCreateDevice ni IoCreateDeviceSecure para crear objetos de dispositivo WDM sin sistema operativo. Esto hará que el equipo se bloquee si alguien intenta enviar un IRP al dispositivo WDM. Esto se debe a que las entradas de envío IRP del dispositivo se establecen en entradas específicas de WDF, pero el marco no ha creado un dispositivo WDF. Sin embargo, los controladores de minipuerto pueden usar los DDIs porque los puntos de entrada de distribución del controlador no están establecidos para ellos.

Para seleccionar el conjunto de reglas IrpProcessing

  1. Seleccione el proyecto de controlador (.vcxProj) en Microsoft Visual Studio. En el menú Controlador, haga clic en Iniciar comprobador de controladores estáticos....

  2. Haga clic en la pestaña Reglas. En Conjuntos de reglas, seleccione IrpProcessing.

    Para seleccionar el conjunto de reglas predeterminado en una ventana del símbolo del sistema para desarrolladores de Visual Studio, especifique IrpProcessing.sdv con la opción /check. Por ejemplo:

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

    Para obtener más información, consulte Uso del comprobador de controladores estáticos para buscar defectos en controladores y Comandos de comprobador de controladores estáticos (MSBuild).