Função WdfDmaTransactionSetMaximumLength (wdfdmatransaction.h)
[Aplica-se somente ao KMDF]
O método WdfDmaTransactionSetMaximumLength define o comprimento máximo para as transferências de DMA associadas a uma transação DMA especificada.
Sintaxe
void WdfDmaTransactionSetMaximumLength(
[in] WDFDMATRANSACTION DmaTransaction,
[in] size_t MaximumLength
);
Parâmetros
[in] DmaTransaction
Um identificador para um objeto de transação DMA que o driver obteve de uma chamada anterior para WdfDmaTransactionCreate.
[in] MaximumLength
O tamanho máximo, em bytes, que o dispositivo pode manipular em uma única operação de transferência de DMA. Se o driver precisar ser executado em versões dos sistemas operacionais Microsoft Windows que dão suporte a um máximo de 16 registros de mapa , MaximumLength deve ser menor que 65536.
O valor MaximumLength aplica-se somente à transação DMA especificada, da seguinte maneira:
- Se o valor especificado for menor que o valor padrão especificado pelo driver em sua estrutura de WDF_DMA_ENABLER_CONFIG, o valor especificado substituirá o valor padrão.
- Se o valor especificado for maior que o valor padrão, o valor especificado será ignorado.
Valor de retorno
Nenhum
Observações
Uma verificação de bug ocorre se o driver fornece um identificador de objeto inválido.
O driver deve inicializar a transação DMA antes de chamar WdfDmaTransactionSetMaximumLength.
Para obter informações sobre como inicializar uma transação de DMA, consulte Criando e inicializando uma transação de DMA.
Exemplos
O exemplo de código a seguir define o comprimento máximo de transferência para um valor definido pelo driver para uma transação de DMA especificada.
WdfDmaTransactionSetMaximumLength(
dmaTransaction,
MAX_TRANSFER_LENGTH/2,
);