Partager via


KSPROPERTY_RTAUDIO_PACKETCOUNT

KSPROPERTY_RTAUDIO_PACKETCOUNT retourne le nombre (1 base) de paquets complètement transférés de la mémoire tampon WaveRT vers le matériel.

Tableau récapitulatif de l’utilisation

Obtenir Définissez Cible Type de descripteur de propriété Type de valeur de propriété

Oui

Non

Épingle

KSPROPERTY

ULONG

Le descripteur de propriété (instance données) est une structure KSPROPERTY. Avant d’envoyer la requête, le client charge la structure avec le nombre (basé sur 1) de paquets complètement transférés de la mémoire tampon WaveRT vers le matériel.

La valeur de la propriété est une variable de type ULONG.

Valeur de retour

Une demande de propriété KSPROPERTY_RTAUDIO_PACKETCOUNT retourne STATUS_SUCCESS pour indiquer qu’elle s’est terminée avec succès. Sinon, la demande retourne un échec approprié status code.

Notes

À partir du nombre de paquets, le système d’exploitation peut dériver la position du flux des paquets qu’il écrit dans la mémoire tampon WaveRT. Le système d’exploitation peut également dériver la position de la mémoire tampon WaveRT du paquet suivant à écrire dans la mémoire tampon WaveRT. Pour les pilotes WaveRT, le pilote signale un événement de notification unique car il transfère des données à partir de chaque paquet de la mémoire tampon WaveRT. Par conséquent, l’événement seul ne peut pas indiquer quel paquet dans la mémoire tampon WaveRT est transféré. En fonctionnement normal, ce n’est pas un problème, mais dans les cas de flux inférieur, la correction est plus facilement obtenue en interrogeant le nombre de paquets à partir duquel le système d’exploitation peut déterminer le paquet à écrire ensuite.

Le packetCount retourné indique le nombre (basé sur 1) de paquets complètement transférés de la mémoire tampon WaveRT vers le matériel. À partir de cela, le système d’exploitation peut déterminer le nombre de base 0 du paquet en cours de transfert et s’assurer qu’il écrit avant ce paquet. Par exemple, si le nombre de paquets est de 5, 5 paquets ont été complètement transférés. Autrement dit, les paquets 0-4 ont été entièrement transférés. Par conséquent, le paquet 5 est en cours et le système d’exploitation doit écrire le paquet 6. Si le nombre de notifications pour la mémoire tampon WaveRT est de 2, le paquet 6 est au décalage 0 dans la mémoire tampon WaveRT (car 6 modulo 2 est 0, et 0 fois la taille du paquet est 0).

Le système d’exploitation peut obtenir cette propriété à tout moment. Toutefois, elle obtient généralement cette propriété uniquement régulièrement ou après que le pilote retourne une erreur de flux de données (STATUS_DATA_LATE_ERROR, STATUS_DATA_OVERRUN) à partir de SetWritePacket() afin de resynchroniser avec le pilote.

Le pilote doit réinitialiser le nombre de paquets à 0 lorsque le flux est dans KSSTATE_STOP.

Spécifications

Version

Disponible dans les systèmes d’exploitation Windows Windows 10 et ultérieurs.

En-tête

Ksmedia.h

Voir aussi

KSPROPSETID_RTAudio