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:
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