Pilotes Windows universels pour l'audio
Dans Windows 10, vous pouvez écrire un pilote audio universel qui fonctionnera sur de nombreux types de matériel. Cette rubrique décrit les avantages de cette approche ainsi que les différences entre les plateformes. Outre les pilotes Windows universels pour l’audio, Windows continue de prendre en charge les technologies de pilotes audio précédentes, telles que WDM.
Prise en main des pilotes Windows universels pour audio
Les IVS peuvent développer un pilote Windows universel qui fonctionne sur tous les appareils (ordinateurs de bureau, ordinateurs portables, tablettes, téléphones). Cela peut réduire le temps de développement et le coût de développement initial et la maintenance ultérieure du code.
Ces outils sont disponibles pour développer des pilotes Windows universels :
Visual Studio 2015 : Définir « Target Platform » égal à « Universal ». Pour plus d’informations sur la configuration de l’environnement de développement de pilotes, consultez documentation du développeur de matériel Windows et Génération d’un pilote avec leWDK.
Outil APIValidator : Vous pouvez utiliser l'outil ApiValidator.exe pour vérifier que les API que votre pilote appelle sont valides pour un pilote Windows universel. Cet outil fait partie du Kit de pilotes Windows (WDK) pour Windows 10 et s’exécute automatiquement si vous utilisez Visual Studio 2015. Pour plus d’informations, consultez APIValidator.
Documentation de référence DDI : la documentation de référence DDI est mise à jour pour indiquer les DDIS prises en charge par les pilotes Windows universels. Pour plus d'informations, consultez la Référence des appareils audio .
Créer un pilote audio universel
Pour obtenir des instructions pas à pas, consultez documentation du matériel Windows pour développeurs et Création d’un pilote avec le WDK. Voici un résumé des étapes suivantes :
Chargez l'échantillon sysvad audio universel à utiliser comme point de départ pour votre pilote audio universel. Vous pouvez également commencer par le modèle de pilote WDM vide et ajouter du code à partir de l’exemple sysvad universel si nécessaire pour votre pilote audio.
Dans les propriétés du projet, définissez La plateforme cible sur « Universal ».
Créez un package d’installation : si votre appareil cible exécute Windows 10 pour les éditions de bureau (Famille, Professionnel, Entreprise et Éducation), utilisez un fichier INF universel. Si votre appareil cible exécute Windows 10 Mobile, utilisez PkgGen pour générer un fichier .spkg.
Générez, installez, déployez et déboguez le pilote pour Windows 10 pour les éditions de bureau ou Windows 10 Mobile.
Exemple de code
Sysvad et SwapAPO ont été convertis en exemples de pilotes Windows universels. Pour plus d'informations, voir Exemples de pilotes audio.
Interfaces de programmation disponibles pour les pilotes Windows universels pour audio
À compter de Windows 10, les interfaces de programmation de pilotes font partie des éditions OneCoreUAP de Windows. À l’aide de cet ensemble commun, vous pouvez écrire un pilote Windows universel. Ces pilotes s’exécutent sur Windows 10 pour les éditions de bureau et Windows 10 Mobile et d’autres versions de Windows 10.
Les DDI suivantes sont disponibles lorsque vous travaillez avec des pilotes audio universels.
Convertir un pilote audio existant en pilote Windows universel
Suivez ce processus pour convertir un pilote audio existant en pilote Windows universel.
Déterminez si vos appels de pilote existants s’exécutent sur OneCoreUAP Windows. Vérifiez la section des exigences des pages de référence. Pour plus d'informations, voir Référence des appareils audio.
Recompilez votre pilote en tant que pilote Windows universel. Dans les propriétés du projet, définissez La plateforme cible sur « Universal ».
Utilisez l’outil ApiValidator.exe pour vérifier que les DDIs que votre pilote appelle sont valides pour un pilote Windows universel. Cet outil fait partie du Kit de pilotes Windows (WDK) pour Windows 10 et s’exécute automatiquement si vous utilisez Visual Studio 2015. Pour plus d’informations, consultez APIValidator.
Si le pilote appelle des interfaces qui ne font pas partie de OneCoreUAP, le compilateur signale des erreurs.
Remplacez ces appels par d’autres appels, ou créez une solution de contournement de code ou écrivez un nouveau pilote.
Création d’une installation de pilote audio modulaire
Aperçu
Pour créer une expérience d’installation plus fluide et plus fiable et pour mieux prendre en charge la maintenance des composants, divisez le processus d’installation du pilote en composants suivants.
- DSP (le cas échéant) et codec
- APO
- Personnalisations OEM
Si vous le souhaitez, des fichiers INF distincts peuvent être utilisés pour le DSP et le codec.
Ce diagramme résume une installation audio composée.
Un fichier INF d’extension distinct est utilisé pour personnaliser chaque composant de pilote de base pour un système particulier. Les personnalisations incluent les paramètres de réglage et d’autres paramètres spécifiques au système. Pour plus d’informations, consultez Utilisation d’un fichier INF d’extension.
Un fichier INF d’extension doit être un fichier INF universel. Pour plus d’informations, consultez Utilisation d’un fichier INF universel.
Pour plus d’informations sur l’ajout de logiciels à l’aide de fichiers INF, consultez Using a Component INF File and DCH Design Principles and Best Practices.
Envoi de fichiers INF composantés
Les packages INF APO doivent être soumis au Partner Center séparément du package du pilote de base. Pour plus d’informations sur la création de packages, consultez Mise en route de Windows HLK.
Fichiers INF composés SYSVAD
Pour voir un exemple de fichiers INF composés, examinez le fichier sysvad/TabletAudioSample, sur GitHub.
Nom de fichier | Description |
---|---|
ComponentizedAudioSample.inf | Le fichier INF de base de l'échantillon audio composé. |
ComponentizedAudioSampleExtension.inf | Le pilote d'extension pour la base sysvad avec des personnalisations OEM supplémentaires. |
ComponentizedApoSample.inf | Un fichier INF d'extension APO d'exemple. |
Les fichiers INF traditionnels continuent d’être disponibles dans l’exemple SYSVAD.
Nom de fichier | Description |
---|---|
tabletaudiosample.inf | Fichier INF monolithique de bureau qui contient toutes les informations nécessaires pour installer le pilote. |
Paramètres de paramétrage spécifiques au fournisseur APO et configuration des fonctionnalités
Tous les réglages, paramètres et valeurs de réglage spécifiques au système du fournisseur APO doivent être installés via un package INF d'extension. Dans de nombreux cas, cela peut être effectué de manière simple avec la directive INF AddReg . Dans des cas plus complexes, un fichier de paramétrage peut être utilisé.
Les paquets de pilotes de base ne doivent pas dépendre de ces personnalisations pour fonctionner (bien que la fonctionnalité puisse être réduite).
APPs de réglages audio UWP
Pour implémenter une interface utilisateur utilisateur final, utilisez une application de support matériel (HSA) pour un pilote Audio universel Windows. Pour plus d'informations, voir Application d'assistance matérielle (HSA) : étapes pour les développeurs de pilotes.
Lancement programmatique d’applications de prise en charge matérielle UWP
Pour lancer par programmation une application de support matériel UWP, basée sur un événement de pilote (par exemple, lorsqu’un nouvel appareil audio est connecté), utilisez les API Windows Shell. Les API Windows 10 Shell prennent en charge une méthode pour lancer l’interface utilisateur UWP en fonction de l’activation des ressources ou directement via IApplicationActivationManager. Vous trouverez plus d’informations sur le lancement automatisé pour les applications UWP dans Automatiser le lancement d’applications UWP Windows 10.
APO et fournisseur de pilotes de périphérique utilisent l’API AudioModules
L’API modules audio/DDI est conçue pour normaliser le transport de communication (mais pas le protocole) pour les commandes passées entre une application UWP ou un service en mode utilisateur vers un module de pilote de noyau ou un bloc de traitement DSP. Les modules audio nécessitent un pilote implémentant la DDI correcte pour prendre en charge l’énumération et la communication des modules. Les commandes sont passées en tant que binaire et interprétation/définition sont laissées au créateur.
Les modules audio ne sont actuellement pas conçus pour faciliter la communication directe entre une application UWP et une APO SW s’exécutant dans le moteur audio.
Pour plus d’informations sur les modules audio, consultez Implémentation de la communication de module audio et Configurer et interroger des modules d’appareil audio.
Construction des chaînes APO HWID
Les ID matériels APO incorporent des informations standard et des chaînes définies par le fournisseur.
Elles sont construites comme suit :
SWC\VEN_v(4)&AID_a(4)&SUBSYS_ n(4)s(4) &REV_r(4)
SWC\VEN_v(4)&AID_a(4)&SUBSYS_ n(4)s(4)
SWC\VEN_v(4)&AID_a(4)
Où:
- v(4) est l’identificateur de 4 caractères pour le fournisseur d’appareils APO. Cette opération sera gérée par Microsoft.
- a(4) est l’identificateur de 4 caractères pour l’APO, défini par le fournisseur APO.
- n(4) est l’identificateur PCI SIG de 4 caractères attribué au fournisseur du sous-système pour le dispositif parent. Il s’agit généralement de l’identificateur OEM.
- s(4) est l’identificateur de sous-système défini par le fournisseur de 4 caractères pour l’appareil parent. Il s’agit généralement de l’identificateur de produit OEM.
Évaluation de la version et de la date de l'INF Plug and Play pour la mise à jour du pilote
Le système Windows Plug-and-Play évalue la date et la version du pilote pour déterminer quel lecteur installer quand plusieurs pilotes existent. Pour plus d’informations, consultez Comment Windows Classe les pilotes.
Pour permettre l’utilisation du pilote le plus récent, assurez-vous et mettez à jour la date et la version pour chaque nouvelle version du pilote.
Clé de registre du pilote APO
Pour les clés de registre des pilotes audio/APO définis par des tiers, utiliser HKR.
Utiliser un service Windows pour faciliter la communication UWP <-> APO
Un service Windows n’est pas strictement requis pour la gestion des composants en mode utilisateur, tels que les API. Toutefois, si votre conception inclut un serveur RPC pour faciliter la communication APO UWP <->, nous vous recommandons d’implémenter cette fonctionnalité dans un service Windows qui contrôle l’APO s’exécutant ensuite dans le moteur audio.
Création de l'échantillon audio universel Sysvad pour Windows 10 Desktop
Effectuez les étapes suivantes pour générer l’exemple sysvad pour le bureau Windows 10.
Recherchez le fichier inf de bureau (tabletaudiosample.inf) et définissez le nom du fabricant sur une valeur telle que « Contoso »
Dans l’Explorateur de solutions, sélectionnez et maintenez la solution (ou cliquez avec le bouton droit) sur la solution « sysvad », puis choisissez Configuration Manager. Si vous effectuez un déploiement sur une version 64 bits de Windows, définissez la plateforme cible sur x64. Assurez-vous que les paramètres de configuration et de plateforme sont identiques pour tous les projets.
Construisez tous les projets de la solution sysvad.
Localisez le répertoire de sortie de la compilation à partir de la compilation. Par exemple, il peut se trouver dans un répertoire comme suit :
C:\Program Files (x86)\Windows Kits\10\src\audio\sysvad\x64\Debug\package
Copiez les fichiers suivants dans le système que vous souhaitez installer le pilote sysvad :
Fichier | Description |
---|---|
TabletAudioSample.sys | Le fichier pilote. |
tabletaudiosample.inf | Fichier d’informations (INF) qui contient les informations nécessaires pour installer le pilote. |
sysvad.cat | Fichier catalogue. |
SwapAPO.dll | Exemple d’extension de pilote pour une interface utilisateur pour gérer les API. |
KeywordDetectorAdapter.dll | Exemple de détecteur de mots clés. |
Installer et tester le pilote
Suivez ces étapes pour installer le pilote à l’aide de PnpUtil sur le système cible.
Ouvrez une invite de commandes en tant qu'administrateur, puis tapez ce qui suit dans le répertoire où vous avez copié les fichiers du pilote.
pnputil -i -a tabletaudiosample.inf
L’installation du pilote sysvad doit se terminer. S’il existe des erreurs, vous pouvez examiner ce fichier pour plus d’informations :
%windir%\inf\setupapi.dev.log
Dans le Gestionnaire de périphériques, dans le menu Affichage, choisissez Appareils par type. Dans l'arborescence des périphériques, localisez Microsoft Virtual Audio Device (WDM) - Sysvad Sample. Il s’agit généralement du nœud son, vidéo et contrôleurs de jeu.
Sur l’ordinateur cible, ouvrez le Panneau de configuration et accédez à Matériel et Son>Gérer les périphériques audio. Dans la boîte de dialogue Son, sélectionnez l’icône du haut-parleur étiquetée en tant que périphérique audio virtuel Microsoft (WDM) - Exemple Sysvad, puis sélectionnez Définir la valeur par défaut, mais ne sélectionnez pas OK. La boîte de dialogue Son est alors ouverte.
Recherchez un fichier MP3 ou un autre fichier audio sur l’ordinateur cible, puis double-cliquez dessus pour le lire. Ensuite, dans la boîte de dialogue Son, vérifiez qu’il existe une activité dans l’indicateur de niveau de volume associé au périphérique audio virtuel Microsoft (WDM) - pilote exemple Sysvad.