Ваша винда не работает как хотелось бы? Все советы из поисковика перепробовали установили Linux, а оно всё равно не работает? Вы реверс-инженер или кто вообще, ну в самом деле!? Применим свои навыки владения отладчиком, поможем Шиндовс нормально (по мере её сил) работать!

На написание данной статьи меня подтолкнула злость. Злость на поделие от индусских говнокодеров под названием Windows, на то, что гугол выдаёт мне абсолютно нерабочие решения столетней давности. И вот, когда даже обновление до 11-й винды (с сохранением всех настроек и программ), а потом ещё и установка её же поверх себя не помогли, я решил, что нужно подойти с другой стороны - не как пользователь, а как реверс-инженер.

Суть проблемы

"Some settings are managed by your system administrator". Но я и есть администратор!
"Some settings are managed by your system administrator". Но я и есть администратор!

Как видно на картинке моя собственная система решила ограничить меня в возможностях конфигурирования параметров дисплея. Если вы попробуете загуглить данную строчку, вам выдадут тонну вариантов, среди которых: включение полной телеметрии, переустановка драйверов видеокарты, установка их в режиме совместимости с Windows 8 (!!!), перезапуск службы Windows Update, прикладывание горчичников к системному блоку... Как, ну скажите, как это должно вообще помогать? Очевидно, что оно и не помогло.

Источник проблемы

Я, если честно, без понятия. Не так давно винда мне стала предлагать опциональное обновление для моей AMD Radeon видеокарты, после установки которого центр управления Radeon Software взял и перестал видеть графическое устройство. Переустановка драйверов, множество ребутов вроде бы помогли, но, если бы всё закончилось хорошо, статьи бы не было.

Решение проблемы

Имея за плечами, какой-никакой опыт реверс-инжиниринга, я подумал: а почему не попробовать решить данную проблему иначе? Открыть отладчик, найти виновника, выяснить, что для него является триггером на выдачу сего сообщения, и изменить условие на противоположное (конечно, надежда на реестр).

В качестве отладчика я вооружился x64dbg. Процесс, который выводит окно настроек также быстро нашёлся:

Аттачусь к нему. Далее перехожу на вкладку Symbols, и загружаю pdb-файлы для процесса и всех загруженных в него DLL-ок. После этого присматриваюсь к их списку:

Выглядит как минимум интересно: "settingshandlers_display.dll"
Выглядит как минимум интересно: "settingshandlers_display.dll"

Обнаруживается эта интересная DLL, а заодно ещё и парочка других кандидатов на поиск в них причины моей проблемы:

Я решил пройтись по экспортам этих трёх библиотек и поискать что-нибудь со словами enable/disable:

Лишь в одной DLL-ке settings_handlers_pcdisplay.dll находятся интересные на мой взгляд функции: IsDisabledByGroupPolicy, IsDisabledByPolicy. Ставлю на них бряки, и пробую отобразить меню с той надписью про администратора:

Вуху! Бряк сработал.
Вуху! Бряк сработал.

Присмотревшись к имеющемуся коду, я вижу вызов одной странной функции:

Гугление SHRestricted приводит меня к данной странице, с которой есть ссылка на перечисление RESTRICTIONS, где, в свою очередь, находится значение 0x4000007B:

REST_NODISPLAYCPL
REST_NODISPLAYCPL

Так, погодите-ка! Кажется, я уже видел очень похожую строку в реестре, в разделе Policies (там я ранее как раз искал какой-нибудь параметр, который и мог приводить к проблеме):

NoDispCPL
NoDispCPL

Кто её туда записал я не знаю. Но, я уже догадывался, что удаление этого аргумента решит мою проблему:

Ура!
Ура!

Так и есть, всё заработало (после перезапуска процесса systemsettings.exe).

Выводы

Пора уже решать проблемы своей операционной системы самостоятельно! Особенно, если отладчики для вас софт не чуждый.

Всем спасибо.

