KSPROPERTY_RTAUDIO_BUFFER
La propriété KSPROPERTY_RTAUDIO_BUFFER spécifie une mémoire tampon cyclique allouée par le pilote pour les données audio.
Le tableau suivant récapitule les fonctionnalités de cette propriété.
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 |
Le descripteur de propriété (instance données) se compose d’une structure KSRTAUDIO_BUFFER_PROPERTY qui contient une structure KSPROPERTY avec d’autres membres. Le client écrit la taille de mémoire tampon demandée dans la structure. Si le client n’a pas besoin d’utiliser une adresse de base spécifique, il doit spécifier l’adresse de base comme NULL.
La valeur de propriété (données d’opération) est une structure de type KSRTAUDIO_BUFFER. Le pilote remplit cette structure avec la taille réelle de la mémoire tampon, l’adresse de base et l’indicateur de barrière de mémoire pour la mémoire tampon cyclique qu’il a allouée.
Valeur de retour
Une demande de propriété KSPROPERTY_RTAUDIO_BUFFER retourne STATUS_SUCCESS pour indiquer qu’elle s’est terminée avec succès. Sinon, la demande retourne un échec approprié status code. Le tableau suivant présente certains des codes d’échec possibles status.
Code d’état | Signification |
---|---|
STATUS_UNSUCCESSFUL |
Impossible d’allouer une mémoire tampon cyclique avec la combinaison spécifiée d’attributs de mémoire tampon. |
STATUS_INSUFFICIENT_RESOURCES |
La mémoire mémoire de la mémoire tampon ne peut pas être allouée. |
STATUS_DEVICE_NOT_READY |
L’appareil n’est pas prêt |
Notes
L’adresse de base est l’adresse de mémoire virtuelle au début de la mémoire tampon cyclique. Le client peut accéder directement à la mémoire tampon à cette adresse. La mémoire tampon est contiguë dans la mémoire virtuelle. La décision de rendre la mémoire tampon contiguë dans la mémoire physique est laissée au pilote.
Le client doit définir l’adresse de base dans le descripteur de propriété sur NULL. Le pilote définit l’adresse de base dans la valeur de la propriété sur l’adresse virtuelle de la mémoire tampon audio allouée.
En règle générale, le matériel audio nécessite la mémoire tampon audio pour commencer et se terminer sur des exemples de limites, ou pour répondre à d’autres types de contraintes d’alignement dépendantes du matériel. Si la mémoire disponible est suffisante, la taille réelle de la mémoire tampon est la taille demandée arrondie (haut ou bas) à l’exemple le plus proche ou à une autre limite matérielle contrainte. La taille réelle doit être au moins la taille demandée ; sinon, le moteur audio WASAPI (Audio Session API) n’utilise pas la mémoire tampon et la création de flux échoue.
Si une demande de propriété KSPROPERTY_RTAUDIO_BUFFER réussit, la valeur de la propriété, qui est une structure de type KSRTAUDIO_BUFFER, contient l’adresse et la taille de la mémoire tampon allouée par le pilote.
La fermeture de la broche libère automatiquement la mémoire tampon qui a été allouée via cette propriété.
Si vous souhaitez recevoir des notifications d’événements, vous devez appeler KSPROPERTY_RTAUDIO_BUFFER_WITH_NOTIFICATION au lieu de KSPROPERTY_RTAUDIO_BUFFER.
Spécifications
Version |
Disponible dans les systèmes d’exploitation Windows Vista et ultérieurs. |
En-tête |
Ksmedia.h |