WaveCyclic Miniport Driver
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 ondas ou de captura de ondas 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 com qualquer uma das seguintes limitações deve fornecer um driver de miniporta WaveCyclic em vez de um driver de miniporto WavePci:
O dispositivo não tem hardware de AMD.
O hardware de DMA do dispositivo pode acessar dados somente em um buffer que ocupa um único bloco de memória física contígua.
O hardware de 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 de miniporta dá suporte à inicialização do driver de miniporto e à criação de fluxo.
A interface de fluxo gerencia um fluxo de ondas e expõe a maior parte da funcionalidade do driver de miniport.
A interface de miniport, IMiniportWaveCyclic, herda os métodos na interface IMiniport . IMiniportWaveCyclic fornece os seguintes métodos adicionais:
Inicializa o objeto miniport.
IMiniportWaveCyclic::NewStream
Cria um novo objeto de fluxo.
A interface de fluxo, IMiniportWaveCyclicStream, herda os métodos na 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 com que ocorrem interrupções de notificação.
IMiniportWaveCyclicStream::SetState
Define o estado do fluxo de ondas.
IMiniportWaveCyclicStream::Silence
Copia o silêncio em um buffer.