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) |