Compartir a través de


Regla MemAfterReqCompletedReadA (kmdf)

La regla MemAfterReqCompletedReadA especifica que dentro de la función de devolución de llamada EvtIoRead , no se puede tener acceso al objeto de memoria del marco una vez completada la solicitud de E/S.

Dentro de la función de devolución de llamada EvtIoRead del controlador, no se puede tener acceso al objeto de memoria del marco que se recuperó mediante una llamada al método WdfRequestRetrieveOutputMemory después de llamar a WdfRequestCompleteWithInformation o WdfRequestCompleteWithPriorityBoost en la solicitud de E/S.

Esta regla tiene en cuenta los siguientes métodos de acceso a memoria:

WdfMemoryGetBufferWDF_MEMORY_DESCRIPTOR_INIT_HANDLEWdfMemoryAssignBufferWdfMemoryCopyToBufferWdfMemoryCopyFromBufferWdfObjectReferenceWdfObjectDereferenceWdfObjectDelete

Modelo de controlador: KMDF

Cómo probar

En tiempo de compilación

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

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_HANDLEWdfMemoryAssignBufferWdfMemoryCopyFromBufferWdfMemoryCopyToBufferWdfMemoryGetBufferWdfObjectDeleteWdfObjectDereferenceWdfObjectReferenceWdfRequestCompleteWdfRequestCompleteWithInformationWdfRequestCompleteWithPriorityBoostWdfRequestRetrieveOutputMemory