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)

Consulte también

EvtInterruptDpc

WdfDmaTransactionCreate

WdfDmaTransactionDmaCompleted

WdfDmaTransactionDmaCompletedWithLength