Regra MdlAfterReqCompletedWriteA (kmdf)
A regra MdlAfterReqCompletedWriteA especifica que, dentro da função de retorno de chamada EvtIoWrite , o objeto MDL (lista de descritores de memória) recuperado não pode ser acessado após a conclusão da solicitação de E/S.
Dentro da função de retorno de chamada EvtIoWrite do driver para a fila de E/S de um dispositivo, o buffer de solicitação que foi recuperado chamando o método WdfRequestRetrieveInputWdmMdl não pode ser acessado depois de chamar WdfRequestComplete, WdfRequestCompleteWithInformation ou WdfRequestCompleteWithPriorityBoost na solicitação de E/S.
Essa regra considera as seguintes funções de acesso MDL:
WDF_MEMORY_DESCRIPTOR_INIT_MDLMmGetMdlByteCountMmGetSystemAddressForMdlSafeMmGetMdlVirtualAddressIoBuildPartialMdl (primeiro e segundo parâmetro) KeFlushIoBuffersMmGetMdlPfnArrayMmGetMdlByteOffsetMmPrepareMdlForReuseWdfDmaTransactionInitialize
Modelo de driver: KMDF
Como testar
Em tempo de compilação |
---|
Execute o Verificador de Driver Estático e especifique a regra MdlAfterReqCompletedWriteA . 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_MDLWdfDmaTransactionInitializeWdfRequestCompleteWdfRequestCompleteWithInformationWdfRequestCompleteWithPriorityBoostWdfRequestRetrieveInputWdmMdlIoBuildPartialMdlKeFlushIoBuffersMmGetMdlByteCountMmGetMdlByteOffsetMmGetMdlPfnArrayMmGetMdlVirtualAddressMmGetSystemAddressForMdlSafeMmPrepareMdlForReuse