Partilhar via


Método IPortWaveCyclic::NewMasterDmaChannel (portcls.h)

O método NewMasterDmaChannel cria uma nova instância de um canal DMA mestre de barramento.

Sintaxe

NTSTATUS NewMasterDmaChannel(
  [out]          PDMACHANNEL   *DmaChannel,
  [in]           PUNKNOWN      OuterUnknown,
  [in, optional] PRESOURCELIST ResourceList,
  [in]           ULONG         MaximumLength,
  [in]           BOOLEAN       Dma32BitAddresses,
  [in]           BOOLEAN       Dma64BitAddresses,
  [in]           DMA_WIDTH     DmaWidth,
  [in]           DMA_SPEED     DmaSpeed
);

Parâmetros

[out] DmaChannel

Ponteiro para uma variável de ponteiro alocada por chamador na qual o método grava um ponteiro no novo objeto IDmaChannel. Especifique um valor de ponteiro NULL nulo válido para esse parâmetro.

[in] OuterUnknown

Ponteiro para a interface IUnknown de um objeto que precisa agregar o objeto de canal DMA. Esse parâmetro é opcional. Se a agregação não for necessária, especifique esse parâmetro como NULL.

[in, optional] ResourceList

Ponteiro para a lista de recursos do driver de miniporto, que é um objeto IResourceList. Esse parâmetro é opcional e pode ser especificado como NULL. O método NewMasterDmaChannel atualmente não usa esse parâmetro.

[in] MaximumLength

Comprimento máximo em bytes do buffer de DMA cíclico que será associado a esse canal.

[in] Dma32BitAddresses

Especifica o uso de endereços de 32 bits.

[in] Dma64BitAddresses

Especifica o uso de endereços de 64 bits.

[in] DmaWidth

Não usado. Set to (DMA_WIDTH)(-1).

[in] DmaSpeed

Não usado. Set to (DMA_SPEED)(-1).

Valor de retorno

NewMasterDmaChannel retornará STATUS_SUCCESS se a chamada tiver sido bem-sucedida. Caso contrário, o método retornará um código de erro apropriado.

Observações

Os parâmetros MaximumLength, Dma32BitAddresses, Dma64BitAddresses, DmaWidthe DmaSpeed são semelhantes aos membros da estrutura DEVICE_DESCRIPTION com os mesmos nomes.

Um dispositivo WaveCyclic com hardware de DMA de domínio de barramento interno é conhecido como um dispositivo mestre . Por outro lado, um dispositivo subordinado não tem hardware DMA e precisa contar com o controlador DMA do sistema para executar as transferências de dados necessárias. O método NewMasterDmaChannel cria um objeto de canal DMA para um dispositivo mestre. Para criar um objeto de canal DMA para um dispositivo subordinado, chame o método IPortWaveCyclic::NewSlaveDmaChannel. Para obter mais informações sobre dispositivos mestres e subordinados, consulte IDmaChannel e IDmaChannelSlave.

Os parâmetros DmaChannel, OuterUnknowne ResourceList seguem as convenções de contagem de referência para objetos COM.

Nota

A Microsoft dá suporte a um ambiente diversificado e inclusivo. Este artigo contém referências à terminologia que o guia de estilo da Microsoft para comunicação sem preconceitos reconhece como excludente. A palavra ou frase é usada neste artigo para consistência porque ela aparece atualmente no software. Quando o software for atualizado para remover o idioma, este artigo será atualizado para estar alinhado.

Requisitos

Requisito Valor
da Plataforma de Destino Universal
cabeçalho portcls.h (inclua Portcls.h)
IRQL PASSIVE_LEVEL

Consulte também

DEVICE_DESCRIPTION

IDmaChannel

IDmaChannelSlave

IPortWaveCyclic

IPortWaveCyclic::NewSlaveDmaChannel

IResourceList