Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Een stuurprogramma voor een audioadapter biedt filterfabrieken voor het beheren van de instantiëring van filters. Elke filterfactory kan een of meer KS-filters van een bepaald type instantiëren. Als een filtertype een bepaalde hardwarefunctie inkapselt, wordt het aantal filters van dat type dat de fabriek kan instantiëren beperkt door de onderliggende hardwarebronnen.
Omdat een filterfactory een grotendeels autonome blok hardwarefunctionaliteit beheert, kan elke filterfactory als een apparaatstuurprogramma op zichzelf worden beschouwd. De term adapter driver, zoals gebruikt in de vorige alinea, verwijst naar een collectie van gerelateerde stuurprogramma's—filterfabrieken—die samen worden samengebracht om de verschillende hardwarefuncties op een adapterkaart te beheren.
Net als bij elk ander Microsoft Windows Driver Model (WDM)-stuurprogramma, verwerkt een filterfabriek energiebeheer en installatiefunctionaliteit. Tijdens de installatie registreert het INF-bestand voor het stuurprogramma een of meer filterapparaatnamen (zie Device Identification Strings). Dit proces laadt de namen in het systeemregister en koppelt elke filterfactory aan een of meer KS-filtercategorieën, zoals beschreven in Apparaatinterfaces installeren voor een audioadapter. Alle audioapparaten worden geclassificeerd onder KSCATEGORY_AUDIO, maar een audioapparaat kan ook worden geclassificeerd onder extra categorieën, zoals KSCATEGORY_RENDER (voor een audiorenderingsapparaat) of KSCATEGORY_CAPTURE (voor een audio-opnameapparaat). Het stuurprogramma kondigt de algemene mogelijkheden van een apparaat aan door middel van de verschillende categorieën waaronder het het filter voor dat apparaat registreert. Wanneer het SysAudio-systeemstuurprogramma bijvoorbeeldeen audioapparaat van een bepaald type vereist, wordt het in het register gezocht naar apparaten die in de juiste categorieën vallen.
Het besturingssysteem maakt gebruik van de Installatie-API, zoals beschreven in de installatie van het apparaat en stuurprogramma, om alle KSCATEGORY_AUDIO filterfabrieken in het register te detecteren en op te sommen. De registervermelding van elke factory specificeert zowel de beschrijvende naam van de filterfactory als de apparaatnaam. Dit is een lange tekenreeks die een client doorgeeft aan de create-file oproep waarmee het filter wordt aangemaakt. Deze aanroep kan worden uitgevoerd om ZwCreateFile te
Een typische WDM-audioadapterkaart kan zich bijvoorbeeld op een PCI-bus bevinden en meerdere I/O-connectors bevatten voor het weergeven of vastleggen van golfgegevens. Een enkel audioapparaat op deze kaart kan analoge audio-outaansluitingen bevatten voor het besturen van een set luidsprekers en een line-outkabel, en analoge audio-inaansluitingen voor het ontvangen van signalen van een microfoon en een lijnkabel. Het WDM-audiosysteem vertegenwoordigt het apparaat als filter en vertegenwoordigt de audioaansluitingen als spelden op dat filter.
Het filter voor een audioapparaat wordt geïmplementeerd als afzonderlijke poort- en minipoortdrivers die met elkaar verbonden zijn om gezamenlijk te functioneren.
- Het minipoortstuurprogramma bevat de hardwarespecifieke code.
- Het poortstuurprogramma bevat de algemene code die gebruikelijk is voor alle filters van een bepaald type.
De leverancier schrijft het minipoortstuurprogramma, dat alle eigen code bevat die het filter nodig heeft om de audiohardware te beheren. Het besturingssysteem biedt het poortstuurprogramma, dat toegankelijk is via het PortCls-systeemstuurprogramma (Portcls.sys; zie Port Class Adapter Driver en PortCls System Driver). Het verdelen van de filterimplementatie in poort- en minipoortstuurprogramma's vereenvoudigt de taak van het schrijven van een stuurprogramma voor een eigen apparaat.
Wanneer een filterfabriek een filter instantieert, wordt eerst het miniportstuurprogrammaobject voor het filter gemaakt. De filterfactory maakt vervolgens een exemplaar van het juiste poortobject en verbindt het minipoortstuurprogrammaobject aan dat exemplaar om een volledig functionerend filter te vormen. Het codevoorbeeld in Subdevice Creation illustreert dit proces. De poort- en minipoortstuurprogramma's communiceren met elkaar via goed gedefinieerde software-interfaces. Zie MiniportInterfaces en Ondersteunen van een apparaatvoor meer informatie over deze interfaces.
Een audiofilter toont de structuur van het onderliggende audioapparaat als een verzameling pin factory's, knooppunten en interne verbindingen. Het minipoortstuurprogramma consolideert deze informatie in een filterdescriptor, een structuur van het type PCFILTER_DESCRIPTOR. Deze structuur bevat op zijn beurt afzonderlijke descriptors voor de pin factory's, knooppunten en interne verbindingen van het filter. Deze descriptors zijn structuren van de volgende typen:
Om de filterdescriptor te verkrijgen van het minipoortstuurprogramma, roept het poortstuurprogramma de IMiniport::GetDescription methode aan.
Voor een voorbeeld van hoe een stuurprogramma de PCFILTER_DESCRIPTOR structuur instelt, raadpleegt u het sysvad-voorbeeldstuurprogramma, dat wordt besproken in voorbeeldaudiostuurprogramma's.