Compartilhar via


Função WdfDmaTransactionSetTransferCompleteCallback (wdfdmatransaction.h)

[Aplica-se somente ao KMDF]

O método WdfDmaTransactionSetTransferCompleteCallback registra uma função de retorno de chamada de evento de conclusão de transferência para uma transação de DMA no modo de sistema.

Sintaxe

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

Parâmetros

[in] DmaTransaction

Um identificador para um objeto de transação DMA inicializado para o qual definir ou limpar o retorno de chamada de conclusão de transferência.

[in, optional] DmaCompletionRoutine

Um ponteiro para a função de retorno de chamada de evento EvtDmaTransactionDmaTransferComplete do driver ou NULL para limpar uma função de retorno de chamada definida anteriormente.

[in, optional] DmaCompletionContext

Um ponteiro para um buffer que contém o contexto especificado pelo driver a ser fornecido à função de retorno de chamada de evento EvtDmaTransactionDmaTransferComplete do driver ou NULL.

Retornar valor

Nenhum

Comentários

O driver chama esse método para definir uma rotina de conclusão que a estrutura chama depois que o controlador de DMA do sistema conclui uma transferência. A estrutura chama o retorno de chamada EvtDmaTransactionDmaTransferComplete do driver uma vez para cada transferência na transação.

Normalmente, de dentro de uma função de retorno de chamada de evento de fila de E/S, um driver executa as seguintes etapas, nesta ordem:

  1. Chama WdfDmaTransactionInitializeUsingRequest, WdfDmaTransactionInitialize ou WdfDmaTransactionInitializeUsingOffset para inicializar o objeto de transação.
  2. Chama WdfDmaTransactionSetTransferCompleteCallback no objeto de transação.
  3. Chama WdfDmaTransactionExecute.
Se o driver tiver especificado uma função de retorno de chamada de evento EvtDmaTransactionDmaTransferComplete chamando WdfDmaTransactionSetTransferCompleteCallback e o driver chamar WdfDmaTransactionRelease posteriormente, o retorno de chamada será limpo.

WdfDmaTransactionSetTransferCompleteCallback só pode ser usado com um habilitador de DMA que especifica um perfil de DMA no modo de sistema.

Se o driver chamar esse método em um sistema operacional anterior a Windows 8, o verificador da estrutura relatará um erro.

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows 8
Plataforma de Destino Universal
Versão mínima do KMDF 1.11
Cabeçalho wdfdmatransaction.h (include Wdf.h)
Biblioteca Wdf01000.sys (consulte Controle de versão da biblioteca de estrutura.)
IRQL <=DISPATCH_LEVEL
Regras de conformidade da DDI DriverCreate(kmdf)

Confira também

EvtDmaTransactionDmaTransferComplete

WdfDmaTransactionRelease