Função WdfDmaTransactionGetCurrentDmaTransferLength (wdfdmatransaction.h)

[Aplica-se somente ao KMDF]

O método WdfDmaTransactionGetCurrentDmaTransferLength retorna o tamanho da transferência de DMA atual.

Sintaxe

size_t WdfDmaTransactionGetCurrentDmaTransferLength(
  [in] WDFDMATRANSACTION DmaTransaction
);

Parâmetros

[in] DmaTransaction

Um identificador para um objeto de transação DMA que o driver obteve de uma chamada anterior para WdfDmaTransactionCreate.

Retornar valor

WdfDmaTransactionGetCurrentDmaTransferLength retorna o comprimento da transferência de DMA atual.

Um bug marcar ocorrerá se o driver fornecer um identificador de objeto inválido.

Comentários

Se um driver chamar WdfDmaTransactionGetCurrentDmaTransferLength, ele deverá fazer isso antes de chamar uma das rotinas de conclusão de transferência, como WdfDmaTransactionDmaCompleted, para concluir a transferência de DMA atual. Normalmente, os drivers chamam WdfDmaTransactionGetCurrentDmaTransferLength de dentro de uma função de retorno de chamada de evento EvtInterruptDpc .

Normalmente, um driver chama WdfDmaTransactionGetCurrentDmaTransferLength para dispositivos que relatam comprimentos de transferência de DMA residuais (ou seja, contagens de bytes de dados que não foram transferidos). Ao subtrair o comprimento de transferência residual do valor que WdfDmaTransactionGetCurrentDmaTransferLength retornou, o driver pode determinar o comprimento real da transferência. Em seguida, o driver chama WdfDmaTransactionDmaCompletedWithLength para que a estrutura saiba o número de bytes que o dispositivo realmente transferiu.

Para obter mais informações sobre transferências de DMA completas, consulte Concluindo uma transferência de DMA.

Exemplos

Para obter um exemplo de código que usa WdfDmaTransactionGetCurrentDmaTransferLength, consulte WdfDmaTransactionDmaCompletedWithLength.

Requisitos

Requisito Valor
Plataforma de Destino Universal
Versão mínima do KMDF 1.0
Cabeçalho wdfdmatransaction.h (inclua Wdf.h)
Biblioteca Wdf01000.sys (consulte Controle de versão da biblioteca de estrutura.)
IRQL <=DISPATCH_LEVEL
Regras de conformidade de DDI DriverCreate(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf)

Confira também

EvtInterruptDpc

WdfDmaTransactionCreate

WdfDmaTransactionDmaCompleted

WdfDmaTransactionDmaCompletedWithLength