Compartilhar via


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

O NewSlaveDmaChannel método cria uma nova instância de um canal de DMA subordinado.

Sintaxe

NTSTATUS NewSlaveDmaChannel(
  [out] PDMACHANNELSLAVE *DmaChannel,
  [in]  PUNKNOWN         OuterUnknown,
  [in]  PRESOURCELIST    ResourceList,
  [in]  ULONG            DmaIndex,
  [in]  ULONG            MaximumLength,
  [in]  BOOLEAN          DemandMode,
  [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 a interface IDmaChannelSlave do novo objeto de canal DMA. 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] ResourceList

Ponteiro para um objeto IResourceList . Essa lista de recursos contém o recurso que descreve o canal DMA.

[in] DmaIndex

Indexe na lista de recursos do descritor de canal DMA. A função usa esse valor como um parâmetro de chamada para o método IResourceList::FindxxxEntry do objeto ResourceList.

[in] MaximumLength

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

[in] DemandMode

Indica se o dispositivo associado ao canal DMA dá suporte ao modo de demanda.

[in] DmaSpeed

A velocidade de DMA pode ser especificada como um dos seguintes valores de enumeração DMA_SPEED: Compatible, TypeA, TypeB, TypeC ou TypeF.

Retornar valor

NewSlaveDmaChannel 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

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.

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

Um dispositivo WaveCyclic que não tem recursos de DMA-hardware é conhecido como um dispositivo subordinado. Por outro lado, um dispositivo master tem hardware de DMA de domínio de barramento interno. Um dispositivo subordinado precisa contar com o controlador de DMA do sistema para executar todas as transferências de dados necessárias. O NewSlaveDmaChannel método cria um objeto de canal DMA para um dispositivo subordinado. Para criar um objeto de canal DMA para um dispositivo master, chame o método IPortWaveCyclic::NewMasterDmaChannel. O driver de áudio de exemplo sb16 no WDK (Microsoft Windows Driver Kit) é um exemplo de um driver de miniporto WaveCyclic para um dispositivo subordinado. 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.

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::NewMasterDmaChannel

IResourceList