Поделиться через


Макет разделов реестра

[Функция, связанная с этой страницей, DirectShow, является устаревшей функцией. Он был заменен MediaPlayer, IMFMediaEngineи аудио и видеозахват в Media Foundation. Эти функции оптимизированы для Windows 10 и Windows 11. Корпорация Майкрософт настоятельно рекомендует использовать новый код MediaPlayer, IMFMediaEngine и аудио-видеозахват в Media Foundation вместо DirectShowпо возможности. Корпорация Майкрософт предлагает, что существующий код, использующий устаревшие API, будет перезаписан для использования новых API, если это возможно.]

Фильтры DirectShow регистрируются в двух местах:

  • Библиотека DLL, содержащая фильтр, регистрируется в качестве COM-сервера фильтра. Когда приложение вызывает CoCreateInstance для создания фильтра, библиотека COM Microsoft Windows использует эту запись реестра для поиска библиотеки DLL.
  • Дополнительные сведения о фильтре можно зарегистрировать в категории фильтра. Эти сведения позволяют перечисли телю системных устройств и фильтру найти фильтр.

Фильтры не требуются для регистрации дополнительных сведений о фильтре. Если библиотека DLL зарегистрирована в качестве COM-сервера, приложение может создать фильтр и добавить его в граф фильтров. Однако если вы хотите, чтобы фильтр был обнаружен перечислителем системных устройств или фильтром, необходимо зарегистрировать дополнительные сведения.

Запись реестра для библиотеки DLL содержит следующие ключи:

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

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

Запись реестра для сведений фильтра содержит следующие разделы:

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

— guid категории фильтра. (См. категории фильтров.) Сведения о фильтре упаковываются в двоичный формат. Интерфейс IFilterMapper2 распаковывает эти данные при поиске реестра для фильтра.

Все идентификаторы guid категории фильтра перечислены в реестре в следующем разделе:

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