Verwenden von AVStream mit dem Kernel-Streamingproxymodul
Kernelmodusfilter sind häufig im Benutzermodus über den Kernelstreamingproxy verbunden. Mit diesem Proxy wird ein Kernelmodusfilter dem Benutzermodus als DirectShow-Filter angezeigt.
Wenn dieser Verbindungsmodus verwendet wird, verbindet DirectShow die Filter durch Überschneiden ihrer Medientypen. Diese Medientypen sind das DirectShow-Pendant zu Datenformaten im Kernelmodus.
Wenn DirectShow einen Medientyp auf einem Pin im Kernelmodus auflistet, wird der entsprechende Datenbereich auf dem Pin mit dem Datenbereich des Pins durchschnitten. Diese Schnittmenge ergibt ein Datenformat, wie unter Datenbereichsschnittpunkte in AVStream beschrieben. Der Proxy konvertiert das resultierende Datenformat in einen DirectShow-Medientyp.
Wie im Kernelmodus fragt der Proxy entweder einen Datenhandler, um zu bestimmen, ob der Medientyp akzeptabel ist, oder er bestimmt, ob der Medientyp eine partielle Übereinstimmung für einen Datenbereich an der Pin ist. Eine partielle Übereinstimmung gibt an, dass im Kontext der Kernelmodussemantik der Haupttyp, das Unterformat, der Bezeichner und die erforderlichen Attribute übereinstimmen. Wenn der Medientyp teilweise übereinstimmt, wird die Verbindung fortgesetzt.
Bevor die Verbindung abgeschlossen ist, ruft AVStream den AVStrMiniPinSetDataFormat-Dispatch des Minidrivers auf, um den Minidriver über das festgelegte Datenformat zu informieren. Dieses Format entspricht dem Medientyp im Benutzermodus, der für den Proxie-Pin vorgeschlagen wurde. AVStream stellt auch den Datenbereich bereit, der als partielle Übereinstimmung für das Format ermittelt wurde.