Freigeben über


WdfDmaTransactionSetTransferCompleteCallback-Funktion (wdfdmatransaction.h)

[Gilt nur für KMDF]

Die WdfDmaTransactionSetTransferCompleteCallback-Methode registriert eine Rückruffunktion des Übertragungsvervollständigungsereignisses für eine DMA-Transaktion im Systemmodus.

Syntax

void WdfDmaTransactionSetTransferCompleteCallback(
  [in]           WDFDMATRANSACTION                             DmaTransaction,
  [in, optional] PFN_WDF_DMA_TRANSACTION_DMA_TRANSFER_COMPLETE DmaCompletionRoutine,
  [in, optional] PVOID                                         DmaCompletionContext
);

Parameter

[in] DmaTransaction

Ein Handle für ein initialisiertes DMA-Transaktionsobjekt, für das der Rückruf für die Vervollständigung der Übertragung festgelegt oder gelöscht werden soll.

[in, optional] DmaCompletionRoutine

Ein Zeiger auf die EvtDmaTransactionDmaTransferComplete-Ereignisrückruffunktion des Treibers oder NULL, um eine zuvor festgelegte Rückruffunktion zu löschen.

[in, optional] DmaCompletionContext

Ein Zeiger auf einen Puffer, der den vom Treiber angegebenen Kontext enthält, der für die Rückruffunktion evtDmaTransactionDmaTransferComplete des Treibers (NULL) bereitgestellt werden soll.

Rückgabewert

Keine

Bemerkungen

Der Treiber ruft diese Methode auf, um eine Vervollständigungsroutine festzulegen, die das Framework aufruft, nachdem der System-DMA-Controller eine Übertragung abgeschlossen hat. Das Framework ruft den EvtDmaTransactionDmaTransferComplete-Rückruf des Treibers einmal für jede Übertragung in der Transaktion auf.

In der Regel führt ein Treiber in einer E/A-Warteschlangenereignisrückruffunktion die folgenden Schritte in dieser Reihenfolge aus:

  1. Ruft WdfDmaTransactionInitializeUsingRequest, WdfDmaTransactionInitialize oder WdfDmaTransactionInitializeUsingOffset auf, um das Transaktionsobjekt zu initialisieren.
  2. Ruft WdfDmaTransactionSetTransferCompleteCallback für das Transaktionsobjekt auf.
  3. Ruft WdfDmaTransactionExecute auf.
Wenn der Treiber eine EvtDmaTransactionDmaTransferComplete-Ereignisrückruffunktion angegeben hat, indem er WdfDmaTransactionSetTransferCompleteCallback aufruft und der Treiber anschließend WdfDmaTransactionRelease aufruft, wird der Rückruf gelöscht.

WdfDmaTransactionSetTransferCompleteCallback kann nur mit einem DMA-Enabler verwendet werden, der ein DMA-Profil im Systemmodus angibt.

Wenn Ihr Treiber diese Methode unter einem Betriebssystem vor Windows 8 aufruft, meldet die Überprüfung des Frameworks einen Fehler.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows 8
Zielplattform Universell
KMDF-Mindestversion 1.11
Kopfzeile wdfdmatransaction.h (einschließen von Wdf.h)
Bibliothek Wdf01000.sys (siehe Versionierung der Frameworkbibliothek.)
IRQL <=DISPATCH_LEVEL
DDI-Complianceregeln DriverCreate(kmdf)

Weitere Informationen

EvtDmaTransactionDmaTransferComplete

WdfDmaTransactionRelease