Función WdfDmaTransactionSetMaximumLength (wdfdmatransaction.h)
[Solo se aplica a KMDF]
El método WdfDmaTransactionSetMaximumLength establece la longitud máxima de las transferencias DMA asociadas a una transacción DMA especificada.
Sintaxis
void WdfDmaTransactionSetMaximumLength(
[in] WDFDMATRANSACTION DmaTransaction,
[in] size_t MaximumLength
);
Parámetros
[in] DmaTransaction
Identificador de un objeto de transacción DMA que el controlador obtuvo de una llamada anterior a WdfDmaTransactionCreate.
[in] MaximumLength
Tamaño máximo, en bytes, que el dispositivo puede controlar en una sola operación de transferencia de DMA. Si el controlador debe ejecutarse en versiones de los sistemas operativos Microsoft Windows que admiten un máximo de 16 registros de mapa, MaximumLength debe ser inferior a 65536.
El valor MaximumLength solo se aplica a la transacción DMA especificada, como se indica a continuación:
- Si el valor especificado es menor que el valor predeterminado que el controlador especificó en su estructura WDF_DMA_ENABLER_CONFIG , el valor especificado invalida el valor predeterminado.
- Si el valor especificado es mayor que el valor predeterminado, se omite el valor especificado.
Valor devuelto
None
Observaciones
Se produce una comprobación de errores si el controlador proporciona un identificador de objeto no válido.
El controlador debe inicializar la transacción DMA antes de llamar a WdfDmaTransactionSetMaximumLength.
Para obtener información sobre cómo inicializar una transacción DMA, vea Creating and Initializing a DMA Transaction.
Ejemplos
En el ejemplo de código siguiente se establece la longitud máxima de la transferencia en un valor definido por el controlador para una transacción DMA especificada.
WdfDmaTransactionSetMaximumLength(
dmaTransaction,
MAX_TRANSFER_LENGTH/2,
);
Requisitos
Requisito | Value |
---|---|
Plataforma de destino | Universal |
Versión mínima de KMDF | 1.0 |
Encabezado | wdfdmatransaction.h (incluya Wdf.h) |
Library | Wdf01000.sys (consulte Control de versiones de la biblioteca de marcos). |
IRQL | <=DISPATCH_LEVEL |
Reglas de cumplimiento de DDI | DriverCreate(kmdf) |