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 de 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.

Valor de retorno

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 Framework Object Creation Errors.

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

Uma verificação de bug ocorre se o driver fornece um identificador de objeto inválido.

Observações

Depois que o driver chama WdfDmaTransactionCreate, ele deve chamar WdfDmaTransactionInitialize ou WdfDmaTransactionInitializeUsingRequest antes de chamar WdfDmaTransactionExecute.

O objeto de 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 deve ser NULL.

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

Exemplos

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

Requisitos

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

Consulte também

WDF_OBJECT_ATTRIBUTES

WdfDmaEnablerCreate

WdfDmaTransactionExecute

WdfDmaTransactionInitialize

WdfDmaTransactionInitializeUsingRequest