Комментарии (72)


  1. lizarge
    17.02.2022 23:49

    реверс инженер это не специальность, это методология.

    Кажется, я уже видел очень похожую строку в реестре, в разделе Policies (там я ранее как раз искал какой-нибудь параметр, который и мог приводить к проблеме)

    Может вы ее и создали?


    1. DrMefistO Автор
      17.02.2022 23:50
      +2

      Может вы ее и создали?

      Конечно нет.


      1. a-tk
        18.02.2022 09:48
        +1

        При выводе элементов в реестре они сортируются по алфавиту (как и все остальные на скриншоте), но созданные до первого перечитывания реестра находятся внизу (как на скриншоте). Выглядит странно.


        1. DrMefistO Автор
          18.02.2022 10:09
          +14

          Очевидно, что я писал статью не по ходу решения проблемы, а после её решения.


          1. pankraty
            18.02.2022 14:41
            +6

            Значит, все-таки создали! :-)


            1. Graid
              18.02.2022 20:03
              +2

              Так и до изнасилования Реверс-инженером журналиста комментатора не далеко =)


              1. uis246
                19.02.2022 00:04

                Реверс-изнасилования


  1. nkormakov
    18.02.2022 00:38
    +9

    Способ починки просто невероятный, всегда радовали умения других в дебагинге даже таких сложных штук, как винда.

    Я принял челлендж на "прогуглить проблему", и похоже, что данная проблема была как минимум год назад:

    https://www.dell.com/support/kbdoc/ru-ru/000155876/how-do-i-resolve-the-error-message-your-system-administrator-disabled-the-display-control-panel-in-microsoft-windows

    ...и 11 лет назад:
    https://onlinecomputertips.com/support-categories/pc-troubleshooting/208-system-administrator-disabled-the-display/

    Альтернативный вариант фикса "Some settings are managed by your administrator" (и самый правильный) - это установить групповую политику Disable the Display Control Panel в "Not Configured" или "Disabled" (скрин с Win10):

    Administrative Templates / Control Panel / Display


    1. DrMefistO Автор
      18.02.2022 00:41
      +2

      Пробраться сквозь дебри одинаково неподходящих ответов очень сложно, с целью найти подходящее решение. Ведь никаких подсказок о том, почему винда так пишет, и как это исправить нигде не даётся.


      1. nkormakov
        18.02.2022 00:43
        +3

        Да, порой кунг-фу гугления оказывается сложнее расчехления специализированной тулзы (или как минимум приятнее).


      1. Evengard
        18.02.2022 00:44
        +29

        С Виндой проблема в том, что при гуглинге всплывает тонна SEO-буллшита, пытающегося пропихнуть очередную платную бесполезную утилиту, абсолютно бесполезного и засоряющего весь поиск...


        1. hottabxp
          18.02.2022 01:11
          +2

          Немножко помогает uBlacklist, у меня уже список из пары сотен таких сайтов.


          1. klounader
            18.02.2022 09:48
            +5

            а куда-нибудь на pastebin.com можно?


        1. CodeHolder
          18.02.2022 20:23
          +1

          И майкросовтовский форум наполненный тупорылыми вы***дками с их вечной sfc.exe.


          1. Am0ralist
            19.02.2022 13:27

            Которые помогают в процентах 20-70 случаев проблем с тех же форумов? Ну, или переустановка винды, которая покроет все 80-90% проблем)))


      1. LoadRunner
        19.02.2022 10:31
        +1

        В смысле, никаких подсказок? Фраза "управляется вашим системным администратором" в настройках просто кричит о том, что где-то выставлена специальная политика управления данной настройкой и надо её найти и отключить, если компьютер домашний и администратор этого компьютера по трезвой памяти такие политики не настраивал.


        1. khajiit
          19.02.2022 10:48

          Фраза "управляется вашим системным администратором"
          если компьютер домашний и администратор этого компьютера по трезвой памяти такие политики не настраивал

          … просто кричит о том, что где-то само собой творится что-то нездоровое.


          1. LoadRunner
            19.02.2022 10:53
            -1

            Не бывает "оно само". Никогда. Всегда это происходит по какой-то причине.


            1. khajiit
              19.02.2022 11:33

              Поскольку речь идет о пользователе, то, в данном случае, само собой стоит читать как без явного вмешательства пользователя.


            1. Am0ralist
              19.02.2022 13:30

              Например, человек поставил офис и активировал его активатором)


        1. Am0ralist
          19.02.2022 13:29

          Фраза «управляется вашим системным администратором» в настройках просто кричит о том, что где-то выставлена специальная политика управления данной настройкой и надо её найти и отключить,
          Ха-ха-ха. Кричит. Но где что выставлено это не помогает понять. Серьезно, у нас так паре 10-ок не происходит обновление до более новых вариантов 10-ки, потому что где-то что-то сбойнуло и такая надпись висит, что обновками управляет администратор, хотя и нет вроде ни одного затронутого пункта с настройками… По факту быстрее переустановить с нуля даже чем обновку насильно поставить (с нуля — это полчаса времени и потом файлики поперекидывать, обновка насильно — это часа 4-5 на скачку, установку и надписей «погодите, мы тут что-то делаем»)


          1. LoadRunner
            19.02.2022 17:26

            Но где что выставлено это не помогает понять.

            Речь же о поиске в гугле (мой ответ не абстрактный, а на конкретный комментарий был). Не надо перечитывать весь гугол найденных вариантов. Достаточно лишь погуглить политики, которые могли так сделать.


            1. Am0ralist
              20.02.2022 15:14

              Ага, ответы в гугле только намекают, что это всякие твики или активаторы винды/офиса так же могут приводить к разнообразным подобным проблемам, а не всегда это политики


    1. Alexey2005
      18.02.2022 01:46
      +8

      всегда радовали умения других в дебагинге даже таких сложных штук, как винда
      Да винда как раз крайне дружелюбна к разработчикам и реверсерам.
      А вот если вы захотите подобным образом реверсить Linux, вот тут-то вы и познаете настоящий ад. Потому что у нас тут ни дружелюбных отладчиков (есть один только древний динозавр GDB, пользоваться которым по-настоящему мучительно), ни нормальной документации по библиотечным функциям, конфиги размазаны тонким слоем по всей системе, а взаимодействие компонент и подсистем крайне запутано.


      1. ivanrt
        18.02.2022 03:11
        +5

        Мне для большинства нужд хватает поиск в исходниках и strace. bpftrace в особо запущенных случаях. Зачем в Linux реверсить если можно просто пересобрать со своими изменения и посмотреть?


      1. Corosan
        18.02.2022 08:51
        +8

        Вот совершенно нет. "Динозавр gdb" - это, простите, про наиболее мощный и развивающийся отладчик, который разрабатывают и по сей день? Который имеет поддержку для кучи платформ? У которого куча gui-нашлёпок, если кому-то с консолью не совладать? Что до ОС, то для каждого пакета линукса (ок, говорим про Ubuntu/Debian для конкретности) есть пакет с отладочными символами и исходным кодом. Так что подцепиться отладчиком можно не просто так же просто, как показано в статье, да ещё и с исходным кодом! Вряд ли для windows будет исходный код. Конфиги в бОльшей части концентрируются в /etc, а реестр windows, в таком случае, тоже давно превратился в помойку, куда пихают всё все компоненты. Разбираться и там и там придётся. Взаимодействие компонент в windows не запутано? Оу-оу. Оно и запутано, и написано индусами внутри компании и не документировано. А компоненты в Линукс, так как пишутся зачастую, разными людьми/группами, имеют очень даже неплохую документацию по каждому такому компоненту отдельно. Документации по библиотечным функциям, говорите? Ну, вообще смешно. Мы о публичном API? Для большинства стандартных библиотек libc, glibc, gtk, qt - огромная масса док, не хуже MSDN. А что до внутренних функций типа той, что описана в статье, ну-ка покажите на неё документацию, и отдельно на компонент, который автор отлаживал? В Линуксе я не просто дебажил систему, как свой домашний проект, так ещё и пересобирал пару модулей из стандартной поставки дистрибутива, чтобы бажку пофиксить. И теперь они - часть системы.

        Я много времени работал разработчиком под Windows до ухода к пингвинам. Windows до 7-ки включительно была вполне юзабельна, нетребовательна к ресурсам, стабильна, и не решала за меня, что мне лучше, чей это компьютер, и когда тут обновляться. Куда пошла компания мелких после этого, один шайтан ведает. Не хочется вообще теперь иметь дело с их поделиями вообще никогда.


        1. vilgeforce
          18.02.2022 10:12
          +2

          Подскажите, GDB сервер уже начал выдавать более осмысленные коды ошибок, чем просто "ошибка 01"?


        1. unsignedchar
          18.02.2022 11:57

          конфиги в бОльшей части концентрируются в /etc

          .config например — тот самый реестр но на текстовых файлах ;)


          1. drWhy
            18.02.2022 12:19

            Как когда-то были ini файлы в Windows. Потом Microsoft призвала всех писать в реестр.


            1. mvv-rus
              18.02.2022 20:50

              … а потом появился .NET и официальной рекоминадцией стало размещение параметров для программы имя.exe в файле имя.exe.config (на этапе разработки в проекте VS содержимое этого файла берется из app.config). Так что ничто не вечно под луной, увы.


          1. CodeHolder
            18.02.2022 20:31
            +1

            .config это hkcu, только куда проще и понятнее.


        1. Am0ralist
          19.02.2022 13:34

          и не решала за меня, что мне лучше, чей это компьютер, и когда тут обновляться.
          Ну вот моя винда тоже не решает за меня. Единственно, что я решаю, когда в ближайшие 30 дней я обновлю винду, но после этого — она честно ждёт 35 дней до поиска новых обновок.


      1. vilgeforce
        18.02.2022 10:12

        К слову о Линухе: пробовал недавно IDA + ее отладчик для линуха - вполне норм!


      1. DrMefistO Автор
        18.02.2022 10:13

        Для него есть огромная куча графических интерфейсов. Та же IDA.


      1. drWhy
        18.02.2022 11:14

        И дружелюбие винды нелишне, к примеру в случае когда переключение раскладки клавиатуры анализировалось приложением на трёх различных уровнях.


    1. Am0ralist
      19.02.2022 13:25
      +2

      Знаете, я тут помню, как в прошлом году искал по одной ошибке причину того, что на конкретном компе любая чистоустановленная винда не могла подключиться к магазину и к обновлениям.
      Кучу всего перерыл, ошибка была частой, но все варианты — не подходили. И так ровно в одном месте в вопросах на сайте МС встретил что у человека с ноутом HP такая ошибка была после замены материнки по гарантии…
      После чего я уже наехал на HP с их гарантийной заменой материнки и несколько дней прессовал им мозг. Приехал другой инженер, заменил мамку, при первом включении вбил ВСЕ нужные поля в данных, после чего они записались без возможности изменения в будущем, и, вуаля, винда сразу заработала! Оказалось, что первый инженер схалутрил и не все данные по материнки при первом запуске ввёл.

      Вот если честно, как такие вот случаи вообще находить в интернете и проталкиваться среди однотипных ошибок другого плана? Я даже не знаю…


      1. Jsty
        19.02.2022 14:36

        Для несведущих, о каких полях данных речь при смене материнки?


        1. Am0ralist
          19.02.2022 15:03

          Конкретно у HP при замене их специально спроектированных под их же девайсы материнских плат, при первом запуске в спец режиме работы с прошивкой должны прописать какие-то стандартные сведения, серийник и что-то ещё, по которым в дальнейшем будет осуществляться гарантийное обслуживание (то есть «серийник» в неё вбивается от старой).
          Причём вбивать там вручную надо кучку символов, а требования «вбить все поля» не проверяется. Вбиты оказались не все поля.
          Как и почему это повлияло на ОС — я не в состоянии понять, однако ж ошибку 0x801901f4 это провоцировало и для центра обновления, и для microsoft store…

          Может ли подобное быть для других фирм-производителей ПК и ноутов — не уверен, это может быть фича HP конкретно)


  1. mvv-rus
    18.02.2022 03:54
    +21

    Каждый решает проблемы на основе того, чему он учился.

    Я, вот, как системный администратор Windows, в том числе, сразу, чисто по сообщению, понял, что у вас управление дисплеем было заблокировано политикой. И я даже примерно представляю, где, в каком из административных шаблонов эту политику надо искать (но наизусть не помню). А так как компьютер у вас не в домене, то политика может быть только локальной. Так что я бы запустил редактор локальной групповой политики gpedit.msc, нашел бы нужное место и поправил. Если же ваша версия Windows не поддерживает политику (точнее, ее редактирование), то я бы взял файл шаблона политик (они все лежат в C:\Windows\PolicyDefinitions), нашел бы, где там определен нужный параметр, посмотрел бы ключ и значение реестра, которое он меняет, и поменял бы.

    Тем не менее, поздравляю с успешным решением проблемы самостоятельно, а не через гугл(почти). Не поймите меня неправильно — это не упрек и не укор: если что, такими способами решения проблем известный и авторитетный спец по Windows Марк Руссинович не брезговал пользоваться.

    PS В порядке общей информакции — вдруг кто не знает, а ему пригодится. Для поиска подозрительных ключей реестра (и файлов конфигурации) есть менее трудоемкий путь, чем использовать отладчик — утилита procmon (Process Monitor) от Sysinternals (сейчас это давно уже часть Microsoft, но утилиты эти поддерживатся до сих пор). С его помощью можно получить трассу обращений к реестру/файловой системе и что-нибудь, имея эту трассу, сделать.

    PPS Записал к себле в копилочку интересный факт: оказывается, новый — стильный, модный, моложежный — интерфейс настроек Windows вполне поддерживает старые настрой политик для Control Panel. По крайнейе мере — может.


    1. DrMefistO Автор
      18.02.2022 09:29
      +3

      Окей, а вот как тогда людям помогает включение полной телеметрии при наличии такого же сообщения в других разделах (даже видео есть)? Где связь, и как бы вы решали это?


      1. zaiats_2k
        18.02.2022 10:33
        +3

        При включении телеметрии производится модификация некоторого набора параметров реестра, среди которых и нужное нам (случайно или намеренно) затесалось. Я бы так предположил.


      1. mvv-rus
        18.02.2022 19:01

        Окей, а вот как тогда людям помогает включение полной телеметрии при наличии такого же сообщения в других разделах (даже видео есть)

        Если честно — без понятия. Я эти рецепты ни разу подробно не смотрел, что там делать предлагают.
        Где связь, и как бы вы решали это?

        Как бы решал я, написано выше, и гугление, которое могло бы вывести меня на рекомендации включить полную телеметрию, в изначальный алгоритм решения просто бы не входило. Просто потому, что мне, как администратору, и без гугла было понятно, откуда начинать рыть, из уже имеющихся знаний.
        А представить, что бы я делал без этих знаний, у меня фантазии не хватает.


    1. XenRE
      18.02.2022 19:19
      +1

      Тем не менее, в винде есть куча параметров реестра, которые вообще нигде не описаны, и кроме как реверсингом их не обнаружить. Например, у драйвера sdbus.sys есть параметр NonremovableDevice, который сделает SD/MMC карту «несъемной», с возможностью разбивать на разделы и загрузиться с нее. А что делает параметр SdCmdFlags того же драйвера — попробуйте угадать (он используется в .inf).


      1. mvv-rus
        18.02.2022 21:47

        Увы, документировано не все. Но хотя бы по некоторой (и весьма большой) части ОС и приложений документации есть. И это радует.


  1. maxwolf
    18.02.2022 04:05
    +8

    Спасибо, интересно! Но. Ваша статья приобрела бы ещё большую ценность, если бы вы продублировали ключевые слова/параметры текстом (NoDispCpl, REST_NODISPLAYCPL, и т.п.), ибо по тексту в скриншотах ни хабр, ни даже гугл искать не умеют…


    1. DrMefistO Автор
      18.02.2022 09:18
      +5

      Сделал, спасибо.


  1. fquantum
    18.02.2022 07:27
    +5

    Напомнило мне, как я на заре своей ИТ-карьеры фар (Far Manager) ломал - надоели мне пара "закрытых" меню, я взял отладчик и через несколько часов хождения по коду радостно сообщил коллегам, что дело сделано, мир спасен! А мне посоветовали заглянуть в read.me, а там русским по белому (синему) написано, как легально да пару минут зарегить продукт.


  1. Naikras
    18.02.2022 09:22
    +2

    Лингвистический оффтоп

    Интересно, как так получилось, что engineer - инженер, а engineering - инжиниринг?...


    1. DrMefistO Автор
      18.02.2022 09:26

      Всегда задавался этим вопросом. Ответа так и не нашёл.


    1. kinall
      18.02.2022 12:08
      +3

      Потому что инженер - это ingénieur. Несколько более раннее заимствование, когда брали не из английского, а из французского.


    1. cher-nov
      18.02.2022 14:59
      +2

      Так, что engineering по-русски будет "инженерия".

      А "инжиниринг" это просто неассимилированная калька с английского.


  1. vesper-bot
    18.02.2022 10:01
    +2

    Я такие вещи дебагал на куда более высоком уровне, с помощью procmon.exe. Запускаем как админ, запускаем процесс, воспроизводим ошибку, останавливаем захват procmon, фильтруем по процессу или имени ехе, и пошли читать, куда оно лезет и за чем. Кроме того, вот эта фраза "some settings are managed by" означает почти во всех микрософтовых приложениях наличие управляющих политик, а они уже находятся в реестре в разделе HKLM|HKCU/Software/Policies для прикладного софта, и в найденном вами месте для системного.


    1. DrMefistO Автор
      18.02.2022 10:11
      +1

      Мне было проще порыться в отладчике. Как уже сказали выше: "кто на что учился".


  1. vilgeforce
    18.02.2022 10:14

    Главный вопрос - кто ж туда этот параметр записал? :-D


    1. DrMefistO Автор
      18.02.2022 10:20

      Я склоняюсь к тому, что это сделал тот самый предлагаемый виндой опциональный апдейт, больше некому.


  1. gotch
    18.02.2022 11:28
    -2

    Ээээ. Что я только что прочитал?

    Строчка эта означает, что на машину применена какая-то настройка групповой политики.

    Ждём свежих открытий, что она делится на пользовательскую и машинную, что есть библиотеки-обработчики, настройки времени рефреша, кэш, и даже не знаю какие ещё открытия можно сделать в дебаггере.


    1. DrMefistO Автор
      18.02.2022 11:41
      +4

      Ждём свежих открытий

      Я не сделал никаких открытий.

      какая-то настройка групповой политики

      "Произошла кокаето ошибка". Ну, очевидно же, что дело в групповых политиках, только каких?


      1. gotch
        18.02.2022 12:19
        -1

        Связанных с дисплеем? Можно было сразу в реестре посмотреть, возможно можно было в файлике registry.pol посмотреть, возможно можно было запустить mmc посмотреть. Что тут реверсить?


        1. DrMefistO Автор
          18.02.2022 12:47
          +3

          Тупо гадать что нужно изменить вообще не вариант. Мне хотелось знать точно, и почему.


  1. DMGarikk
    18.02.2022 16:24
    +1

    «Some settings are managed by your system administrator». Но я и есть администратор!

    ну и пошли сложным путем через отладчик, а если бы вы действительно были администратором, то знали бы что возникновение этой надписи означает что этими настройками управляет GPO и идти надо туда ;)


    1. DrMefistO Автор
      18.02.2022 16:25
      +1

      Так я и пошёл туда. А что искать-то дальше?


      1. DMGarikk
        18.02.2022 16:31
        +1

        искать логическим путем, но названию пунктов, там к каждому параметру есть довольно подробное описание, да и само дерево политик хоть и запутанное но подчинено определенной логике и минут 15-20 ковыряний вы найдете где хранятся параметры дисплея
        p.s. пример подсказать не могу. уже года два как на линух с концами переехал


        1. Renaissance
          18.02.2022 18:38
          +1

          В оснастке gpedit.msc есть фильтр по измененным из дефолтного состояния (настроенным) политикам. Поиск измененных значений займет очень мало времени.

          В Home версии сложнее, по дефолту только в реестре искать.


    1. Diamos
      19.02.2022 00:53
      +1

      С чего вы взяли, что сложный для вас путь является таковым для профессионально занимающегося этим человека? Вполне оправданный и к тому же более универсальный в сравнении с вашим подход, тем более для человека, который это умеет в отличии от многих администраторов с черным поясом по гуглению форумов:) ).

      А автору статьи спасибо за демонстрацию принципа!


  1. vitalijs
    18.02.2022 19:12

    Чем-то напомнило статью на одном беговом форуме в которой один увлеченный бегун любитель рассказывал как на бегу померять пульс на руке не останавливаясь. Так вот он на полном серьезе в 2021ом году не знал о существовании спортивных часов с функцией пульсометра


  1. R3EQ
    18.02.2022 23:21

    Очень интересная статья, попалась в рекомендациях. И сразу возник такой вопрос. Нечто подобный метод я недавно думал применить к решению своей небольшой проблемы. Имеется Windows (не важно какая версия), в ней установлен плеер VLC, а также имеется устройство видеозахвата. Я хочу открыть в VLC данное устройство, чтобы смотреть изображение с видеоисточника. Делается это через dshow://. Если оставить параметры dshow:// по умолчанию, то устройство в плеере открывается некорректно. Если указать параметр :dshow-config, то запуск будет предварительно сопровождаться в отдельном окне диалоговым режимом по настройке устройства (источник видеовхода, разрешение, цветовая схема, аппаратные ускорители и т.д.). Это окно настроек берётся из драйвера на устройство. Откуда конкретно именно - я не нашёл. Как только там привожу в порядок некоторые параметры, то всё становится чётко, как мне надо. При повторном запуске настройки сбрасываются, не сохраняются. Данные настройки - вне VLC и вне dshow, они исключительно от устройства. Вопрос у меня такой. Каким образом заставить драйвер по умолчанию конфигурировать моё устройство видеозахвата правильными нужными мне настройками? Чтобы я каждый раз не прибегал к вызову диалога конфигурации параметром :dshow-config. Документации на драйверы и их организацию нету. В реестре ничего не нашёл (мож плохо искал). Наверно надо залезть в файлы драйверов и что-то там исправить.


    1. DrMefistO Автор
      19.02.2022 00:01

      Сходу сказать сложно, но одно точно - если система x64, то драйвера с непройденной проверкой подписи не загрузятся. Нужно будет включать Test Mode.


  1. DrMefistO Автор
    19.02.2022 19:31

    Кстати, вот этот апдейт:


    1. DrMefistO Автор
      19.02.2022 20:24

      Что забавно, обновление не ставил, а указанный в статье флаг сегодня снова кто-то установил.


      1. mvv-rus
        19.02.2022 22:13
        +1

        Во-первых, это может делать вполне себе штатный клиент групповой политики: установки локальной политики на базе административных шаблонов хранятся не непосредственно в реестре, а в файле Registry.pol в каталоге Windows в подкаталоге system32\GroupPolicy (это — скрытый каталог): либо в подкаталоге Machine (политика компьютера), либо в подкаталоге User (политика пользователя), и клиент групповой политики их периодически применяет.

        А если очень хочется узнать, какой процесс и когда изменил ключ реестра, можно включить аудит доступа к этому ключу. Для этого нужно, во-первых, разрешить аудит для подкатегории «Аудит реестра» (или всей категории «Доступ к объектам»). Делается это либо, опять-таки, с помощью редактора политики (там есть особенность — аудит для категорий и для подкатегорий включается в несколько разных местах интерфейса, подробности, если нужно, расскажу), либо командой auditpol. А, во-вторых, настроить список контроля доступа в непосредственно в свойствах ключа реестра: на вкладке Аудит в окне Дополнительных параметров безопасности (вызываемых по кнопке Дополнительно из окна разрешений). События аудита пишутся в журнал событий Безопасность.
        Имеет также смысл включить аудит запуска процессов (подкатегория Аудит создания процессов в категории дополнительное отслеживание), чтобы иметь информацию, позволяющую идентифицировать процесс, изменивший ключ реестра.
        PS События из журнала Безопасность для анализа (их там может оказться много) можно экспортировать, например, командой Powershell Get-WinEvent, или обычной командой wewtutil.exe


  1. merinoff
    20.02.2022 15:05
    +2

    Под линуксом для решения страшненький проблем пользуюсь wireshark и strace (ltrace). Под виндой часто спасает processmonitor. Здесь, думаю, он тоже бы помог(особенно если знать что искать)).

    У вас тоже круто получилось, отличный способ.


    1. drWhy
      20.02.2022 15:25
      +1

      Procmon для Linux тоже есть.