Макет разделов реестра
[Функция, связанная с этой страницей, 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