Univerzální ovladače systému Windows pro zvuk
Ve Windows 10 můžete napsat univerzální ovladač zvuku, který bude fungovat v mnoha typech hardwaru. Toto téma popisuje výhody tohoto přístupu a také rozdíly mezi platformami. Kromě univerzálních ovladačů Windows pro zvuk Windows nadále podporuje starší technologie zvukových ovladačů, jako je WDM.
Začínáme s univerzálními ovladači Windows pro zvuk
IHV může vyvíjet univerzální ovladač Windows, který funguje na všech zařízeních (stolní počítače, notebooky, tablety, telefony). To může zkrátit dobu vývoje a náklady na počáteční vývoj a pozdější údržbu kódu.
K dispozici jsou tyto nástroje pro vývoj univerzálních ovladačů systému Windows:
Visual Studio 2015: Nastavte cílovou platformu na "Universal". Další informace o nastavení vývojového prostředí ovladačů naleznete v dokumentaci pro vývojáře hardwaru Windows a Sestavení ovladače pomocí wdK.
Nástroj APIValidator: Pomocí nástroje ApiValidator.exe můžete ověřit, zda volání vašeho ovladače na rozhraní API jsou platná pro univerzální ovladače Windows. Tento nástroj je součástí sady Windows Driver Kit (WDK) pro Windows 10 a spustí se automaticky, pokud používáte Visual Studio 2015. Další informace naleznete v tématu APIValidator.
Referenční dokumentace DDI: Referenční dokumentace DDI je aktualizována, aby indikovala, které DDI jsou podporovány univerzálními ovladači Windows. Další informace naleznete na Referenční Zvuková zařízení.
Vytvoření univerzálního zvukového ovladače
Podrobné pokyny najdete v dokumentaci pro vývojáře hardwaru pro Windows a Sestavení ovladače pomocí nástroje WDK. Tady je souhrn kroků:
Načtěte univerzální zvukovou ukázku sysvad, která se použije jako výchozí bod pro váš univerzální ovladač zvuku. Případně začněte s prázdnou šablonou ovladače WDM a podle potřeby přidejte kód z ukázky univerzálního souboru sysvad pro váš zvukový ovladač.
Ve vlastnostech projektu nastavte cílovou platformu na "Universal".
Vytvořte instalační balíček: Pokud je vaším cílem zařízení s Windows 10 pro desktopové edice (Home, Pro, Enterprise a Education), použijte univerzální soubor INF. Pokud je vaším cílem zařízení s Windows 10 Mobile, vygenerujte soubor .spkg pomocí PkgGen.
Sestavte, nainstalujte, nasaďte a laďte ovladač pro Windows 10 pro desktopové edice nebo Windows 10 Mobile.
Ukázkový kód
Sysvad a SwapAPO byly převedeny na ukázky univerzálních ovladačů systému Windows. Pro více informací se podívejte na Ukázkové Zvukové Ovladače.
Dostupná programovací rozhraní pro univerzální ovladače Systému Windows pro zvuk
Počínaje Windows 10 jsou programovací rozhraní ovladačů součástí edicí Windows založených na OneCoreUAP. Pomocí této společné sady můžete napsat univerzální ovladač systému Windows. Tyto ovladače poběží ve Windows 10 pro desktopové edice i Windows 10 Mobile a v jiných verzích Windows 10.
Při práci s univerzálními zvukovými ovladači jsou k dispozici následující identifikátory DDI.
Převod existujícího zvukového ovladače na univerzální ovladač Windows
Podle tohoto postupu převeďte existující zvukový ovladač na univerzální ovladač Systému Windows.
Určete, jestli se vaše stávající volání ovladače budou spouštět ve Windows OneCoreUAP. Zkontrolujte sekci Požadavky na referenčních stránkách. Další informace naleznete v referenční příručce Zvuková zařízení.
Překompilujte ovladač jako univerzální ovladač Windows. Ve vlastnostech projektu nastavte cílovou platformu na "Universal".
Pomocí nástroje ApiValidator.exe ověřte, že identifikátory DDI, které ovladač volá, jsou platné pro univerzální ovladač Windows. Tento nástroj je součástí sady Windows Driver Kit (WDK) pro Windows 10 a spustí se automaticky, pokud používáte Visual Studio 2015. Další informace naleznete v tématu APIValidator.
Pokud ovladač volá rozhraní, která nejsou součástí OneCoreUAP, kompilátor hlásí chyby.
Nahraďte tato volání alternativními voláními nebo vytvořte alternativní řešení kódu nebo napište nový ovladač.
Vytvoření instalace ovladače zvuku s komponentovou strukturou
Přehled
Pokud chcete vytvořit plynulejší a spolehlivější prostředí instalace a lépe podporovat údržbu součástí, rozdělte proces instalace ovladače na následující komponenty.
- DSP (pokud je k dispozici) a kodek
- Army post office
- Přizpůsobení OEM
Volitelně lze pro DSP a Kodek použít samostatné soubory INF.
Tento diagram shrnuje komponentizovanou instalaci zvuku.
Samostatný soubor INF přípony slouží k přizpůsobení jednotlivých komponent základního ovladače pro konkrétní systém. Vlastní nastavení zahrnují parametry ladění a další nastavení specifická pro systém. Další informace naleznete v tématu Použití přípony INF souboru.
Přípona INF souboru musí být univerzálním souborem INF. Další informace najdete v tématu Použití univerzálního souboru INF.
Informace o přidávání softwaru pomocí souborů INF naleznete v tématu Using a Component INF File a DCH Design Principles and Best Practices.
Odesílání komponentizovaných souborů INF
Balíčky INF APO musí být odeslány do Partnerského centra odděleně od balíčku základního ovladače. Další informace o vytváření balíčků naleznete v tématu Windows HLK Začínáme.
Komponentizované INF soubory SYSVAD
Pokud chcete zobrazit příklad komponentizovaných souborů INF, podívejte se na sysvad/TabletAudioSample, na GitHubu.
Název souboru | Popis |
---|---|
ComponentizedAudioSample.inf | Základní komponentizovaný ukázkový zvukový soubor INF. |
ComponentizedAudioSampleExtension.inf | Ovladač rozšíření pro základnu sysvad s dodatečnými úpravami OEM. |
ComponentizedApoSample.inf | Ukázkový soubor INF s příponou APO. |
Tradiční soubory INF jsou nadále k dispozici v ukázce SYSVAD.
Název souboru | Popis |
---|---|
tabletaudiosample.inf | Desktopový monolitický soubor INF, který obsahuje všechny informace potřebné k instalaci ovladače. |
Parametry ladění specifické pro dodavatele APO a konfigurace funkcí
Všechna systémově specifická nastavení, parametry a hodnoty ladění dodavatele APO musí být nainstalována prostřednictvím rozšířeného balíčku INF. V mnoha případech to lze provést jednoduchým způsobem pomocí INF AddReg direktivy. Ve složitějších případech lze použít soubor ladění.
Základní balíčky ovladačů nesmí záviset na těchto přizpůsobeních, aby fungovaly (i když se samozřejmě může omezit funkčnost).
Aplikace nastavení zvuku UWP
K implementaci uživatelského rozhraní koncového uživatele použijte aplikaci hardwarové podpory (HSA) pro ovladač Univerzálního zvuku Windows. Další informace viz Aplikace hardwarové podpory (HSA): Postup pro vývojáře ovladačů.
Programové spouštění aplikací podpory hardwaru UPW
Pokud chcete programově spustit aplikaci hardwarové podpory UPW na základě události ovladače (například při připojení nového zvukového zařízení), použijte rozhraní API prostředí Windows Shell. Rozhraní API prostředí Windows 10 podporují metodu spuštění uživatelského rozhraní UWP na základě aktivace prostředků nebo přímo prostřednictvím IApplicationActivationManager. Další podrobnosti o automatickém spouštění aplikací UWP najdete v Automate launching Windows 10 UWP apps.
APO a dodavatel ovladačů zařízení používají rozhraní API AudioModules.
Rozhraní API/DDI audio modulů je navržené tak, aby standardizovalo přenos komunikace (ale ne protokol) pro příkazy předávané mezi aplikací UPW nebo službou uživatelského režimu do modulu ovladače jádra nebo bloku zpracování DSP. Zvukové moduly vyžadují ovladač, který implementuje správnou DDI pro podporu výčtu a komunikace modulů. Příkazy se předávají ve formě binárního kódu a jejich interpretace/definice zůstává na autorovi.
Zvukové moduly nejsou v současné době navrženy tak, aby usnadnily přímou komunikaci mezi aplikací pro UPW a SW APO běžícím ve zvukovém stroji.
Pro více informací o zvukových modulech viz Implementace komunikace zvukového modulu a Konfigurace a dotazování zvukových zařízení.
Konstrukce řetězců APO HWID
ID hardwaru APO zahrnují standardní informace i řetězce definované dodavatelem.
Jsou sestaveny takto:
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)
Kde:
- v(4) je identifikátor 4 znaků pro dodavatele zařízení APO. To bude spravovat Microsoft.
- a(4) je 4znakový identifikátor objektu APO definovaný dodavatelem objektu APO.
- n(4) je 4znakový identifikátor PCI SIG přiřazený dodavatelem subsystému pro nadřazené zařízení. Obvykle se jedná o identifikátor OEM.
- s(4) je 4znakový identifikátor subsystému definovaný dodavatelem pro nadřazené zařízení. Obvykle se jedná o identifikátor produktu OEM.
Verze Plug and Play INF a hodnocení data aktualizace ovladače
Systém Windows Plug and Play vyhodnocuje datum a verzi ovladače a určí, která jednotka se má nainstalovat, pokud existuje více ovladačů. Další informace naleznete v tématu Jak systém Windows řadí ovladače.
Pokud chcete povolit použití nejnovějšího ovladače, zkontrolujte a aktualizujte datum a verzi pro každou novou verzi ovladače.
Klíč registru ovladače APO
Pro klíče registru zvukového ovladače/APO definované třetí stranou použijte HKR.
Použijte službu systému Windows k usnadnění komunikace UWP <-> APO
Služba Systému Windows není výhradně nutná pro správu komponent uživatelského režimu, jako jsou apOs. Pokud ale váš návrh zahrnuje server RPC pro usnadnění komunikace UWP <-> APO, doporučujeme implementovat tuto funkci ve službě Windows, která pak řídí objekt APO spuštěný ve zvukovém jádře.
Sestavení univerzální zvukové ukázky Sysvad pro Windows 10 Desktop
Provedením následujících kroků sestavte ukázku sysvadu pro stolní počítače s Windows 10.
Vyhledejte soubor inf na ploše (tabletaudiosample.inf) a nastavte název výrobce na hodnotu, například Contoso.
V Průzkumníku řešení vyberte a podržte (nebo klikněte pravým tlačítkem) Řešení 'sysvad' a zvolte Správce konfigurace. Pokud nasazujete do 64bitové verze Windows, nastavte cílovou platformu na x64. Ujistěte se, že nastavení konfigurace a platformy jsou pro všechny projekty stejné.
Sestavte všechny projekty v řešení sysvad.
Vyhledejte výstupní adresář pro sestavení z procesu sestavování. Může se například nacházet v adresáři, například takto:
C:\Program Files (x86)\Windows Kits\10\src\audio\sysvad\x64\Debug\package
Zkopírujte následující soubory do systému, který chcete nainstalovat ovladač sysvad:
Soubor | Popis |
---|---|
TabletAudioSample.sys | Soubor ovladače. |
tabletaudiosample.inf | Informační soubor (INF), který obsahuje informace potřebné k instalaci ovladače. |
sysvad.cat | Soubor katalogu. |
SwapAPO.dll | Ukázkové rozšíření ovladače pro uživatelské rozhraní pro správu apO. |
KeywordDetectorAdapter.dll | Detektor ukázkových klíčových slov. |
Instalace a otestování ovladače
Pomocí následujícího postupu nainstalujte ovladač pomocí PnpUtil v cílovém systému.
Otevřete příkazový řádek správce a do adresáře, do kterého jste zkopírovali soubory ovladačů, zadejte následující příkaz.
pnputil -i -a tabletaudiosample.inf
Instalace ovladače sysvad by měla být dokončena. Pokud dojde k nějakým chybám, můžete tento soubor prozkoumat, kde najdete další informace:
%windir%\inf\setupapi.dev.log
Ve Správci zařízení v nabídce Zobrazení zvolte Zařízení podle typu. Ve stromu zařízení vyhledejte Microsoft Virtual Audio Device (WDM) – Sysvad Sample. To je obvykle pod uzlem Ovladače zvuku, videa a her.
Na cílovém počítači otevřete Ovládací panely a přejděte na Hardware a zvuk>Spravovat zvuková zařízení. V dialogovém okně Zvuk vyberte ikonu reproduktoru označenou jako Microsoft Virtual Audio Device (WDM) - Sysvad Sample, pak vyberte Nastavit výchozí, ale nevybírejte OK. Tím zůstane dialogové okno Zvuk otevřené.
Na cílovém počítači vyhledejte soubor MP3 nebo jiný zvukový soubor a poklikáním ho přehrajte. Potom v dialogovém okně Zvuk ověřte, zda je aktivita v indikátoru úrovně hlasitosti přidruženého k ovladači Microsoft Virtual Audio Device (WDM) - Sysvad Sample.