• Администрация SafeZone приветствует вас на нашем форуме!
    Если вы больше не желаете видеть рекламу при просмотре тем и сообщений - то достаточно просто зарегистрироваться. Для зарегистрированных пользователей реклама не отображается.

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

Кирилл

Команда форума
Администратор
Сообщения
13,352
Симпатии
5,886
#1
За окном шумел ветер и пытались
сдержать прорехи тучи.
Но драгоценная влага то и дело утекала
через швы и тучи гневно громыхали.
Ветер подвывал дразня их,а я сидел в ступоре
и думал о том что флаги в такую погоду не поднимают.
Да и при чем тут погода и флаги?
Я уже который час пытаюсь сосредоточиться
на этой теме.
И почему до сих пор не видно хоть какого
нибудь обзора?

Я сидел и пялился в монитор,листая параметры
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: далее обсуждение темы и работа над созданием обзора по этой части реестра

По окончании обсуждение будет вынесено в отдельную тему а обзор отредактирован и дополнен.
 
Последнее редактирование:

machito

Команда форума
Супер-Модератор
Сообщения
2,100
Симпатии
2,065
#2
Спасибо друг, очень занятная тема, этакий конструктивный взгляд разработчика-теоретика)
 
Последнее редактирование:

Dragokas

Very kind Developer
Команда форума
Супер-Модератор
Разработчик
Клуб переводчиков
Сообщения
5,692
Симпатии
5,593
#4
О методике рассчета флагов
Флаги чаще всего формируются как сумма битов.
Имея расшифроку, что означает каждый из битов,
достаточно перевести число в двоичную систему счисления, где каждая единичка будет обозначать свой активный параметр.

Проведу некую аналогию:
например, вот как это делается при подсчете маски сходства процесса к номеру процессора:
Aff_args.png
Aff_menu.png
TaskM_manual_1.png
TaskM_manual_2.png


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

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

Вложения

Последнее редактирование:

Кирилл

Команда форума
Администратор
Сообщения
13,352
Симпатии
5,886
#5
(надеюсь, Кирилл когда-то ее закончит )
Я ее не начинал даже!
Там вариантов миллион наверное!

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

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

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

Dragokas

Very kind Developer
Команда форума
Супер-Модератор
Разработчик
Клуб переводчиков
Сообщения
5,692
Симпатии
5,593
#6
Я нарисовал, чтоб было понятно - на примере рассчета маски для отключения автозапуска с устройств (таблица от Drongo, надеюсь не обидится).
Качественный скрин - в архиве.
 

Вложения

shestale

Ассоциация VN/VIP
Преподаватель
Сообщения
9,654
Симпатии
4,954
#7
Стас, меня впечатлил п.8 с твоего рисунка: "если включить смекалку, можно подсчитать без калькулятора".
А знаешь 25 лет назад мы примерно так и считали, ну не было тогда у нас таких крутых калькуляторов :)
Добавлю только, что
1+2+4+8+16+32+64+128=255
это
2 в нулевой степени =1
2 в первой степени =2
2 во второй степени =4
2 в третей степени =8
2 в четвертой степени =16
2 в пятой степени =32
2 в шестой степени =64
2 в седьмой степени =128
В сумме это 8 разрядов, отсюда и пошло название восмеричной системы исчесления, а не как на калькуляторе BIN(бинарная). А восемь разрядов(бит) составляют 1 байт.
Отсюда и первая, всего лишь восьми разрядная(8-ми битная), шина адреса и данных. И была она параллельной шиной(это уже позже появилась последовательная), что бы представить это 8 параллельных проводов по которым и передается зашифрованный таким образом сигнал адреса устройства или данных. И мы по этим сигналам читали и рисовали цифровые схемы. Это основа-основ всей цифровой электроники.
п.с.
А был у нас один товарищ , который писал программы в шестнадцатиричной(шестнадцати разрядной), т.е. 2-х байтной системе исчисления, и я таких больше ни когда в своей жизни не встречал.
т.е. листинг программы был примерно такой,..и процессор, зараза, понимал его программы :D
10111001 01111011
01110011 10101000
11100011 00011101
и т.д
 

Dragokas

Very kind Developer
Команда форума
Супер-Модератор
Разработчик
Клуб переводчиков
Сообщения
5,692
Симпатии
5,593
#8
shestale, спасибо. Но благодарить нужно моего учителя Lamm Vurdalak - спеца по сетям.

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

Кирилл

Команда форума
Администратор
Сообщения
13,352
Симпатии
5,886
#9
Dragokas, документация очень скудная,я разными методами и ситуациями разрабатывал эту тему про флаги,и в итоге понял что то что я раньше знал это мелочи.
На данные момент есть неплохой объем информации,догадок,выводов.
Многое чисто свои наработки.

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


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


ожет, тебе в тот раз для анализа не хватало удобного инструмента и того факта, что показал glax24 (перевод в двоичную и сложение по-вертикали (это называется побитовое ИЛИ).
А тебе нужен был инструмент наоборот - разложение на биты... изменение свойства объекта, снова разложение на биты и сравнение разницы.
Давайте оформим отдельную тему и я там у вас поучусь чего пропустил?

Неужели совсем нигде не находил по ним информации?
Иногда попадаются портянки типа "если хочешь что бы было так- ставь флаг такой то"
А вот конкретно документации о том как флаги прописываются программно,что бы ОС их воспринимала - такого не нашел.
Только собственные доводы и немного опыта,но я понимаю что знаний того же С# или другого у меня практически нет,а мы ведь понимаем на чем написана винда...Ок,вечером попробую собрать что у меня есть в одно что нибудь осмысленное,попробуем вместе разобраться.
 
Последнее редактирование:

Кирилл

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

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

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

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