Freigeben über


WdfDmaTransactionGetCurrentDmaTransferLength-Funktion (wdfdmatransaction.h)

[Gilt nur für KMDF]

Die WdfDmaTransactionGetCurrentDmaTransferLength-Methode gibt die Größe der aktuellen DMA-Übertragung zurück.

Syntax

size_t WdfDmaTransactionGetCurrentDmaTransferLength(
  [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

WdfDmaTransactionGetCurrentDmaTransferLength gibt die Länge der aktuellen DMA-Übertragung zurück.

Eine Fehlerüberprüfung tritt auf, wenn der Treiber ein ungültiges Objekthandle bereitstellt.

Hinweise

Wenn ein Treiber WdfDmaTransactionGetCurrentDmaTransferLength aufruft, muss er dies tun, bevor er eine der Übertragungsabschlussroutinen aufruft, z. B. WdfDmaTransactionDmaCompleted, um die aktuelle DMA-Übertragung abzuschließen. In der Regel rufen Treiber WdfDmaTransactionGetCurrentDmaTransferLength aus einer EvtInterruptDpc-Ereignisrückruffunktion auf.

In der Regel ruft ein Treiber WdfDmaTransactionGetCurrentDmaTransferLength für Geräte auf, die DMA-Restübertragungslängen (d. h. byteanzahl der nicht übertragenen Daten) melden. Durch Subtrahieren der Restübertragungslänge vom Wert, den WdfDmaTransactionGetCurrentDmaTransferLength zurückgegeben hat, kann der Treiber die tatsächliche Übertragungslänge bestimmen. Der Treiber ruft dann WdfDmaTransactionDmaCompletedWithLength auf, um dem Framework mitzuteilen, wie viele Bytes das Gerät tatsächlich übertragen hat.

Weitere Informationen zu vollständigen DMA-Übertragungen finden Sie unter Abschließen einer DMA-Übertragung.

Beispiele

Ein Codebeispiel, das WdfDmaTransactionGetCurrentDmaTransferLength verwendet, finden Sie unter WdfDmaTransactionDmaCompletedWithLength.

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)

Weitere Informationen

EvtInterruptDpc

WdfDmaTransactionCreate

WdfDmaTransactionDmaCompleted

WdfDmaTransactionDmaCompletedWithLength