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 |
---|---|
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. |
|
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. |
|
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
Seleccione el proyecto de controlador (.vcxProj) en Microsoft Visual Studio. En el menú Controlador, haga clic en Iniciar comprobador de controladores estáticos....
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).