Pull to refresh

Comments 3

Это значит, что, например, наличие ключа InprocServer32 в HKCR приоритетнее, чем ключ LocalServer32 в HKCU.

В HKCU проверка проходит раньше, чем в HKCR.

Что за чепуха. Сами же написали, что HKCR виртуальный куст, поэтому никаких "раньше" быть не может (между HKCU и HKCR, так как первое часть второго). Это самое обычное наследование свойств. Сначала читаются свойства из HKLM, затем на них накладываются свойства (и перекрывают, а если нечего перекрывать, то просто добавляются) из HKCU. Итоговое дерево называется HKCR.

Верно, HKCR состоит из HKLM+HKCU. Когда вы запускаете какой-либо COM-объект, то поиск осуществляется в двух ветках по очереди: в HKCU, а затем HKCR. Если в HKCU значение не найдено, то в HKCR будет хранится значение из HKLM. То есть по сути можно заменить "InprocServer32 в HKLM приоритетнее, чем ключ LocalServer32 в HKCU." Но напрямую не осуществляется запрос в HKLM, вместо этого используется HKCR. Чтобы увидеть о чем я говорю запустите Procmon, обратитесь к какому-либо COM-объекту и вы увидите данные события в этой очередности.

Это значит, что, например, наличие ключа InprocServer32 в HKCR приоритетнее, чем ключ LocalServer32 в HKCU.

Что касательно этой фразы, то исходные данные такие: есть COM-объект, у него заданы InprocServer32 в HKLM и LocalServer32 в HKCU. В HKCR тогда будут и InprocServer32, и LocalServer32. Изначально будет поиск InprocServer32 напрямую в HKCU, но там он будет не найден по понятным причинам. Далее будет осуществляться поиск InprocServer32 в HKCR(но считай в HKLM). И по итогу будет выбран именно он для использования, хотя при всем этом вHKCU был еще задан LocalServer32.

Sign up to leave a comment.