В работе Полные паруса: flags реестра. ч.1

Тема в разделе "Реестр Microsoft Windows", создана пользователем Kиpилл, 10 май 2013.

  1. Kиpилл
    Оффлайн

    Kиpилл Команда форума Администратор

    Лучший автор месяца

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

    Я сидел и пялился в монитор,листая параметры
    Flags реестра и пытаясь свести их в одну логическую цепочку.
    но это оказалось не так уж и просто,но все же я попытаюсь...
    _______________________________________________________________________________
    Все что написано в этой статье является лично моим мнением
    и никак научно или официально не подтверждается.

    Flags


    Давайте сразу определимся-что из себя все таки представляет флаг?
    На мой взгляд это некоторый аргумент,позволяющий задать определенные атрибуты объекту.

    Звучит угрожающе,но понять не сложно.
    На самом деле флаги присутствуют и используются повсеместно от windows xp до windows 8.
    А реестр,как можно прочесть из ранее написанных тем,ни что иное как иерархически построенная зависимая база данных структуры операционной системы.
    Отсюда следует вывод,что флаги применяемые в операционной системе вне реестра имеют аналогичный функционал и в реестре.
    В параметрах реестра flags является типом dword,записывается как правило шестнадцатиричном значении.

    Я думаю это самая главная основа которую необходимо помнить при изучении флагов.


    Снимок.JPG




    За окном сверкнула молнией гневно туча-я оглянулся на ее громыхание и усмехнулся...
    От неожиданности кот проснулся и подскочил,промазав мимо подоконника)))
    Я с молниями в глазах продолжал писать.
    _______________________________________________________________________________________


    В этой теме мы рассмотрим типы флагов и попытаемся их классифицировать.

    Первое что нужно знать-иначе сложно будет понять что заложено в флаге:
    Флаги являются независимыми друг от друга и могут быть использованы в любой комбинации.
    Их можно совмещать.

    Как?
    Возьмем в пример флаги для папок-FolderFlags.

    0x00800000
    Не показывать заголовок столбца в представлении в любом режиме просмотра.
    0x02000000
    Когда представление находится в "режиме просмотра плитки" макет одного элемента должен быть распространен в поле зрения.

    А вот комбинированный вариант:
    0x02800000
    Сочетает в себе два значения.

    Тут стоит понимать,что:

    Во первых,значения флагов должны быть логичны и не противоречить друг другу.
    Во вторых,бесполезно сочетать например флаг папки с флагом clsid,или применять его к папке-работать не будет.

    Да-да,тут то мы и подходим к еще одному крайне важному моменту.

    Для каждого типа объектов существуют свои наборы флагов.

    В последующих темах (их будет три) я постараюсь изложить их все в специальных удобочитаемых таблицах.

    Сейчас лишь обозначу варианты:

    1)Ассоциации файлов

    2)Управление файловыми операциями

    3)Создание событий для выполнения условия

    4)Атрибуты и функционал папок и файлов.

    5)Инструкции решения конфликтов(например возможность пропустить конфликт)

    6)Групповые политики и ограничение доступа,администрирование.

    7)Параметры пользовательского интерфейса

    8)Параметры браузеров и сетевые.

    9)Данные для установки

    10)Структура каталогов,сценарии.

    Все это мы будем детально рассматривать в последующих темах.

    На этом закончу вводный обзор-кратко и понятно.


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

    ___________________________________________________________________________________________________


    moderator: далее обсуждение темы и работа над созданием обзора по этой части реестра

    По окончании обсуждение будет вынесено в отдельную тему а обзор отредактирован и дополнен.
     
    Последнее редактирование: 9 янв 2014
    Pompon, orderman и machito нравится это.
  2. machito
    Оффлайн

    machito Команда форума Супер-Модератор

    Сообщения:
    1.906
    Симпатии:
    1.940
    Спасибо друг, очень занятная тема, этакий конструктивный взгляд разработчика-теоретика)
     
    Последнее редактирование: 10 май 2013
    1 человеку нравится это.
  3. Kиpилл
    Оффлайн

    Kиpилл Команда форума Администратор

    Лучший автор месяца

    Сообщения:
    12.216
    Симпатии:
    4.978
    Да какой с меня разработчик))Любитель наверно.
    Посмотрим как в итоге выйдет.
     
    1 человеку нравится это.
  4. Dragokas
    Оффлайн

    Dragokas Very kind Developer Команда форума Супер-Модератор Разработчик Клуб переводчиков

    Сообщения:
    4.478
    Симпатии:
    4.307
    О методике рассчета флагов
    Флаги чаще всего формируются как сумма битов.
    Имея расшифроку, что означает каждый из битов,
    достаточно перевести число в двоичную систему счисления, где каждая единичка будет обозначать свой активный параметр.

    Проведу некую аналогию:
    например, вот как это делается при подсчете маски сходства процесса к номеру процессора:
    Aff_args.png
    Aff_menu.png
    TaskM_manual_1.png
    TaskM_manual_2.png
    Column 1 Column 2 Column 3 Column 4 Column 5
    0 DEC (в 10-й СС) 8 4 2 1
    1 Биты (считаются справо налево) 1 1 1 1
    2 Порядковый номер процессора 3 2 1 0


    Чтобы получить сумму битовой маски для 0-го и 2-го процессоров в 4-х ядерной системе,
    берем 1-ый (DEC=1) и 3 (DEC=4) биты и складываем 1+4 = 5.
    Ну и что мелочится сразу дам оффтоп-ом программу на С++, которая работает с такой маской.

    Теперь представим, что вместо № процессоров мы имеем какое-то свойство объекта (видимость, уровень доступа и т.д.), берем калькулятор Windows, преводим 10-чное число в двоичное,
    смотрим в табличку, что каждій бит означает (надеюсь, Кирилл когда-то ее закончит :)).
     

    Вложения:

    • _Affinity.zip
      Размер файла:
      243,2 КБ
      Просмотров:
      4
    Последнее редактирование: 30 дек 2013
    Legion107 нравится это.
  5. Kиpилл
    Оффлайн

    Kиpилл Команда форума Администратор

    Лучший автор месяца

    Сообщения:
    12.216
    Симпатии:
    4.978
    Я ее не начинал даже!
    Там вариантов миллион наверное!

    Просто ума не приложу как сделать ввод в тему,как подать все.

    Флаги используются не только в реестре но и повсеместно в системе,флаги бывают разного типа+для каждого типа объектов зачастую назначается своя серия флагов,разные флаги суммируются по разному...короче лес в котором лесники блудили ...

    Практически не документировано все,тут я напишу как думаю - а оно раз,и неправдой окажется...короче флаги нескоро мне кажется будут)
    --- Объединённое сообщение, 30 дек 2013 ---
    Про суммирование битов давай подробнее?
    Я это не до конца разобрал,по принципу сложения в бинарниках?
    Давай на пальцах.
     
    Последнее редактирование: 30 дек 2013
  6. Dragokas
    Оффлайн

    Dragokas Very kind Developer Команда форума Супер-Модератор Разработчик Клуб переводчиков

    Сообщения:
    4.478
    Симпатии:
    4.307
    Я нарисовал, чтоб было понятно - на примере рассчета маски для отключения автозапуска с устройств (таблица от Drongo, надеюсь не обидится).
    Качественный скрин - в архиве.
     

    Вложения:

    Legion107, shestale и Kиpилл нравится это.
  7. shestale
    Оффлайн

    shestale Ассоциация VN/VIP Преподаватель

    Сообщения:
    8.051
    Симпатии:
    4.487
    Стас, меня впечатлил п.8 с твоего рисунка: "если включить смекалку, можно подсчитать без калькулятора".
    А знаешь 25 лет назад мы примерно так и считали, ну не было тогда у нас таких крутых калькуляторов :)
    Добавлю только, что
    1+2+4+8+16+32+64+128=255
    это
    В сумме это 8 разрядов, отсюда и пошло название восмеричной системы исчесления, а не как на калькуляторе BIN(бинарная). А восемь разрядов(бит) составляют 1 байт.
    Отсюда и первая, всего лишь восьми разрядная(8-ми битная), шина адреса и данных. И была она параллельной шиной(это уже позже появилась последовательная), что бы представить это 8 параллельных проводов по которым и передается зашифрованный таким образом сигнал адреса устройства или данных. И мы по этим сигналам читали и рисовали цифровые схемы. Это основа-основ всей цифровой электроники.
    п.с.
    А был у нас один товарищ , который писал программы в шестнадцатиричной(шестнадцати разрядной), т.е. 2-х байтной системе исчисления, и я таких больше ни когда в своей жизни не встречал.
    т.е. листинг программы был примерно такой,..и процессор, зараза, понимал его программы :D
     
    Legion107, Dragokas и Kиpилл нравится это.
  8. Dragokas
    Оффлайн

    Dragokas Very kind Developer Команда форума Супер-Модератор Разработчик Клуб переводчиков

    Сообщения:
    4.478
    Симпатии:
    4.307
    shestale, спасибо. Но благодарить нужно моего учителя Lamm Vurdalak - спеца по сетям.

    На счет флагов:
    Кирилл, а может, тебе в тот раз для анализа не хватало удобного инструмента и того факта, что показал glax24 (перевод в двоичную и сложение по-вертикали (это называется побитовое ИЛИ).
    А тебе нужен был инструмент наоборот - разложение на биты... изменение свойства объекта, снова разложение на биты и сравнение разницы.
    Полагаю так ты на практике находишь скрытый потенциал? (я помню подобное обещал, но пропал куда-то)
    Я смотрел твою удаленную тему (уж извини) о флагах, впечатляет - хотя бы то, какую классификацию по типам им даешь.
    Неужели совсем нигде не находил по ним информации? (лично я не искал). Может, все-таки перенести ту тему сюда в раздел, как думаешь?
     
    Последнее редактирование: 2 янв 2014
    Kиpилл нравится это.
  9. Kиpилл
    Оффлайн

    Kиpилл Команда форума Администратор

    Лучший автор месяца

    Сообщения:
    12.216
    Симпатии:
    4.978
    Dragokas, документация очень скудная,я разными методами и ситуациями разрабатывал эту тему про флаги,и в итоге понял что то что я раньше знал это мелочи.
    На данные момент есть неплохой объем информации,догадок,выводов.
    Многое чисто свои наработки.

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


    О!
    А мне показалось бурдой и удалил)


    Давайте оформим отдельную тему и я там у вас поучусь чего пропустил?

    Иногда попадаются портянки типа "если хочешь что бы было так- ставь флаг такой то"
    А вот конкретно документации о том как флаги прописываются программно,что бы ОС их воспринимала - такого не нашел.
    Только собственные доводы и немного опыта,но я понимаю что знаний того же С# или другого у меня практически нет,а мы ведь понимаем на чем написана винда...
    --- Объединённое сообщение, 2 янв 2014 ---
    Ок,вечером попробую собрать что у меня есть в одно что нибудь осмысленное,попробуем вместе разобраться.
     
    Последнее редактирование: 2 янв 2014
    Legion107 нравится это.
  10. Kиpилл
    Оффлайн

    Kиpилл Команда форума Администратор

    Лучший автор месяца

    Сообщения:
    12.216
    Симпатии:
    4.978
    Давайте так поступим.
    Тема будет долгая,так как тут прежде всего интересуемся флагами - давайте результаты поиска,какие у кого есть.
    (Кому интересно конечно же)
    В реестре вы найдете по ключевому слову Flags:
    • Разделы
    • Имена параметров
    • Значения параметров

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

    Дабы не дублировать что имеется и как то уже разобрано в человеческие мысли:

    • AdvertiseFlags
    • AmdSataChannelFlags
    • AnnounceFlags
    • AppIDFlags
    • ApplicationFlags
    • AreaFlags
    • BootFlags
    • BrowserFlags
    • Compatibility Flags
    • DeviceHackFlags
    • DisplayFlags
    • EditFlags
    • FFlags
    • Flags
    • FolderValueFlags
    • Flags2
    Тема долгоиграющая,скорости не ждем - мало времени много задача)
     
    Dragokas нравится это.

Поделиться этой страницей