Función WdfDmaTransactionCreate (wdfdmatransaction.h)

[Solo se aplica a KMDF]

El método WdfDmaTransactionCreate crea una transacción DMA.

Sintaxis

NTSTATUS WdfDmaTransactionCreate(
  [in]           WDFDMAENABLER          DmaEnabler,
  [in, optional] PWDF_OBJECT_ATTRIBUTES Attributes,
  [out]          WDFDMATRANSACTION      *DmaTransaction
);

Parámetros

[in] DmaEnabler

Identificador de un objeto enabler DMA que el controlador obtuvo de una llamada anterior a WdfDmaEnablerCreate.

[in, optional] Attributes

Puntero a una estructura WDF_OBJECT_ATTRIBUTES que especifica atributos de objeto para el nuevo objeto de transacción DMA. (El miembro ParentObject de la estructura debe ser NULL). Este parámetro es opcional y puede ser WDF_NO_OBJECT_ATTRIBUTES.

[out] DmaTransaction

Identificador de un objeto de transacción DMA.

Valor devuelto

WdfDmaTransactionCreate devuelve STATUS_SUCCESS si la operación se realiza correctamente. De lo contrario, este método podría devolver uno de los siguientes valores:

Código devuelto Descripción
STATUS_INVALID_PARAMETER
Se ha detectado un parámetro no válido.
STATUS_INSUFFICIENT_RESOURCES
No había memoria suficiente para crear un nuevo objeto de transacción DMA.
 

Para obtener una lista de otros valores devueltos que puede devolver el método WdfDmaTransactionCreate , vea Errores de creación de objetos de marco.

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

Después de que el controlador llame a WdfDmaTransactionCreate, debe llamar a WdfDmaTransactionInitialize o WdfDmaTransactionInitializeUsingRequest antes de llamar a WdfDmaTransactionExecute.

El objeto habilitador DMA especificado se convierte en el elemento primario del nuevo objeto de transacción DMA. El controlador no puede cambiar este elemento primario y el miembro ParentObject o la estructura WDF_OBJECT_ATTRIBUTES deben ser NULL.

Para obtener más información sobre las transacciones de DMA, vea Creación e inicialización de una transacción DMA.

Ejemplos

Para obtener un ejemplo de código que usa WdfDmaTransactionCreate, vea WdfDmaTransactionExecute.

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

WDF_OBJECT_ATTRIBUTES

WdfDmaEnablerCreate

WdfDmaTransactionExecute

WdfDmaTransactionInitialize

WdfDmaTransactionInitializeUsingRequest