Freigeben über


EVT_WDF_PROGRAM_DMA Rückruffunktion (wdfdmatransaction.h)

[Gilt nur für KMDF]

Ein frameworkbasierter Treiber EvtProgramDma Ereignisrückruffunktion 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
)
{...}

Die Parameter

[in] Transaction

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

[in] Device

Ein Handle zu einem Framework-Geräteobjekt.

[in] Context

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

[in] Direction

Ein WDF_DMA_DIRECTION-typed-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 der DMA-Übertragungsvorgang erfolgreich gestartet wird. Andernfalls muss diese Rückruffunktion FALSE-zurückgeben. Das Framework ignoriert derzeit jedoch den Rückgabewert.

Bemerkungen

Treiber registrieren eine EvtProgramDma Ereignisrückruffunktion durch Aufrufen WdfDmaTransactionInitializeUsingRequest oder WdfDmaTransactionInitialize.

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 mit der Transaktion verknüpften Datenpuffer erst bearbeiten, nachdem WdfDmaTransactionDmaCompletedXxx- TRUE zurückgegeben hat.

Bei Einzelnen Paketübertragungen enthält die Punkt-/Gather-Liste, auf die der SgList Parameter verweist, ein einzelnes Element.

Weitere Informationen zu dieser Rückruffunktion finden Sie unter Programming DMA Hardware.

Anforderungen

Anforderung Wert
Zielplattform universell
Minimale KMDF-Version 1.0
Kopfzeile wdfdmatransaction.h (include Wdf.h)
IRQL DISPATCH_LEVEL

Siehe auch

WdfDmaTransactionExecute

WdfDmaTransactionInitialize

WdfDmaTransactionInitializeUsingRequest