Función WdfDmaTransactionGetCurrentDmaTransferLength (wdfdmatransaction.h)
[Solo se aplica a KMDF]
El método WdfDmaTransactionGetCurrentDmaTransferLength devuelve el tamaño de la transferencia DMA actual.
Sintaxis
size_t WdfDmaTransactionGetCurrentDmaTransferLength(
[in] WDFDMATRANSACTION DmaTransaction
);
Parámetros
[in] DmaTransaction
Identificador de un objeto de transacción DMA que el controlador obtuvo de una llamada anterior a WdfDmaTransactionCreate.
Valor devuelto
WdfDmaTransactionGetCurrentDmaTransferLength devuelve la longitud de la transferencia DMA actual.
Se produce una comprobación de errores si el controlador proporciona un identificador de objeto no válido.
Comentarios
Si un controlador llama a WdfDmaTransactionGetCurrentDmaTransferLength, debe hacerlo antes de llamar a una de las rutinas de finalización de transferencia, como WdfDmaTransactionDmaCompleted, para completar la transferencia DMA actual. Normalmente, los controladores llaman a WdfDmaTransactionGetCurrentDmaTransferLength desde una función de devolución de llamada de evento EvtInterruptDpc .
Normalmente, un controlador llama a WdfDmaTransactionGetCurrentDmaTransferLength para los dispositivos que notifican longitudes de transferencia de DMA residuales (es decir, recuentos de bytes de datos que no se transfirieron). Al restar la longitud de transferencia residual del valor devuelto por WdfDmaTransactionGetCurrentDmaTransferLength , el controlador puede determinar la longitud de transferencia real. A continuación, el controlador llama a WdfDmaTransactionDmaCompletedWithLength para que el marco sepa el número de bytes que el dispositivo ha transferido realmente.
Para obtener más información sobre las transferencias de DMA completas, consulte Finalización de una transferencia DMA.
Ejemplos
Para obtener un ejemplo de código que usa WdfDmaTransactionGetCurrentDmaTransferLength, vea WdfDmaTransactionDmaCompletedWithLength.
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), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf) |