Compartilhar via


Função WdfDmaTransactionCreate (wdfdmatransaction.h)

[Aplica-se somente ao KMDF]

O método WdfDmaTransactionCreate cria uma transação DMA.

Sintaxe

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

Parâmetros

[in] DmaEnabler

Um identificador para um objeto de habilitador de DMA que o driver obteve de uma chamada anterior para WdfDmaEnablerCreate.

[in, optional] Attributes

Um ponteiro para uma estrutura WDF_OBJECT_ATTRIBUTES que especifica atributos de objeto para o novo objeto de transação DMA. (O membro ParentObject da estrutura deve ser NULL.) Esse parâmetro é opcional e pode ser WDF_NO_OBJECT_ATTRIBUTES.

[out] DmaTransaction

Um identificador para um objeto de transação DMA.

Retornar valor

WdfDmaTransactionCreate retornará STATUS_SUCCESS se a operação for bem-sucedida. Caso contrário, esse método poderá retornar um dos seguintes valores:

Código de retorno Descrição
STATUS_INVALID_PARAMETER
Um parâmetro inválido foi detectado.
STATUS_INSUFFICIENT_RESOURCES
Não havia memória suficiente para criar um novo objeto de transação DMA.
 

Para obter uma lista de outros valores retornados que o método WdfDmaTransactionCreate pode retornar, consulte Erros de criação de objeto da estrutura.

Esse método também pode retornar outros valores NTSTATUS.

Um bug marcar ocorrerá se o driver fornecer um identificador de objeto inválido.

Comentários

Depois que o driver chamar WdfDmaTransactionCreate, ele deverá chamar WdfDmaTransactionInitialize ou WdfDmaTransactionInitializeUsingRequest antes de chamar WdfDmaTransactionExecute.

O objeto habilitador de DMA especificado torna-se o pai do novo objeto de transação DMA. O driver não pode alterar esse pai e o membro ParentObject ou a estrutura WDF_OBJECT_ATTRIBUTES devem ser NULL.

Para obter mais informações sobre transações de DMA, consulte Criando e inicializando uma transação de DMA.

Exemplos

Para obter um exemplo de código que usa WdfDmaTransactionCreate, consulte WdfDmaTransactionExecute.

Requisitos

Requisito Valor
Plataforma de Destino Universal
Versão mínima do KMDF 1.0
Cabeçalho wdfdmatransaction.h (inclua Wdf.h)
Biblioteca Wdf01000.sys (consulte Controle de versão da biblioteca de estrutura.)
IRQL <=DISPATCH_LEVEL
Regras de conformidade de DDI DriverCreate(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf)

Confira também

WDF_OBJECT_ATTRIBUTES

WdfDmaEnablerCreate

WdfDmaTransactionExecute

WdfDmaTransactionInitialize

WdfDmaTransactionInitializeUsingRequest