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) |