WdfDmaTransactionRelease-Funktion (wdfdmatransaction.h)
[Gilt nur für KMDF]
Die WdfDmaTransactionRelease-Methode beendet eine angegebene DMA-Transaktion, ohne das zugeordnete DMA-Transaktionsobjekt zu löschen.
Syntax
NTSTATUS WdfDmaTransactionRelease(
[in] WDFDMATRANSACTION DmaTransaction
);
Parameter
[in] DmaTransaction
Ein Handle für ein DMA-Transaktionsobjekt, das der Treiber aus einem vorherigen Aufruf von WdfDmaTransactionCreate abgerufen hat.
Rückgabewert
WdfDmaTransactionRelease gibt STATUS_SUCCESS zurück, wenn der Vorgang erfolgreich ist. Andernfalls gibt die -Methode möglicherweise den folgenden Wert zurück:
Rückgabecode | Beschreibung |
---|---|
|
Der Treiber hat das Transaktionsobjekt, das vom DmaTransaction-Parameter angegeben wurde, bereits freigegeben oder gelöscht. |
Diese Methode kann auch andere NTSTATUS-Werte zurückgeben.
Eine Fehlerüberprüfung tritt auf, wenn der Treiber ein ungültiges Objekthandle bereitstellt.
Hinweise
Die WdfDmaTransactionRelease-Methode leert Übertragungspuffer und gibt alle Systemressourcen frei, die der DMA-Transaktion zugeordnet sind. Das Transaktionsobjekt wird nicht gelöscht und kann wiederverwendet werden. Weitere Informationen zur Wiederverwendung von Transaktionsobjekten finden Sie unter Wiederverwenden von DMA-Transaktionsobjekten.
Wenn WdfDmaTransactionInitializeXxx erfolgreich zurückgibt, WdfDmaTransactionExecute jedoch einen Fehlerwert zurückgibt, muss Ihr Treiber WdfDmaTransactionRelease aufrufen.
Beispiele
Im folgenden Codebeispiel wird die DMA-Transaktion beendet, die das angegebene DMA-Transaktionsobjekt darstellt, aber das DMA-Transaktionsobjekt wird nicht gelöscht.
NTSTATUS status;
status = WdfDmaTransactionRelease(dmaTransaction);
Anforderungen
Anforderung | Wert |
---|---|
Zielplattform | Universell |
KMDF-Mindestversion | 1.0 |
Kopfzeile | wdfdmatransaction.h (include Wdf.h) |
Bibliothek | Wdf01000.sys (siehe Versionsverwaltung der Frameworkbibliothek).) |
IRQL | <=DISPATCH_LEVEL |
DDI-Complianceregeln | DriverCreate(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf) |