Partager via


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 :

IMiniportWaveCyclique::Init

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.