Gestion des blocs de données par interrogation
[La fonctionnalité associée à cette page, Waveform Audio, est une fonctionnalité héritée. Il a été remplacé par WASAPI et Audio Graphs. Les graphiques WASAPI et Audio ont été optimisés pour Windows 10 et Windows 11. Microsoft recommande vivement que le nouveau code utilise WASAPI et Audio Graphs au lieu de Waveform Audio, lorsque cela est possible. Microsoft suggère que le code existant qui utilise les API héritées soit réécrit pour utiliser les nouvelles API si possible.]
En plus d’utiliser une fonction de rappel, vous pouvez interroger le membre dwFlags d’une structure WAVEHDR pour déterminer quand un périphérique audio est terminé avec un bloc de données. Parfois, il est préférable d’interroger dwFlags plutôt que d’attendre qu’un autre mécanisme reçoive des messages des pilotes. Par exemple, après avoir appelé la fonction waveOutReset pour libérer les blocs de données en attente, vous pouvez immédiatement interroger pour vous assurer que les blocs de données ont été libérés avant d’appeler waveOutUnprepareHeader et de libérer la mémoire pour le bloc de données.
Vous pouvez utiliser l’indicateur WHDR_DONE pour tester le membre dwFlags . Dès que l’indicateur WHDR_DONE est défini dans le membre dwFlags de la structure WAVEHDR , le pilote a terminé avec le bloc de données.