Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
[Alleen van toepassing op KMDF]
Nadat een stuurprogramma alle DMA-overdrachten verwerkt die zijn gekoppeld aan een DMA-transactie, kan het stuurprogramma het transactieobject verwijderen of opnieuw gebruiken. Normaal gesproken verwijdert de EvtInterruptDpc callback-functie het transactieobject (door WdfObjectDeleteaan te roepen). Wanneer het stuurprogramma vervolgens een nieuwe DMA-transactie maakt, wordt WdfDmaTransactionCreate aangeroepen om een nieuw transactieobject te maken.
Soms is het echter nuttig voor het stuurprogramma om transactieobjecten opnieuw te gebruiken. In dergelijke gevallen roept het stuurprogramma WdfDmaTransactionRelease- aan in plaats van WdfObjectDelete-.
Stel dat uw stuurprogramma en apparaat moeten werken wanneer de geheugenbronnen van de computer laag zijn. Om dit geheugenprobleem op te lossen, kan uw stuurprogramma de volgende procedure gebruiken:
De EvtDriverDeviceAdd callback-functie van het stuurprogramma kan WdfDmaTransactionCreate aanroepen om een of meer transactieobjecten te maken. Het besturingsprogramma slaat de referenties op voor deze transactieobjecten.
Telkens wanneer het stuurprogramma klaar is om een nieuwe transactie te maken en te initialiseren, wordt WdfDmaTransactionCreateaangeroepen. Als deze methode STATUS_INSUFFICIENT_RESOURCES retourneert, kan het stuurprogramma een van de opgeslagen transactieobjecten gebruiken.
Als het stuurprogramma een van de opgeslagen transactieobjecten gebruikt, moet het transactieobject opnieuw worden gebruikt in plaats van het object te verwijderen wanneer de transactie is voltooid. Het stuurprogramma stelt het transactieobject in voor opnieuw gebruik door WdfDmaTransactionRelease- aan te roepen in plaats van WdfObjectDelete-.
De PLX9x5x voorbeeld gebruikt DMA-transactieobjecten opnieuw.