Regla StartIoCancel (wdm)

La regla StartIoCancel especifica que el controlador no debe llamar a IoSetStartIoAttributes con el parámetro NonCancelable establecido en FALSE antes de llamar a IoSetCancelRoutine con una rutina Cancel que no sea NULL.

Establecer el parámetro NonCancelable en FALSE antes de registrar la rutina Cancel puede dar lugar a una condición de carrera de cancelación.

Dado que la rutina Cancel de un controlador debe incluir una llamada a IoReleaseCancelSpinLock (para liberar el bloqueo de número que adquiere el Administrador de E/S antes de llamar a la rutina Cancelar ), considere la posibilidad de comprobar el controlador con la regla StartIoCancel y la regla CancelSpinLock .

Modelo de controlador: WDM

Cómo probar

En tiempo de compilación

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

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

IoSetCancelRoutineIoSetStartIoAttributes

Consulte también

CancelSpinLock