Funzione WdfDmaTransactionSetTransferCompleteCallback (wdfdmatransaction.h)

[Si applica solo a KMDF]

Il metodo WdfDmaTransactionSetTransferCompleteCallback registra una funzione di callback dell'evento di completamento del trasferimento per una transazione DMA in modalità sistema.

Sintassi

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

Parametri

[in] DmaTransaction

Handle a un oggetto transazione DMA inizializzato per cui impostare o cancellare il callback di completamento del trasferimento.

[in, optional] DmaCompletionRoutine

Puntatore alla funzione di callback dell'evento EvtDmaTransactionDmaTransferComplete del driver o NULL per cancellare una funzione di callback impostata in precedenza.

[in, optional] DmaCompletionContext

Puntatore a un buffer contenente il contesto specificato dal driver da fornire alla funzione di callback dell'evento EvtDmaTransactionDmaTransferComplete o NULL del driver.

Valore restituito

nessuno

Osservazioni

Il driver chiama questo metodo per impostare una routine di completamento che il framework chiama dopo che il controller DMA di sistema completa un trasferimento. Il framework chiama il callback EvtDmaTransactionDmaTransferComplete una sola volta per ogni trasferimento nella transazione.

In genere dall'interno di una funzione di callback dell'evento di I/O, un driver esegue i passaggi seguenti, in questo ordine:

  1. Chiama WdfDmaTransactionInitializeUsingRequest, WdfDmaTransactionInitialize o WdfDmaTransactionInitializeUsingOffset per inizializzare l'oggetto transazioni.
  2. Chiama WdfDmaTransactionSetTransferCompleteCallback nell'oggetto transazione.
  3. Chiama WdfDmaTransactionExecute.
Se il driver ha specificato una funzione di callback dell'evento EvtDmaTransactionDmaTransferComplete chiamando WdfDmaTransactionSetTransferCompleteCallback e il driver chiama successivamente WdfDmaTransactionRelease, il callback viene cancellato.

WdfDmaTransactionSetTransferCompleteCallback può essere usato solo con un enabler DMA che specifica un profilo DMA in modalità sistema.

Se il driver chiama questo metodo in un sistema operativo precedente a Windows 8, il verificatore del framework segnala un errore.

Requisiti

Requisito Valore
Client minimo supportato Windows 8
Piattaforma di destinazione Universale
Versione KMDF minima 1.11
Intestazione wdfdmatransaction.h (include Wdf.h)
Libreria Wdf01000.sys (vedere Framework Library Versioning).
IRQL <=DISPATCH_LEVEL
Regole di conformità DDI DriverCreate(kmdf)

Vedi anche

EvtDmaTransactionDmaTransferComplete

WdfDmaTransactionRelease