KSJACK_DESCRIPTION3 structure
Dans les systèmes d’exploitation Windows version 22H2 et ultérieures, la KSJACK_DESCRIPTION3
structure peut être utilisée pour spécifier et modifier la configuration actuelle de la prise.
Syntaxe
typedef struct _tagKSJACK_DESCRIPTION3
{
ULONG ConfigId;
} KSJACK_DESCRIPTION3, *PKSJACK_DESCRIPTION3;
Membres
ConfigId
Masque de bits ou enum défini par le pilote décrivant la configuration actuelle, la modification de cette valeur entraîne l’actualisation du cache par audioendpointbuilder pour s’assurer que le point de terminaison publié correspond à la configuration actuelle.
Remarques
Utilisation de KSJACK_DESCRIPTION3 pour communiquer les modifications des périphériques audio
Le système audio Windows met en cache les fonctionnalités de périphérique audio lors de la création du point de terminaison audio. Ces valeurs mises en cache concernent des fonctionnalités telles que la présence d’un moteur audio HW, la prise en charge du format, l’ID de conteneur, les caractéristiques de taille de mémoire tampon, etc. Ces valeurs mises en cache sont conservées pendant toute la durée de l’installation de Windows. Ils sont actualisés uniquement lorsque le pilote audio est mis à jour ou pendant une mise à niveau du système d’exploitation.
Avec KSJACK_DESCRIPTION3, le système audio Windows fournit un mécanisme permettant au pilote audio de demander que toutes les valeurs mises en cache soient ignorées et actualisées. La demande peut être déclenchée par des modifications apportées aux fonctionnalités du périphérique audio, telles que des contraintes de ressources.
Chaque fois que le pilote modifie le contenu de KSJACK_DESCRIPTION3 au moment de l’exécution, il déclenche l’événement KSEVENT_PINCAPS_JACKINFOCHANGE existant.
Le système audio Windows conserve la dernière valeur ConfigId signalée mise en cache sur le point de terminaison audio. La valeur ConfigId est récupérée en réponse à KSEVENT_PINCAPS_JACKINFOCHANGE événement et pendant le traitement normal du point de terminaison audio au démarrage du système, au redémarrage du service Du Générateur de points de terminaison Audio, à la mise à jour du pilote audio ou aux changements d’état de l’interface pour le point de terminaison.
Si la valeur ConfigId récupérée diffère de la valeur précédemment stockée, le système audio Windows ignore toutes les fonctionnalités de point de terminaison précédemment mises en cache et les actualise.
L’utilisation recommandée consiste à définir plusieurs configurations de point de terminaison audio dans le pilote contrôlé par la valeur ConfigId (masque de bits ou énumération). Par exemple, ConfigId de 1 peut indiquer la présence d’un nœud de moteur audio, tandis que ConfigId 2 ne signale pas de nœud de moteur audio. Le ConfigId utilisé par le pilote est partagé avec le système audio Windows via KSPROPERTY_JACK_DESCRIPTION3 et agit pour synchroniser le point de terminaison avec les fonctionnalités mises en cache par le système audio Windows.
La valeur de ConfigId est opaque pour Windows. Le pilote audio peut utiliser un horodatage ou une valeur d’incrémentation choisie au moment de l’exécution à la place d’un masque de bits ou d’un enum, comme suggéré ci-dessus. Cette stratégie n’est pas recommandée, car elle peut entraîner des actualisations de point de terminaison inutiles lors du démarrage ou des modifications de l’interface pour synchroniser la dernière valeur ConfigId stockée avec la valeur nouvellement signalée, même lorsque les fonctionnalités du point de terminaison sont inchangées. Cette approche peut également augmenter les risques que le pilote et Windows ne soient pas synchronisés, ce qui peut entraîner des échecs de lecture audio.
Le mécanisme utilisé pour actualiser les valeurs mises en cache sur le point de terminaison lorsque le ConfigId change est identique à celui utilisé pour les mises à niveau du système d’exploitation et les Mises à jour de pilotes. Un nouveau point de terminaison avec un ID différent est créé et contient les valeurs mises en cache actualisées qui correspondent aux nouveaux paramètres ConfigId pour le point de terminaison, les paramètres utilisateur sont ensuite copiés de l’ancien point de terminaison vers le nouveau point de terminaison, puis l’ancien point de terminaison est supprimé. Pour plus d’informations sur le processus de migration du point de terminaison audio dans les mises à niveau du système d’exploitation, consultez Mises à niveau du système d’exploitation.
Spécifications
Version |
Disponible dans les systèmes d’exploitation Windows version 22H2 et ultérieures. |
En-tête |
Ksmedia.h (inclure Ksmedia.h) |
Voir aussi
IKsJackDescription2 ::GetJackDescription2