Pilote WaveCyclique Miniport
Important L’utilisation de WavePci n’est plus recommandée, à la place, utilisez WaverRT.
Un pilote miniport WaveCyclique gère les fonctions dépendantes du matériel d’un appareil de rendu des ondes ou de capture d’ondes qui utilise une mémoire tampon cyclique pour les données audio. La mémoire tampon cyclique est généralement un seul bloc de mémoire physique contiguë et peut se trouver dans une région de mémoire de choix du pilote. Un appareil avec l’une des limitations suivantes doit fournir un pilote miniport WaveCyclique plutôt qu’un pilote de miniport WavePci :
L’appareil n’a pas de matériel DMA.
Le matériel DMA de l’appareil ne peut accéder aux données que dans une mémoire tampon qui occupe un seul bloc de mémoire physique contiguë.
Le matériel DMA de l’appareil ne peut pas accéder aux données dans toutes les régions de la mémoire physique.
Un pilote miniport WaveCyclique doit implémenter deux interfaces :
L’interface miniport prend en charge l’initialisation du pilote miniport et la création de flux.
L’interface de flux gère un flux d’ondes et expose la plupart des fonctionnalités du pilote miniport.
L’interface miniport, IMiniportWaveCyclique, hérite des méthodes de l’interface IMiniport . IMiniportWaveCyclique fournit les méthodes supplémentaires suivantes :
Initialise l’objet miniport.
IMiniportWaveCyclique::NewStream
Crée un objet de flux.
L’interface de flux, IMiniportWaveCycliqueStream, hérite des méthodes de l’interface IUnknown . IMiniportWaveCycliqueStream fournit les méthodes supplémentaires suivantes :
IMiniportWaveCycliqueStream::GetPosition
Obtient la position actuelle de l’appareil dans le flux d’ondes.
IMiniportWaveCycliqueStream::NormalizePhysicalPosition
Convertit une valeur de position de mémoire tampon physique en valeur temporelle.
IMiniportWaveCycliqueStream::SetFormat
Définit le format de données du flux d’ondes.
IMiniportWaveCycliqueStream::SetNotificationFreq
Définit la fréquence à laquelle les interruptions de notification se produisent.
IMiniportWaveCycliqueStream::SetState
Définit l’état du flux d’ondes.
IMiniportWaveCycliqueStream::Silence
Copie le silence dans une mémoire tampon.