Delen via


Universele Windows-stuurprogramma's voor audio

In Windows 10 kunt u een universeel audiostuurprogramma schrijven dat op veel soorten hardware werkt. In dit onderwerp worden de voordelen van deze benadering en de verschillen tussen platforms besproken. Naast de Universele Windows-stuurprogramma's voor audio, blijft Windows ondersteuning bieden voor eerdere technologieën voor audiostuurprogramma's, zoals WDM.

Aan de slag met Universele Windows-stuurprogramma's voor Audio

IHD's kunnen een Universeel Windows-stuurprogramma ontwikkelen dat werkt op alle apparaten (desktops, laptops, tablets, telefoons). Dit kan de ontwikkeltijd en kosten voor de eerste ontwikkeling en het latere codeonderhoud verminderen.

Deze hulpprogramma's zijn beschikbaar voor het ontwikkelen van Universele Windows-stuurprogramma's:

  • Visual Studio 2015: Stel 'Doelplatform' in op 'Universeel'. Zie Documentatie voor Windows-hardwareontwikkelaars en Een stuurprogramma bouwen met de WDK-voor meer informatie over het instellen van de ontwikkelomgeving voor stuurprogramma's.

  • APIValidator Tool: u kunt het hulpprogramma ApiValidator.exe gebruiken om te controleren of de API's van uw stuurprogramma's geldig zijn voor een Universeel Windows-stuurprogramma. Dit hulpprogramma maakt deel uit van de Windows Driver Kit (WDK) voor Windows 10 en wordt automatisch uitgevoerd als u Visual Studio 2015 gebruikt. Zie APIValidator-voor meer informatie.

  • DDI-referentiedocumentatie: de DDI-referentiedocumentatie wordt bijgewerkt om aan te geven welke DDIs worden ondersteund door Universele Windows-stuurprogramma's. Zie Referentie voor audioapparatenvoor meer informatie.

Een Universal Audio Driver maken

Zie Windows-documentatie voor hardwareontwikkelaars en Een stuurprogramma bouwen met de WDK-voor stapsgewijze instructies. Hier volgt een samenvatting van de stappen:

  1. Laad het universele audio sysvad-voorbeeld om te gebruiken als uitgangspunt voor uw universele audiostuurprogramma. U kunt ook beginnen met de lege WDM-stuurprogrammasjabloon en zo nodig code toevoegen uit het universele sysvad-voorbeeld voor uw audiostuurprogramma.

  2. Stel doelplatform in de projecteigenschappen in op 'Universeel'.

  3. Maak een installatiepakket: Als het apparaat Windows 10 voor desktop-edities (Home, Pro, Enterprise en Education) uitvoert, gebruikt u een universeel INF-bestand. Als uw doelapparaat Windows 10 Mobile draait, gebruikt u PkgGen om het SPKG-bestand te genereren.

  4. Bouw, installeer, rol uit en los fouten op in het stuurprogramma voor Windows 10 voor desktopversies of Windows 10 Mobile.

Voorbeeldcode

Sysvad en SwapAPO zijn geconverteerd naar universele Windows-stuurprogrammavoorbeelden. Zie Voorbeeldaudiostuurprogramma'svoor meer informatie.

Beschikbare programmeerinterfaces voor universele Windows-stuurprogramma's voor audio

Vanaf Windows 10 maken de programmeerinterfaces voor stuurprogramma's deel uit van op OneCoreUAP gebaseerde edities van Windows. Door deze algemene set te gebruiken, kunt u een Universeel Windows-stuurprogramma schrijven. Deze stuurprogramma's worden uitgevoerd op zowel Windows 10 voor desktopversies als Windows 10 Mobile en andere Versies van Windows 10.

De volgende DDIs zijn beschikbaar wanneer u met universele audiostuurprogramma's werkt.

Een bestaand audiostuurprogramma converteren naar een Universeel Windows-stuurprogramma

Volg dit proces om een bestaand audiostuurprogramma te converteren naar een Universeel Windows-stuurprogramma.

  1. Bepaal of uw bestaande stuurprogrammaaanroepen worden uitgevoerd in OneCoreUAP Windows. Controleer de sectie Vereisten van de referentiepagina's. Zie voor meer informatie de Audio Devices Reference .

  2. Uw stuurprogramma opnieuw compileren als een Universeel Windows-stuurprogramma. Stel doelplatform in de projecteigenschappen in op 'Universeel'.

  3. Gebruik het hulpprogramma ApiValidator.exe om te controleren of de DDIs's die uw stuurprogramma-aanroepen geldig zijn voor een Universeel Windows-stuurprogramma. Dit hulpprogramma maakt deel uit van de Windows Driver Kit (WDK) voor Windows 10 en wordt automatisch uitgevoerd als u Visual Studio 2015 gebruikt. Zie APIValidator-voor meer informatie.

  4. Als het stuurprogramma interfaces aanroept die geen deel uitmaken van OneCoreUAP, meldt de compiler fouten.

  5. Vervang deze aanroepen door alternatieve aanroepen, maak een omweg in de code of schrijf een nieuw stuurprogramma.

