Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
[Aplica-se apenas ao KMDF]
Depois que um driver processa todas as transferências DMA associadas a uma transação DMA, o driver pode excluir ou reutilizar o objeto de transação. Normalmente, a função de retorno de chamada EvtInterruptDpc do driver exclui o objeto de transação (chamando WdfObjectDelete). Posteriormente, quando o driver cria uma nova transação DMA, ele chama WdfDmaTransactionCreate para criar um novo objeto de transação.
No entanto, às vezes é benéfico para o driver reutilizar objetos de transação. Nesses casos, o driver chama WdfDmaTransactionRelease em vez de WdfObjectDelete.
Por exemplo, suponha que o driver e o dispositivo devem operar quando os recursos de memória do computador estão baixos. Para lidar com esse problema de memória, o driver pode usar o seguinte procedimento:
A função de retorno de chamada EvtDriverDeviceAdd do driver pode chamar WdfDmaTransactionCreate para criar um ou mais objetos de transação. O driver salva as alças para esses objetos de transação.
Sempre que o driver está pronto para criar e inicializar uma nova transação, ele chama WdfDmaTransactionCreate. Se esse método retornar STATUS_INSUFFICIENT_RESOURCES, o driver pode usar um dos objetos de transação armazenados.
Se o driver usa um de seus objetos de transação armazenados, ele deve reutilizar o objeto de transação, em vez de excluí-lo, quando a transação for concluída. O driver configura o objeto de transação para reutilização chamando WdfDmaTransactionRelease em vez de WdfObjectDelete.
O exemplo PLX9x5x reutiliza objetos de transação DMA.