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.
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
)
{...}
[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 .
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.
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.
Anforderung | Wert |
---|---|
Zielplattform | Universell |
KMDF-Mindestversion | 1.0 |
Kopfzeile | wdfdmatransaction.h (include Wdf.h) |
IRQL | DISPATCH_LEVEL |