EVT_WDF_PROGRAM_DMA Rückruffunktion (wdfdmatransaction.h)

[Gilt nur für KMDF]

Die EvtProgramDma-Ereignisrückruffunktion eines frameworkbasierten Treibers programmiert ein angegebenes Gerät, um einen DMA-Übertragungsvorgang auszuführen.

Syntax

EVT_WDF_PROGRAM_DMA EvtWdfProgramDma;

BOOLEAN EvtWdfProgramDma(
  [in] WDFDMATRANSACTION Transaction,
  [in] WDFDEVICE Device,
  [in] WDFCONTEXT Context,
  [in] WDF_DMA_DIRECTION Direction,
  [in] PSCATTER_GATHER_LIST SgList
)
{...}

Parameter

[in] Transaction

Ein Handle für das DMA-Transaktionsobjekt, das die aktuelle DMA-Transaktion darstellt.

[in] Device

Ein Handle für ein Framework-Geräteobjekt.

[in] Context

Der Kontextzeiger, den der Treiber in einem vorherigen Aufruf von WdfDmaTransactionExecute angegeben hat.

[in] Direction

Ein WDF_DMA_DIRECTION typisierter Wert, der die Richtung des DMA-Übertragungsvorgangs angibt.

[in] SgList

Ein Zeiger auf eine SCATTER_GATHER_LIST-Struktur .

Rückgabewert

Die EvtProgramDma-Rückruffunktion muss TRUE zurückgeben, wenn sie den DMA-Übertragungsvorgang erfolgreich startet. Andernfalls muss diese Rückruffunktion FALSE zurückgeben. Allerdings ignoriert das Framework derzeit den Rückgabewert.

Hinweise

Treiber registrieren eine EvtProgramDma-Ereignisrückruffunktion , indem sie WdfDmaTransactionInitializeUsingRequest oder WdfDmaTransactionInitialize aufrufen.

Das Framework ruft die EvtProgramDma-Ereignisrückruffunktion eines Treibers auf, wenn eine DMA-Übertragung verfügbar ist. Die Rückruffunktion muss die Hardware programmieren, um die Übertragung zu starten.

Der Treiber darf die der Transaktion zugeordneten Datenpuffer erst bearbeiten, nachdem WdfDmaTransactionDmaCompletedXxx TRUE zurückgegeben hat.

Bei übertragungen einzelner Pakete enthält die Scatter/Gather-Liste, auf die der SgList-Parameter verweist, ein einzelnes Element.

Weitere Informationen zu dieser Rückruffunktion finden Sie unter Programmieren von DMA-Hardware.

Anforderungen

Anforderung Wert
Zielplattform Universell
KMDF-Mindestversion 1.0
Kopfzeile wdfdmatransaction.h (include Wdf.h)
IRQL DISPATCH_LEVEL

Weitere Informationen

WdfDmaTransactionExecute

WdfDmaTransactionInitialize

WdfDmaTransactionInitializeUsingRequest