KSPROPERTY_RTAUDIO_BUFFER_WITH_NOTIFICATION
La propriété KSPROPERTY_RTAUDIO_BUFFER_WITH_NOTIFICATION spécifie une mémoire tampon cyclique allouée par le pilote pour les données audio et identifie les exigences de notification des événements.
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_WITH_NOTIFICATION qui contient une structure KSPROPERTY avec d’autres membres. Le client écrit la taille de mémoire tampon demandée dans la structure. Le client doit spécifier l’adresse de base comme NULL , sauf si une adresse de base spécifique est nécessaire.
Cette propriété est utilisée lorsque vous souhaitez une notification d’événement pilotée par DMA. En fonction du membre NotificationCount , les événements inscrits sont signalés une fois (à la fin) ou deux (au milieu et à la fin) par cycle via la mémoire tampon cyclique. Les événements sont enregistrés à l’aide de KSPROPERTY_RTAUDIO_REGISTER_NOTIFICATION_EVENT après avoir correctement appelé KSPROPERTY_RTAUDIO_BUFFER_WITH_NOTIFICATION.
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_WITH_NOTIFICATION 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 |
Le périphérique 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. Le pilote détermine si la mémoire tampon est contiguë dans la mémoire physique.
Le client définit 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 exige que la mémoire tampon audio commence et se termine sur des exemples de limites, soit qu’elle respecte 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. Sinon, la taille réelle peut être inférieure à la taille demandée.
Si une demande de propriété KSPROPERTY_RTAUDIO_BUFFER_WITH_NOTIFICATION 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é.
Spécifications
Version |
Disponible dans les systèmes d’exploitation Windows Vista et ultérieurs. |
En-tête |
Ksmedia.h |