Een componentgerichte installatie van een audiostuurprogramma maken

Overzicht

Als u een soepelere en betrouwbaardere installatie-ervaring wilt creëren en het onderhoud van onderdelen beter wilt ondersteunen, verdeelt u het installatieproces van het stuurprogramma in de volgende onderdelen.

  • DSP (indien aanwezig) en Codec
  • APO
  • OEM-aanpassingen

U kunt eventueel afzonderlijke INF-bestanden gebruiken voor de DSP en Codec.

Dit diagram bevat een overzicht van een gecomponentde audio-installatie.

diagram van gecomponentde audiostack met DSP-stuurprogramma, codec en API's.

Er wordt een afzonderlijk INF-extensiebestand gebruikt om elk basisstuurprogrammaonderdeel voor een bepaald systeem aan te passen. Aanpassingen omvatten afstemmingsparameters en andere systeemspecifieke instellingen. Zie voor meer informatie Een extensie INF-bestand gebruiken.

Een extensie-INF-bestand moet een universeel INF-bestand zijn. Zie Een universeel INF-bestand gebruikenvoor meer informatie.

Zie Using a Component INF File and DCH Design Principles and Best Practicesvoor informatie over het toevoegen van software met behulp van INF-bestanden.

In onderdelen geplaatste INF-bestanden verzenden

APO INF-pakketten moeten afzonderlijk van het basisstuurprogrammapakket naar het Partnercentrum worden verzonden. Zie Aan de slag met Windows HLKvoor meer informatie over het maken van pakketten.

INF-bestanden met SYSVAD-onderdelen

Als u een voorbeeld wilt zien van gecomponenterde INF-bestanden, bekijkt u de sysvad/TabletAudioSample-op GitHub.

Bestandsnaam Beschrijving
ComponentizedAudioSample.inf Het gecomponenteerde INF-bestand van de voorbeeld-audio.
ComponentizedAudioSampleExtension.inf Het extensiestuurprogramma voor de sysvad-basis met extra OEM-aanpassingen.
ComponentizedApoSample.inf Een APO-voorbeeldextensie INF-bestand.

De traditionele INF-bestanden blijven beschikbaar in het SYSVAD-voorbeeld.

Bestandsnaam Beschrijving
tabletaudiosample.inf Een monolithisch INF-bestand van het bureaublad dat alle informatie bevat die nodig is om het stuurprogramma te installeren.

APO-leverancierspecifieke afstemmingsparameters en functieconfiguratie

Alle systeemspecifieke instellingen, parameters en afstemmingswaarden van APO-leveranciers moeten worden geïnstalleerd via een extensie INF-pakket. In veel gevallen kan dit op een eenvoudige manier worden uitgevoerd met de INF AddReg-richtlijn. In complexere gevallen kan een afstemmingsbestand worden gebruikt. 

Basisstuurprogrammapakketten mogen niet afhankelijk zijn van deze aanpassingen om te kunnen functioneren (hoewel de functionaliteit natuurlijk kan worden verminderd). 

UWP Audio-instellingen-apps

Als u een gebruikersinterface van eindgebruikers wilt implementeren, gebruikt u een HSA (Hardware Support App) voor een Windows Universal Audio-stuurprogramma. Zie Hardware Support App (HSA) voor meer informatie: stappen voor stuurprogrammaontwikkelaars.

Programmatisch UWP Hardware Support Apps starten

Als u programmatisch een UWP Hardware Support-app wilt starten op basis van een stuurprogramma-gebeurtenis (bijvoorbeeld wanneer een nieuw audioapparaat is verbonden), gebruikt u de Windows Shell-API's. De Windows 10 Shell-API's ondersteunen een methode voor het starten van de UWP-gebruikersinterface op basis van resourceactivering of rechtstreeks via IApplicationActivationManager. Meer informatie over het automatisch starten van UWP-toepassingen vindt u in Automate voor het starten van Windows 10 UWP-apps

Gebruik van de AudioModules-API door leveranciers van APO's en apparaatstuurprogramma's

De Audio Modules-API/DDI is ontworpen om het communicatietransport (maar niet het protocol) te standaardiseren voor opdrachten die tussen een UWP-toepassing of gebruikersmodusservice worden doorgegeven aan een kernelstuurprogrammamodule of DSP-verwerkingsblok. Voor audiomodules is een stuurprogramma vereist dat de juiste DDI implementeert ter ondersteuning van de opsomming en communicatie van modules. De opdrachten worden doorgegeven als binair en interpretatie/definitie wordt aan de maker overgelaten. 

Audiomodules zijn momenteel niet ontworpen om directe communicatie tussen een UWP-app en een SW APO die wordt uitgevoerd in de audio-engine te vergemakkelijken.

Zie voor meer informatie over audiomodules Het implementeren van audiomodulecommunicatie en modules voor audioapparaten configureren en opvragen.

Constructie van APO HWID tekenreeksen

APO-hardware-id's bevatten zowel standaardinformatie als door de leverancier gedefinieerde tekenreeksen.

