Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Importante O uso de WavePci não é mais recomendado, em vez disso, use WaverRT.
Um driver de miniporto WaveCyclic gerencia as funções dependentes de hardware de um dispositivo de renderização de onda ou de captura de onda que usa um buffer cíclico para dados de áudio. O buffer cíclico normalmente é um único bloco de memória física contígua e pode estar localizado em uma região de memória da escolha do driver. Um dispositivo que possua qualquer uma das seguintes limitações deve utilizar um driver de miniporto WaveCyclic em vez de um driver de miniporto WavePci:
O dispositivo não tem hardware de DMA.
O hardware DMA do dispositivo pode acessar dados somente em um buffer que ocupa um único bloco de memória física contígua.
O hardware DMA do dispositivo não consegue acessar dados em todas as regiões da memória física.
Um driver de miniporto WaveCyclic deve implementar duas interfaces:
A interface miniport dá suporte à inicialização do driver miniport e à criação de stream.
A interface de stream gerencia um fluxo de ondas e expõe a maior parte da funcionalidade do driver de miniporta.
A interface miniport, IMiniportWaveCyclic, herda os métodos da interface IMiniport. IMiniportWaveCyclic fornece os seguintes métodos adicionais:
Inicializa o objeto miniport.
IMiniportWaveCyclic::NewStream
Cria um novo objeto de fluxo.
A interface de transmissão, IMiniportWaveCyclicStream, herda os métodos da interface IUnknown. IMiniportWaveCyclicStream fornece os seguintes métodos adicionais:
IMiniportWaveCyclicStream::GetPosition
Obtém a posição atual do dispositivo no fluxo de ondas.
IMiniportWaveCyclicStream::NormalizePhysicalPosition
Converte um valor de posição de buffer físico em um valor baseado em tempo.
IMiniportWaveCyclicStream::SetFormat
Define o formato de dados do fluxo de ondas.
IMiniportWaveCyclicStream::SetNotificationFreq
Define a frequência na qual ocorrem interrupções de notificação.
IMiniportWaveCyclicStream::SetState
Define o estado do fluxo de ondas.
IMiniportWaveCyclicStream::Silence
Copia o silêncio em um buffer.