Regra MemAfterReqCompletedReadA (kmdf)
A regra MemAfterReqCompletedReadA especifica que, dentro da função de retorno de chamada EvtIoRead , o objeto de memória da estrutura não pode ser acessado após a conclusão da solicitação de E/S.
Dentro da função de retorno de chamada EvtIoRead do driver, o objeto de memória da estrutura recuperado chamando o método WdfRequestRetrieveOutputMemory não pode ser acessado depois de chamar WdfRequestComplete, WdfRequestCompleteWithInformation ou WdfRequestCompleteWithPriorityBoost na solicitação de E/S.
Essa regra considera os seguintes métodos de acesso à memória:
WdfMemoryGetBufferWDF_MEMORY_DESCRIPTOR_INIT_HANDLEWdfMemoryAssignBufferWdfMemoryCopyToBufferWdfMemoryCopyFromBufferWdfObjectReferenceWdfObjectDereferenceWdfObjectDelete
Modelo de driver: KMDF
Como testar
Em tempo de compilação |
---|
Execute o Verificador de Driver Estático e especifique a regra MemAfterReqCompletedReadA . Use as seguintes etapas para executar uma análise do código:
Para obter mais informações, consulte Usando o Verificador de Driver Estático para localizar defeitos em drivers. |
Aplica-se a
WDF_MEMORY_DESCRIPTOR_INIT_HANDLEWdfMemoryAssignBufferWdfMemoryCopyFromBufferWdfMemoryCopyToBufferWdfMemoryGetBufferWdfObjectDeleteWdfObjectDereferenceWdfObjectReferenceWdfRequestCompleteWdfRequestCompleteWithInformationWdfRequestCompleteWithPriorityBoostWdfRequestRetrieveOutputMemory