Condividi tramite


Funzione WdfDmaTransactionCreate (wdfdmatransaction.h)

[Si applica solo a KMDF]

Il metodo WdfDmaTransactionCreate crea una transazione DMA.

Sintassi

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

Parametri

[in] DmaEnabler

Handle a un oggetto abilitante DMA ottenuto dal driver da una chiamata precedente a WdfDmaEnablerCreate.

[in, optional] Attributes

Puntatore a una struttura WDF_OBJECT_ATTRIBUTES che specifica gli attributi dell'oggetto per il nuovo oggetto transazione DMA. Il membro ParentObject della struttura deve essere NULL. Questo parametro è facoltativo e può essere WDF_NO_OBJECT_ATTRIBUTES.

[out] DmaTransaction

Handle a un oggetto transazione DMA.

Valore restituito

WdfDmaTransactionCreate restituisce STATUS_SUCCESS se l'operazione ha esito positivo. In caso contrario, questo metodo potrebbe restituire uno dei valori seguenti:

Codice restituito Descrizione
STATUS_INVALID_PARAMETER
È stato rilevato un parametro non valido.
STATUS_INSUFFICIENT_RESOURCES
Memoria insufficiente per creare un nuovo oggetto transazione DMA.
 

Per un elenco di altri valori restituiti che il metodo WdfDmaTransactionCreate potrebbe restituire, vedere Errori di creazione dell'oggetto Framework.

Questo metodo potrebbe restituire anche altri valori NTSTATUS.

Un controllo di bug si verifica se il driver fornisce un handle di oggetti non valido.

Commenti

Dopo che il driver chiama WdfDmaTransactionCreate, deve chiamare WdfDmaTransactionInitialize o WdfDmaTransactionInitializeUsingRequest prima di chiamare WdfDmaTransactionExecute.

L'oggetto enabler DMA specificato diventa l'elemento padre del nuovo oggetto transazione DMA. Il driver non può modificare questo elemento padre e il membro ParentObject o la struttura WDF_OBJECT_ATTRIBUTES deve essere NULL.

Per altre informazioni sulle transazioni DMA, vedere Creazione e inizializzazione di una transazione DMA.

Esempio

Per un esempio di codice che usa WdfDmaTransactionCreate, vedere WdfDmaTransactionExecute.

Requisiti

Requisito Valore
Piattaforma di destinazione Universale
Versione KMDF minima 1.0
Intestazione wdfdmatransaction.h (include Wdf.h)
Libreria Wdf01000.sys (vedere Framework Library Versioning).
IRQL <=DISPATCH_LEVEL
Regole di conformità DDI DriverCreate(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf)

Vedi anche

WDF_OBJECT_ATTRIBUTES

WdfDmaEnablerCreate

WdfDmaTransactionExecute

WdfDmaTransactionInitialize

WdfDmaTransactionInitializeUsingRequest