Freigeben über


Layout der Registrierungsschlüssel

[Das dieser Seite zugeordnete Feature DirectShow ist ein Legacyfeature. Es wurde von MediaPlayer, IMFMediaEngine und Audio/Video Capture in Media Foundation abgelöst. Diese Features wurden für Windows 10 und Windows 11 optimiert. Microsoft empfiehlt dringend, dass neuer Code mediaPlayer, IMFMediaEngine und Audio/Video Capture in Media Foundation anstelle von DirectShow verwendet, wenn möglich. Microsoft schlägt vor, dass vorhandener Code, der die Legacy-APIs verwendet, so umgeschrieben wird, dass nach Möglichkeit die neuen APIs verwendet werden.]

DirectShow-Filter werden an zwei Stellen registriert:

  • Die DLL, die den Filter enthält, wird als COM-Server des Filters registriert. Wenn eine Anwendung CoCreateInstance aufruft , um den Filter zu erstellen, verwendet die Microsoft Windows COM-Bibliothek diesen Registrierungseintrag, um die DLL zu suchen.
  • Zusätzliche Informationen zum Filter können innerhalb einer Filterkategorie registriert werden. Diese Informationen ermöglichen es dem Systemgeräteenumerator und der Filterzuordnung , den Filter zu suchen.

Filter sind nicht erforderlich, um die zusätzlichen Filterinformationen zu registrieren. Solange die DLL als COM-Server registriert ist, kann eine Anwendung den Filter erstellen und einem Filterdiagramm hinzufügen. Wenn Sie jedoch möchten, dass Ihr Filter vom Systemgeräte-Enumerator oder vom Filterzuordnungssteuerelement erkannt werden kann, müssen Sie die zusätzlichen Informationen registrieren.

Der Registrierungseintrag für die DLL verfügt über die folgenden Schlüssel:

HKEY_CLASSES_ROOT
    CLSID
        Filter CLSID 
            REG_SZ: (Default) = Friendly name

            InprocServer32
                REG_SZ: (Default) = File name of the DLL
                REG_SZ: ThreadingModel = Both

Der Registrierungseintrag für die Filterinformationen weist die folgenden Schlüssel auf:

HKEY_CLASSES_ROOT
    CLSID
        Category
            Instance
                Filter CLSID
                    REG_SZ: CLSID = Filter CLSID
                    REG_BINARY: FilterData = Filter information
                    REG_SZ: FriendlyName = Friendly name
Category

ist die GUID einer Filterkategorie. (Siehe Filterkategorien.) Die Filterinformationen werden in ein Binärformat gepackt. Die IFilterMapper2-Schnittstelle entpackt diese Daten, wenn sie die Registrierung nach einem Filter durchsucht.

Alle GUIDs der Filterkategorie werden in der Registrierung unter dem folgenden Schlüssel aufgeführt:

HKEY_CLASSES_ROOT\CLSID\{DA4E3DA0-D07D-11d0-BD50-00A0C911CE86}\Instance