Compartir a través de


Regla MemAfterReqCompletedWriteA (kmdf)

La regla MemAfterReqCompletedWriteA especifica que dentro de la función de devolución de llamada EvtIoWrite , 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 EvtIoWrite del controlador, no se puede acceder al objeto de memoria del marco que se recuperó llamando al método WdfRequestRetrieveInputMemory después de llamar a WdfRequestComplete, WdfRequestCompleteWithInformation o WdfRequestCompleteWithPriorityBoost en la solicitud de E/S.

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

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 MemAfterReqCompletedWriteA .

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_HANDLEWdfMemoryAssignBufferWdfMemoryCopyFromBufferWdfMemoryCopyToBufferWdfMemoryGetBufferWdfObjectDeleteWdfObjectDereferenceWdfObjectReferenceWdfRequestCompleteWdfRequestCompleteWithInformationWdfRequestCompleteWithPriorityBoostWdfRetrieveInputMemory