Regla ReqNotCanceledLocal (kmdf)

La regla ReqNotCanceledLocal especifica que si una solicitud marcada como cancelable se completa en una función de devolución de llamada de cola de E/S predeterminada, se debe llamar al método WdfRequestUnmarkCancelable en la solicitud de E/S antes de finalizar. La solicitud de E/S debe completarse, a menos que se cancele la solicitud antes de llamar a WdfRequestUnmarkCancelable.

Si se completa una solicitud marcada como cancelable por WdfRequestMarkCancelable (llamando a WdfRequestComplete, WdfRequestCompleteWithInformation o WdfRequestCompleteWithPriorityBoost), se debe llamar al método WdfRequestUnmarkCancelable antes de que se complete la solicitud de E/S. La solicitud se puede completar a menos que el método WdfRequestUnmarkCancelable devuelva el estado igual a STATUS_CANCELLED.

Las funciones de devolución de llamada de cola de E/S predeterminadas para una solicitud son EvtIoDefault, EvtIoRead, EvtIoWrite, EvtIoDeviceControl, EvtIoInternalDeviceControl.

Modelo de controlador: KMDF

Cómo probar

En tiempo de compilación

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

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

WdfRequestCompleteWdfRequestCompleteWithInformationWdfRequestCompleteWithPriorityBoostWdfRequestMarkCancelableWdfRequestMarkCancelableExWdfRequestUnmarkCancelable