Mises à niveau du système d’exploitation
Les paramètres de pilote d’un périphérique audio peuvent souvent être conservés entre les mises à niveau du système d’exploitation. Après la mise à niveau, l’objectif est de faire avancer les paramètres utilisateur, tout en veillant à ce que les points de terminaison audio reflètent avec précision les fonctionnalités du système d’exploitation et du pilote.
Processus de migration du point de terminaison audio
Pendant les mises à niveau du système d’exploitation, un processus de migration de point de terminaison audio peut s’exécuter. Ce processus tente de faire avancer autant d’informations qu’il est possible de le faire en toute sécurité. Lorsque vous développez votre pilote audio, gardez ces comportements de migration à l’esprit.
Ce processus de migration de point de terminaison peut s’exécuter dans les situations suivantes.
- Mise à jour du système d’exploitation.
- Mises à jour du pilote audio. Cela inclut l’installation d’un pilote d’extension audio ou d’un objet AudioProcessingObject. Pour plus d’informations, consultez Création d’une installation de pilote audio en composants.
- Le pilote audio existant est réinstallé sur place. Cette réinstallation peut se produire lorsque l’utilitaire de résolution des problèmes audio est exécuté. Cela peut également se produire via le gestionnaire de périphériques en effectuant un « pilote de mise à jour » et en sélectionnant le pilote déjà installé.
- AudioEndpointBuilder est mis en service. Cela se produit chaque fois qu’il existe un correctif de bogue dans le service AudioEndpointBuilder qui est mis à jour dans les versions publiées de Windows.
- La révision du microprogramme sur un pilote audio USB est modifiée.
- Le pilote audio modifie la configuration du point de terminaison via KSPROPERTY_JACK_DESCRIPTION3.
Processus de migration du point de terminaison audio
Le processus de migration du point de terminaison audio effectue les opérations suivantes.
- Copie les propriétés de point de terminaison contrôlées par l’utilisateur.
- Copie les propriétés CAPX de transfert.
Le processus de migration du point de terminaison audio n’effectue aucune des opérations suivantes.
- Ne copie pas le transfert de FXProperties avant la disponibilité de CAPX avec Windows 11.
- Il ne copie pas les propriétés de transfert qui ne figurent pas dans la liste des paramètres utilisateur connus du système d’exploitation.
À compter de Windows 11, une nouvelle infrastructure de paramètres « CAPX » est utilisée pour stocker les paramètres. Le Framework de paramètres permet aux APO d’exposer des méthodes d’interrogation et de modification du magasin de propriétés pour les effets audio (« Magasin de propriétés FX ») sur un point de terminaison audio. Pour plus d’informations, consultez API Windows 11 pour les objets de traitement audio.
Mise en correspondance des points de terminaison de pré-mise à niveau aux points de terminaison post-mise à niveau
Le processus de migration correspond aux points de terminaison de pré-mise à niveau pour les points de terminaison post-mise à niveau à l’aide de ces deux éléments.
- ID matériel : pour plus d’informations sur l’ID matériel, consultez ID d’appareil unique à l’échelle du système.
- Chaîne de référence : l’utilisation de la chaîne de référence est décrite ci-dessous.
Notez que, étant donné que de nouveaux points de terminaison sont créés, la mise en cache de l’ID mmdevice ne fonctionnera pas pendant le processus de migration du point de terminaison.
Sous-appareil inscrit
La fonction PcRegisterSubdevice du pilote de classe de port inscrit le sous-appareil, qui est perçu comme un appareil par le reste du système. La fonction inscrit l’interface de périphérique instance pour un objet de filtre qui représente un sous-appareil sur une carte audio. Le gestionnaire d’E/S ajoute la chaîne spécifiée par le paramètre Name à la chaîne de référence qu’il utilise pour identifier les instance. La chaîne de référence modifiée est utile pour distinguer les sous-appareils de la carte audio. Pour plus d’informations sur les chaînes de référence, consultez IoRegisterDeviceInterface.
Utilisation des chaînes de référence
Les points de terminaison audio sont identifiés par la chaîne de référence passée à PnP lors de la création de l’interface KS, ainsi que par l’ID de broche pour le connecteur externe. La modification de ces valeurs entraîne la création d’un nouveau point de terminaison audio. Ce nouveau point de terminaison audio ne contient pas les paramètres utilisateur associés à la chaîne de référence précédente et à l’ID de broche du connecteur.
Dans les cas où l’ID matériel est le même entre deux ou plusieurs appareils audio installés et que les chaînes de référence sont également identiques, le système de migration ne peut pas migrer correctement les paramètres en raison de l’échec de la correspondance des points de terminaison d’avant la migration vers les points de terminaison après la migration.
L’installation de plusieurs copies des mêmes périphériques audio logiciels énumérés à la racine sur toutes les versions de Windows, qui utilisent toutes les mêmes id matériel et chaînes de référence, ne migrera pas correctement.
Avant Windows 11
Pour les périphériques audio logiciels énumérés racine sur les systèmes antérieurs à Windows 11, les points de terminaison audio avec les mêmes valeurs de chaîne de référence ne migrent pas correctement.
Lors de la création d’un périphérique audio logiciel énuméré racine ciblant les versions de Windows antérieures à Windows 11, une valeur de chaîne de référence unique doit être utilisée pour chaque point de terminaison audio pour garantir la réussite de la migration.
Windows 11 et versions ultérieures
Les périphériques audio logiciels énumérés racine sur les systèmes sur et après Windows 11, sans ID matériel, les points de terminaison audio avec les mêmes valeurs de chaîne de référence ne migrent pas correctement.
Lors de la création d’un périphérique audio logiciel énuméré racine qui cible les versions de Windows après Windows 11, un ID matériel unique doit être spécifié dans le pilote inf, et chaque périphérique audio logiciel énuméré racine ne peut être installé qu’une seule fois avec cet ID matériel. Pour installer plusieurs copies du même pilote, des chaînes de référence différentes doivent être utilisées sur chaque installation pour garantir la réussite de la migration.
Règles de chaîne de référence
Il est vivement recommandé de ne pas utiliser les chaînes de référence « wave » et « topo » par défaut utilisées dans les exemples de pilotes audio. Des chaînes de référence plus descriptives doivent être utilisées à la place. Les pilotes qui utilisent les chaînes de référence par défaut risquent de perdre ou d’appliquer leurs données de migration au mauvais appareil dans le cas où un ID matériel n’est pas disponible ou correspond à un autre pilote à l’aide de ces chaînes de référence. Une stratégie raisonnable serait quelque chose comme « ContosoSoftwareRender-output2 ». L’inclusion d’un nom de fournisseur unique permet de lever l’ambiguïté de la chaîne de référence.
Les chaînes de référence doivent rester statiques pour l’installation du pilote audio, les mises à jour, les mises à jour du système d’exploitation, les redémarrages, etc. Si la chaîne de référence change, un nouveau point de terminaison audio est créé et les paramètres utilisateur ne sont pas copiés du point de terminaison précédent vers le nouveau point de terminaison.
Id matériel Nom de l’instance de l’appareil
L’ID matériel du pilote audio est défini dans la section Modèles du fichier INF. L’ID matériel identifie au moins un appareil et fait référence à la section DDInstall du fichier INF de cet appareil. Il spécifie également un identificateur matériel (ID) de section unique au modèle pour cet appareil. Pour plus d’informations, consultez la section Modèles INF et la sectionINF DDInstall.
Ce fichier INF affiche la description de l’appareil de la section DDInstall dans l’exemple audio Sysvad.
[SYSVAD.NT$ARCH$]
%SYSVAD_SA.DeviceDesc%=SYSVAD_SA, Root\sysvad_ComponentizedAudioSample
SYSVAD_SA.DeviceDesc="Virtual Audio Device (WDM) - Tablet Sample"
Ce fichier INF montre comment la description de l’appareil est personnalisée par un OEM.
[CONTOSO.NT$ARCH$]
%CONTOSO_SA.DeviceDesc%=CONTOSO_SA, Root\contoso_ContosoSoftwareRender
CONTOSO_SA.DeviceDesc="Description of the Contoso Software Render Driver"
L’ID matériel sur lequel Doit correspondre AudioEndpointBuilder serait Root\contoso_ContosoSoftwareRender
Paramètres stockés du Registre
Un pilote d’adaptateur audio peut effectuer le suivi de ses paramètres d’appareil actuels (principalement les niveaux de volume et les paramètres de désactivation) dans le registre système. Le pilote stocke généralement ces paramètres dans la clé de pilote fournie par le système (représentée par l’inf mot clé HKR) sous la sous-clé « Paramètres ». Lorsque l’utilisateur modifie ces paramètres par le biais d’un panneau de configuration ou d’une autre application audio, le pilote met à jour les entrées de Registre appropriées. Chaque fois que le système démarre, le pilote restaure les paramètres de l’appareil à partir du Registre.
Les utilisateurs préfèrent en grande partie ce comportement, car il conserve les ajustements qu’ils ont apportés au système au fil du temps au lieu de les forcer à essayer de restaurer leurs paramètres manuellement chaque fois qu’ils mettent à niveau le système d’exploitation.
Toutefois, certains pilotes remplacent aveuglément ces paramètres par défaut chaque fois qu’ils sont installés. Une meilleure approche consiste pour un pilote à déterminer au moment de l’installation si certaines entrées spécifiques au pilote existent déjà. S’ils existent, le pilote doit conserver les paramètres contenus dans ces entrées au lieu de les remplacer.
Les directives de la section add-registry du fichier INF du pilote spécifient si les entrées de Registre existantes doivent être remplacées. Pour plus d’informations, consultez la description de l’indicateur FLG_ADDREG_NOCLOBBER dans la directive AddReg INF.