Главной и изначальной задачей реестра было хранение конфигурации шины COM, автоматизирующей маршалинг.
DirectShow - это, пожалуй, самый сложный кусок API, который вообще там есть. Да, оно привязано к COM, поэтому хранит там объявление COM-объекта отдельно привязки к DirectShow для дальнейшего построения графа воспроизведения и это при условии, что у него нету своих параметров. Ближайшее что есть похожее на DirectShow в юниксах - это GStreamer.> То что в венде чорный ящег - оно как бы не плохо само по себе, пока ты юзер и у тебя всё работает, но когда у тебя не работает, то даже будучи разрабом становится проблематично дебажить.
Тыц! тебя в твой черный ящик. https://docs.microsoft.com/en-us/windows/win32/directshow/di...
Там доберешься до авторегистрации фильтров поймешь, где это там всё.
> Условно говоря, если вам нужно добавить в систему кодек - то вызывается какая то утилита которая что то там делает и он как то записывается.
Ага, https://docs.microsoft.com/en-us/windows-server/administrati...
регистрация dll как COM-сервера это такое неизвестное, что надо Биллу Гейтсу лично писать спрашивать, не иначе. Подсказка, оно называется так как автор DLL написал в коде на C++, ему присваивается уникальный идентификатор, ну короче COM-шина.
> И я слишком часто встречал ситуации когда на 10 системах что то сработало а на 11 ошибка, хотя везде было всё одинаково сделано. И дебаг опять же очень сложный всегда.
Хммм... Ну тогда единственный выход - обратиться к системному администратору.