Regla MarkingQueuedIrps (wdm)

La regla MarkingQueuedIrps especifica que el controlador llama a IoMarkIrpPending para un IRP que solo requiere un procesamiento adicional mientras mantiene un bloqueo de número. Esta regla solo se aplica cuando el controlador agrega el IRP a una cola administrada por controladores.

En concreto, el controlador infringe esta regla solo cuando se producen todos los eventos siguientes.

Los controladores deben llamar a IoMarkIrpPending solo para un IRP en cola mientras mantiene un bloqueo de número. De lo contrario, se podría quitar de la cola un IRP, completarse con otra rutina de controlador y liberarse por el sistema antes de que se produzca la llamada a IoMarkIrpPending , lo que provoca un bloqueo.

Para obtener más información, consulte Sincronización de la cancelación de IRP.

Modelo de controlador: WDM

Cómo probar

En tiempo de compilación

Ejecute el Comprobador de controladores estáticos y especifique la regla MarkingQueuedIrps .

Usa los pasos siguientes para ejecutar un análisis de tu código:
  1. Prepara el código (usa declaraciones de tipos de rol).
  2. Ejecuta el comprobador de controlador estático.
  3. Consulta y analiza los resultados.

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

Se aplica a

InsertHeadListIoCallDriverIoMarkIrpPendingKeAcquireInStackQueuedSpinLockKeAcquireSpinLockKeInsertByKeyDeviceQueueKeInsertDeviceQueueKeInsertQueue KeInsertQueueDpcKeReleaseInStackQueuedSpinLockKeReleaseSpinLockPoCallDriverRemoveHeadList