Regla MarkingInterlockedQueuedIrps (wdm)

La regla MarkingInterlockedQueuedIrps especifica que el controlador marca correctamente el IRP como pendiente antes de ponerla en cola de forma interbloqueada para su posterior procesamiento.

Esta regla también especifica que el controlador llama a IoMarkIrpPending y marca correctamente el IRP como pendiente antes de llamar a cualquiera de las siguientes funciones para agregar el IRP a una cola interbloqueada:

Los controladores deben llamar a IoMarkIrpPending antes de agregar un IRP que requiera más procesamiento en una cola interbloqueada. De lo contrario, un IRP se podría poner en cola, completado por otra rutina de controlador y liberado 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 MarkingInterlockedQueuedIrps .

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, vea Usar comprobador de controladores estáticos para buscar defectos en controladores.

Se aplica a

ExInterlockedInsertHeadListExInterlockedInsertTailListExInterlockedPushEntryListIoMarkIrpPendingRemoveHeadList

Consulte también

MarkIrpPendingSynchronizing IRP Cancellation