Regla BufAfterReqCompletedReadA (kmdf)

La regla BufAfterReqCompletedReadA especifica que dentro de la función de devolución de llamada EvtIoRead , no se puede tener acceso al búfer de solicitud de E/S recuperado después de que se complete la solicitud de E/S. Hay 14 DDIs que sirven como posibles métodos de acceso al búfer.

Dentro de la función de devolución de llamada EvtIoRead del controlador, no se puede obtener acceso al búfer de solicitud recuperado llamando a WdfRequestRetrieveOutputBuffer o WdfRequestRetrieveUnsafeUserOutputBuffer después de llamar a WdfRequestComplete, WdfRequestCompleteWithInformation o WdfRequestCompleteWithPriorityBoost en la solicitud de E/S.

Modelo de controlador: KMDF

Cómo probar

En tiempo de compilación

Ejecute el comprobador de controladores estáticos y especifique la regla BufAfterReqCompletedReadA .

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

WDF_MEMORY_DESCRIPTOR_INIT_BUFFERWdfMemoryAssignBufferWdfMemoryCopyFromBufferWdfMemoryCopyToBufferWdfMemoryCreatePreallocatedWdfRequestCompleteWdfRequestCompleteWithInformationWdfRequestCompleteWithPriorityBoostWdfRequestRetrieveOutputBufferWdfRequestRetrieveUnsafeUserOutputBufferRtlCompareMemoryRtlMoveMemoryRtlZeroMemoryZwReadFile