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

O NewMasterDmaChannel método cria uma nova instância de um canal DMA master 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 pelo chamador na qual o método grava um ponteiro para o novo objeto IDmaChannel . Especifique um valor de ponteiro válido e não NULL para esse parâmetro.

[in] OuterUnknown

Ponteiro para a interface IUnknown de um objeto que precisa agregar o objeto DMA-channel. 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 miniport, que é um objeto IResourceList . Esse parâmetro é opcional e pode ser especificado como NULL. Atualmente NewMasterDmaChannel , o método 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. Defina como (DMA_WIDTH)(-1).

[in] DmaSpeed

Não usado. Defina como (DMA_SPEED)(-1).

Retornar valor

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

Comentários

Os parâmetros MaximumLength, Dma32BitAddresses, Dma64BitAddresses, DmaWidth e 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 master. Por outro lado, um dispositivo subordinado não tem hardware de DMA e precisa contar com o controlador de DMA do sistema para executar quaisquer transferências de dados necessárias. O NewMasterDmaChannel método cria um objeto de canal DMA para um dispositivo master. Para criar um objeto de canal DMA para um dispositivo subordinado, chame o método IPortWaveCyclic::NewSlaveDmaChannel . Para obter mais informações sobre master e dispositivos subordinados, consulte IDmaChannel e IDmaChannelSlave.

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

Observação

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 em alinhamento.

Requisitos

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

Confira também

DEVICE_DESCRIPTION

IDmaChannel

IDmaChannelSlave

IPortWaveCyclic

IPortWaveCyclic::NewSlaveDmaChannel

IResourceList