Nota
L'accesso a questa pagina richiede l'autorizzazione. Puoi provare ad accedere o a cambiare directory.
L'accesso a questa pagina richiede l'autorizzazione. Puoi provare a cambiare directory.
[Si applica solo a KMDF]
Dopo che un driver elabora tutti i trasferimenti DMA associati a una transazione DMA, il driver può eliminare o riutilizzare l'oggetto transazione. In genere, la funzione di callback del driver EvtInterruptDpc elimina l'oggetto della transazione chiamando WdfObjectDelete. Successivamente, quando il driver crea una nuova transazione DMA, chiama WdfDmaTransactionCreate per creare un nuovo oggetto transazione.
Tuttavia, a volte è utile che il driver riutilizzi gli oggetti transazione. In questi casi, il driver chiama WdfDmaTransactionRelease anziché WdfObjectDelete.
Si supponga, ad esempio, che il driver e il dispositivo funzionino quando le risorse di memoria del computer sono basse. Per gestire questo problema di memoria, il driver può usare la procedura seguente:
Il driver può chiamare la funzione di callback EvtDriverDeviceAdd WdfDmaTransactionCreate per creare uno o più oggetti transazione. Il driver salva gli handle a questi oggetti transazione.
Ogni volta che il driver è pronto per creare e inizializzare una nuova transazione, chiama WdfDmaTransactionCreare. Se questo metodo restituisce STATUS_INSUFFICIENT_RESOURCES, il driver può utilizzare uno degli oggetti transazione archiviati.
Se il driver usa uno degli oggetti transazione archiviati, deve riutilizzare l'oggetto transazione, anziché eliminarlo, al termine della transazione. Il driver configura l'oggetto transazione da riutilizzare chiamando WdfDmaTransactionRelease anziché WdfObjectDelete.
L'esempio PLX9x5x riutilizza gli oggetti di transazione DMA.