Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Při psaní minidriveru AVStream poskytujete filtry, které používají jedno ze dvou paradigmat zpracování: zpracování zaměřené na pin nebo zpracování zaměřené na filtr.
Zpracování založené na pinech znamená, že AVStream volá proceduru zpracování pinů minidriveru při příchodu nových snímků do fronty pinu.
Zpracování zaměřené na filtr znamená, že AVStream volá rozcestníkovou rutinu procesu filtru minidriveru, pokud jsou na každém vytvořeném pinu k dispozici datové rámce. Všimněte si, že tyto definice určují výchozí chování; minidrivers mohou změnit výchozí chování nastavením příznaků ve struktuře KSPIN_DESCRIPTOR_EX .
Obecně platí, že softwarové filtry používají zpracování zaměřené na filtry, zatímco hardwarové filtry používají zpracování zaměřené na piny. Například hardware, který transformuje nebo vykresluje data, může směrovat data ve filtru zaměřeném na pin. Existují vzácné případy, kdy mohou být tyto role obráceny.
Minidriver poskytuje ukazatel na rutinu zpětného volání AVStrMiniPinProcess v každé struktuře KSPIN_DISPATCH; neposkytujte přiřazení zpracování ve struktuře KSFILTER_DISPATCH.
Pokud minidriver nezmění nastavení příznaku ve struktuře KSPIN_DESCRIPTOR_EX, AVStream volá dodavatelskou zpětnou volací rutinu AVStrMiniPinProcess ve třech situacích:
Kolík přechází do minimálního provozního stavu. Rámce už musí existovat ve frontě a pin musí přecházet z menšího než minimálního stavu zpracování do alespoň minimálního stavu zpracování.
Dorazí nové rámy. Kolík musí být minimálně ve stavu minimálního zpracování a nesmí obsahovat žádné rámečky před úvodním okrajem ani před ní.
Minidriver explicitně volá KsPinAttemptProcessing.
Ve výchozím nastavení je pozastavení minimálním stavem zpracování.
Kromě toho AVStream nezavolá volání procesu přiřazení pinu, pokud je AND brána pinu uzavřena. Pokud použijete rutiny KSGATEXxx k přidání dalších vypnutých vstupů do brány AND kolíku, váš proces spouštění nebude volán.
Když AVStream volá AVStrMiniPinProcess, poskytuje ukazatel na objekt pinu, který má k dispozici data. Voláním KsPinGetLeadingEdgeStreamPointer pak může minidriver získat počáteční hraniční ukazatel. Minidrivery pak manipulují s daty datového proudu pomocí API stream pointer.
Minidrivery, které používají pin-orientované zpracování, mohou upravit, kdy AVStream volá obsluhu AVStrMiniPinProcess nastavením příznaků ve struktuře KSPIN_DESCRIPTOR_EX. Popisy příznaků na stránce odkazu KSPIN_DESCRIPTOR_EX jsou zvláště relevantní pro dodavatele, kteří implementují filtry zaměřené na pin.
Pokusy o zpracování mohou selhat, pokud minidriver drží mutex zpracování prostřednictvím KsPinAcquireProcessingMutex. K problémům může dojít také v případě, že minidriver přímo manipuluje s bránou pomocí volání KSGATE* .
Ovladač AVStream Simulated Hardware Sample Driver (AVSHwS) ve vzorových ukázkách sady Windows Driver Kit je zaměřený na zachycování toku dat pro simulovaný kus hardwaru. Ukázka Avshws ukazuje, jak implementovat DMA prostřednictvím AVStream.