Controlador de miniporte wavecíclico
Importante El uso de WavePci ya no se recomienda, sino que usa WaverRT.
Un controlador de miniporte WaveCíclico administra las funciones dependientes del hardware de un dispositivo de representación de onda o captura de onda que usa un búfer cíclico para los datos de audio. El búfer cíclico suele ser un único bloque de memoria física contigua y se puede ubicar en una región de memoria de la elección del controlador. Un dispositivo con cualquiera de las siguientes limitaciones debe proporcionar un controlador de miniporte WaveCíclico en lugar de un controlador de miniporte WavePci:
El dispositivo carece de hardware DMA.
El hardware DMA del dispositivo solo puede acceder a los datos en un búfer que ocupa un único bloque de memoria física contigua.
El hardware DMA del dispositivo no puede acceder a los datos en todas las regiones de memoria física.
Un controlador de miniporte WaveCíclico debe implementar dos interfaces:
La interfaz de minipuerto admite la inicialización del controlador de miniporte y la creación de secuencias.
La interfaz de secuencia administra un flujo de onda y expone la mayor parte de la funcionalidad del controlador de miniporte.
La interfaz miniport, IMiniportWaveCíclica, hereda los métodos de la interfaz IMiniport . IMiniportWaveCíclica proporciona los siguientes métodos adicionales:
Inicializa el objeto miniport.
IMiniportWaveCíclica::NewStream
Crea un nuevo objeto de secuencia.
La interfaz de secuencia, IMiniportWaveCíclicaStream, hereda los métodos de la interfaz IUnknown . IMiniportWaveCíclicaStream proporciona los siguientes métodos adicionales:
IMiniportWaveCíclicaStream::GetPosition
Obtiene la posición actual del dispositivo en la secuencia de onda.
IMiniportWaveCíclicaStream::NormalizePhysicalPosition
Convierte un valor de posición de búfer físico en un valor basado en tiempo.
IMiniportWaveCíclicaStream::SetFormat
Establece el formato de datos de la secuencia de onda.
IMiniportWaveCyclicStream::SetNotificationFreq
Establece la frecuencia con la que se producen interrupciones de notificación.
IMiniportWaveCyclicStream::SetState
Establece el estado de la secuencia de onda.
IMiniportWaveCíclicaStream::Silence
Copia el silencio en un búfer.