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 |