Ze worden als volgt samengesteld:

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)

Waar:

  • v(4) is de id van vier tekens voor de leverancier van het APO-apparaat. Dit wordt beheerd door Microsoft. 
  • a(4) is de id van 4 tekens voor de APO, gedefinieerd door de APO-leverancier. 
  • n(4) is de PCI SIG-id met vier tekens voor de leverancier van het subsysteem voor het bovenliggende apparaat. Dit is doorgaans de OEM-id.
  • s(4) is de door de leverancier gedefinieerde subsysteem-id van vier tekens voor het bovenliggende apparaat. Dit is doorgaans de OEM-product-id.

Plug en Play INF-versie- en datumevaluatie voor het updaten van stuurprogramma's

Het Windows Plug en Play-systeem evalueert de datum en de versie van het stuurprogramma om te bepalen welk stuurprogramma moet worden geïnstalleerd wanneer er meerdere stuurprogramma's beschikbaar zijn. Zie Hoe Windows Stuurprogramma'srangschikt voor meer informatie.

Als u wilt toestaan dat het meest recente stuurprogramma wordt gebruikt, moet u de datum en versie voor elke nieuwe versie van het stuurprogramma controleren en bijwerken.

Registersleutel van APO-stuurprogramma

Gebruik HKR voor door derden gedefinieerde audiostuurprogramma's/APO-registersleutels.

Een Windows-service gebruiken om UWP-<-> APO-communicatie te vergemakkelijken

Een Windows-service is niet strikt vereist voor het beheer van gebruikersmodusonderdelen, zoals API's. Als uw ontwerp echter een RPC-server bevat om UWP-<-> APO-communicatie te vergemakkelijken, raden we u aan die functionaliteit te implementeren in een Windows-service die vervolgens de APO beheert die wordt uitgevoerd in de audio-engine. 

Het Sysvad Universal Audio Sample voor Windows 10 Desktop bouwen

Voer de volgende stappen uit om het sysvad-voorbeeld voor Windows 10 desktop te bouwen.

  1. Zoek het bureaublad-inf-bestand (tabletaudiosample.inf) en stel de naam van de fabrikant in op een waarde zoals Contoso

  2. Selecteer en houd de oplossing sysvad in Solution Explorer ingedrukt (of klik erop met de rechtermuisknop) en kies Configuration Manager. Als u implementeert in een 64-bits versie van Windows, stelt u het doelplatform in op x64. Zorg ervoor dat de configuratie- en platforminstellingen voor alle projecten hetzelfde zijn.

  3. Bouw alle projecten in de sysvad-oplossing.

  4. Zoek de uitvoermap voor de build vanuit de build. De map kan bijvoorbeeld in een directory zoals deze staan:

    C:\Program Files (x86)\Windows Kits\10\src\audio\sysvad\x64\Debug\package
    
  5. Kopieer de volgende bestanden naar het systeem dat u het sysvad-stuurprogramma wilt installeren:

Bestand Beschrijving
TabletAudioSample.sys Het stuurprogrammabestand.
tabletaudiosample.inf Een informatiebestand (INF) dat informatie bevat die nodig is om het stuurprogramma te installeren.
sysvad.cat Het catalogusbestand.
SwapAPO.dll Een voorbeeldstuurprogrammaextensie voor een gebruikersinterface voor het beheren van API's.
KeywordDetectorAdapter.dll Een voorbeeld van een trefwoorddetector.

Het stuurprogramma installeren en testen

Volg deze stappen om het stuurprogramma te installeren met behulp van de PnpUtil op het doelsysteem.

  1. Open en administrator opdrachtprompt en typ het volgende in de map waarnaar u de stuurprogrammabestanden hebt gekopieerd.

    pnputil -i -a tabletaudiosample.inf

  2. De installatie van het sysvad-stuurprogramma moet zijn voltooid. Als er fouten zijn, kunt u dit bestand voor meer informatie bekijken: %windir%\inf\setupapi.dev.log

  3. Kies in Apparaatbeheer in het menu Beeld de optie Apparaten per type. Zoek in de apparaatstructuur naar Microsoft Virtual Audio Device (WDM) - Sysvad Sample. Dit bevindt zich doorgaans onder het knooppunt Geluids-, video- en gamecontrollers.

  4. Open het Configuratiescherm op de doelcomputer en navigeer naar Hardware en Geluid>Audioapparaten beheren. Selecteer in het dialoogvenster Geluid het luidsprekerpictogram met het label Microsoft Virtual Audio Device (WDM) - Sysvad Sample en selecteer Standaard instellen, maar selecteer niet OK. Hierdoor blijft het dialoogvenster Geluid geopend.

  5. Zoek een MP3- of ander audiobestand op de doelcomputer en dubbelklik erop om het af te spelen. Controleer vervolgens in het dialoogvenster Geluid of er activiteit is in de volumeniveauindicator die is gekoppeld aan het stuurprogramma Microsoft Virtual Audio Device (WDM) - Sysvad Sample.