Función WdfDmaTransactionRelease (wdfdmatransaction.h)
[Solo se aplica a KMDF]
El método WdfDmaTransactionRelease finaliza una transacción DMA especificada sin eliminar el objeto de transacción DMA asociado.
Sintaxis
NTSTATUS WdfDmaTransactionRelease(
[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
WdfDmaTransactionRelease devuelve STATUS_SUCCESS si la operación se realiza correctamente. De lo contrario, el método podría devolver el siguiente valor:
Código devuelto | Descripción |
---|---|
|
El controlador ya ha liberado o eliminado el objeto de transacción especificado por el parámetro DmaTransaction . |
Este método también podría devolver otros valores NTSTATUS.
Se produce una comprobación de errores si el controlador proporciona un identificador de objeto no válido.
Comentarios
El método WdfDmaTransactionRelease vacía los búferes de transferencia y libera todos los recursos del sistema asociados a la transacción DMA. El objeto de transacción no se elimina y se puede reutilizar. Para obtener más información sobre la reutilización de objetos de transacción, consulte Reutilización de objetos de transacción DMA.
Si WdfDmaTransactionInitializeXxx devuelve éxito, pero WdfDmaTransactionExecute devuelve un valor de error, el controlador debe llamar a WdfDmaTransactionRelease.
Ejemplos
En el ejemplo de código siguiente se finaliza la transacción DMA que representa el objeto de transacción DMA especificado, pero no elimina el objeto de transacción DMA.
NTSTATUS status;
status = WdfDmaTransactionRelease(dmaTransaction);
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) |