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 toepassing kan de DirectShow IFilterMapper2-interface gebruiken om automatisch te zoeken naar filters die voldoen aan bepaalde criteria. Deze toepassing kan de lijst met voorgestelde filters gebruiken die IFilterMapper2 retourneert om automatisch filtergrafieken te bouwen met filters die televisiesignalen ontvangen en weergeven. Om snel filters te vinden die voldoen aan de opgegeven criteria, gebruikt IFilterMapper2 informatie over een filter en de bijbehorende pinnen die eerder in een cache zijn ingevoerd. De discussie in de volgende alinea's verwijst naar deze cache als de pincodegegevenscache.
De informatie in de pincodegegevenscache bevat een lijst met mediums en mediatypen voor elke pin die door het filter kan worden weergegeven. IFilterMapper2 gebruikt deze cachegegevens om te bepalen of een mogelijk filter verbinding kan maken met een pin op een filter dat al in de grafiek staat. Als u deze bepaling maakt, wordt de overhead van het maken van een exemplaar van een filter alleen geëlimineerd om te bepalen dat het maken van verbinding met het filter wordt voorkomen omdat een medium of mediatype niet overeenkomt. Als de gegevenscache voor een filter niet up-to-date is, kan een filter verkeerd worden geëlimineerd als kandidaat voor verbinding in een filtergrafiek.
Wanneer een BDA minidriver bepaalt dat de gegevenscache die directShow gebruikt, niet up-to-date is, moet die minidriver de pincodegegevenscache bijwerken, zodat de gegevens voor BDA-filterexemplaren van het BDA-onderdeel van de minidriver nauwkeurig worden weergegeven in een filtergrafiek. Een BDA minidriver werkt directShow's pincodegegevenscache bij, zoals beschreven in de volgende scenario's:
Een BDA minidriver is mogelijk of niet vereist om de cache voor pincodegegevens van DirectShow bij te werken wanneer de minidriver in eerste instantie BDA-filterinstanties maakt, afhankelijk van hoe die minidriver BDA-filters presenteert als DirectShow-filters in de gebruikersmodus. Het INF-bestand (Information) van een BDA minidriver geeft het mechanisme aan dat de minidriver gebruikt om de BDA-filters als DirectShow-filters weer te geven.
BDA minidrivers gebruiken doorgaans de KS-proxymodule (kernelstreaming) (Ksproxy.ax) om hun BDA-filters te presenteren als DirectShow-filters. KS-proxy werkt de pincodegegevenscache van DirectShow automatisch bij om pincodegegevens voor BDA-filters beschikbaar te maken wanneer exemplaren van deze filters in eerste instantie worden gemaakt. Daarom hoeven BDA-minidrivers die gebruikmaken van KS-proxy geen actie uit te voeren om de pincodegegevenscache van DirectShow bij te werken wanneer ze in eerste instantie exemplaren van filters maken. Als een BDA-filter wordt blootgesteld aan de gebruikersmodus via KS-proxy, bevat de informatie in de cache automatisch de mediums en mediatypen voor de pin factory's die aanwezig zijn op het filterexemplaren direct nadat de verzendroutine voor het filter is gemaakt.
Sommige BDA minidrivers gebruiken geen KS-proxy om hun BDA-filters te presenteren als DirectShow-filters. BDA ontvanger minidrivers die BDA-filters implementeren om analoge televisiesignalen te ontvangen of verwerken, gebruiken bijvoorbeeld de modules KSTVTune.ax of KSXBar.ax om deze BDA-filters als DirectShow-filters te presenteren. Omdat deze modules geen standaardmethoden voor KS-proxyinterface gebruiken om de cache voor pincodegegevens van DirectShow bij te werken, moeten BDA minidrivers voor deze typen BDA-filters de cache voor pincodegegevens van DirectShow bijwerken wanneer deze minidrivers in eerste instantie exemplaren van filters maken. Om ervoor te zorgen dat de pincodegegevenscache van DirectShow wordt bijgewerkt wanneer exemplaren van deze filters worden gemaakt, roept een BDA minidriver de functie BdaFilterFactoryUpdateCacheData onmiddellijk aan nadat de functie BdaInitFilter is aangeroepen binnen de implementatie van de verzendroutine voor het maken van het filter. In deze oproep geeft de minidriver pininformatie door om alle initiële aansluitingen op het filter bij te werken.
Pinnen kunnen dynamisch op een BDA-filter worden gemaakt nadat de aanmaakverzendroutine van het filter is voltooid. Als het in eerste instantie gemaakte exemplaar van een BDA-filter geen exemplaren weergeeft van alle pinnen die worden vermeld in de sjabloontopologie van het BDA-filter (BDA_FILTER_TEMPLATE), moet de BDA Minidriver BdaFilterFactoryUpdateCacheData aanroepen om informatie te forceren over alle pinnen die worden vermeld in de sjabloontopologie van het filter.
Notitie Het bijwerken van de pincodegegevenscache van DirectShow heeft aanzienlijke overhead omdat het register wordt aangeraakt en gewijzigd. Bovendien heeft het bijwerken van de pincodegegevenscache van DirectShow invloed op de hoeveelheid tijd die DirectShow nodig heeft om automatisch filtergrafieken te bouwen. Daarom moet een BDA minidriver BdaFilterFactoryUpdateCacheData alleen aanroepen voor alle mogelijke pinnen wanneer wordt bepaald dat de gegevenscache van de pincode die DirectShow gebruikt, niet up-to-date is.
Indien mogelijk moet een BDA minidriver BdaFilterFactoryUpdateCacheData aanroepen wanneer een stuurprogramma, firmware of hardware-update heeft plaatsgevonden.