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 |