Редактирование отдельных битов значения параметра

Редактирование отдельных битов значения параметра

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

«корневой раздел», «ветвь реестра», «параметр», «флаг операции», «маска операции», «номер байта параметра»

? Корневой раздел, ветвь реестра и параметр были рассмотрены ранее.

? Флаг операции — может принимать следующие значения:

 • 0x00000000 — сбросить указанный бит;

 • 0x00000001 — установить указанный бит;

 • 0x00040000 — выполнить эти операции в 32-разрядном реестре.

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

? Номер байта значения параметр — указывает на байт значения параметра, к которому будет применяться маска и биты которого будут модифицироваться. При этом номер байта зависит от типа параметра. Для параметров DWORD-типа самый старший байт имеет номер 0, а для параметров REG_BINARY-типа номер 0 имеет самый младший байт.

Для примера попробуем изменить отдельные биты параметра Attributes контекстного меню Корзины. После данной модификации в контекстном меню Корзины будут команды Переименовать, Свойства и Удалить. Такие команды, как Копировать, Вырезать, Вставить, будут удалены из контекстного меню Корзины (если они там присутствуют). В результате применения приведенного INF-файла значение DWORD-параметра Attributes станет равным 0x????0070.

ПРИМЕЧАНИЕ

Заметьте, что сначала желательно сбрасывать биты отдельного байта, а потом уже устанавливать другие биты этого байта. 

Если в ветви реестра HKEY_CLASSES_ROOTCLSID645FF040-5081-101B-9F08-00AA002F954E}ShellFolder присутствует параметр, имеющий DWORD-тип, CallForAttributes, то ему будет присвоено значение 0 (если в ветви данного параметра не существует, то он и не будет создан). 

Листинг 15.4. Пример модификации отдельных битов параметра

[version]

Signature="$CHICAGO$"

[DefaultInstall]

BitReg=RecicleBit

AddReg=CallAttrOff

[CallAttrOff]

HKCR,"CLSID{645FF040-5081-101B-9F08-00AA002F954E}ShellFolder",CallForAttributes,0x00010021,0

[RecicleBit]

HKCR,"CLSID{645FF040-5081-101B-9F08-00AA002F954E}ShellFolder",Attributes,0,0xff,0

HKCR,"CLSID{645FF040-5081-101B-9F08-00AA002F954E}ShellFolder",Attributes,0,0xff,1

HKCR,"CLSID{645FF040-5081-101B-9F08-00AA002F954E}ShellFolder",Attributes,1,0x70,0

Поделитесь на страничке

Следующая глава >

Похожие главы из других книг

Распад битов[225] Марк Дери[226]

Из книги Криптоанархия, кибергосударства и пиратские утопии автора Ладлоу Питер

Распад битов[225] Марк Дери[226] В медиатусовке мало кто расстроился, узнав о его уходе, но вот лично автор этой статьи сожалеет о том, что мы уже не сможем придираться к Хитрому Нику. В декабре 1998 года Николас Негропонте из Wired, директор Лаборатории медиа Массачусетского


1. Пустые значения (Empty-значения)

Из книги Базы данных: конспект лекций автора Автор неизвестен

1. Пустые значения (Empty-значения) Пустое значение – это просто одно из множества возможных значений какого-то вполне определенного типа данных.Перечислим наиболее «естественные», непосредственные пустые значения (т. е. пустые значения, которые мы могли бы выделить


2. Неопределенные значения ( Null-значения)

Из книги Реестр Windows автора Климов Александр

2. Неопределенные значения (Null-значения) Слово Null используется для обозначения неопределенных значений в базах данных.Чтобы лучше понять, какие значения понимаются под неопределенными, рассмотрим таблицу, являющуюся фрагментом базы данных: Итак, неопределенное


Проводник как два отдельных процесса

Из книги Технологии программирования автора Камаев В А

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


6.2. СИСТЕМЫ ИЗ ОТДЕЛЬНЫХ ПРОГРАММ

Из книги Вы не гаджет. Манифест автора Ланир Джарон

6.2. СИСТЕМЫ ИЗ ОТДЕЛЬНЫХ ПРОГРАММ Программная система может состоять из отдельных разработанных разными организациями выполняемых программ. Объединение функций этих программ в целую единую программу может привести к нехватке оперативной памяти машины, а сама


6.3. СИСТЕМЫ ИЗ ОТДЕЛЬНЫХ РЕЗИДЕНТНЫХ ПРОГРАММ

Из книги Сетевые средства Linux автора Смит Родерик В.

6.3. СИСТЕМЫ ИЗ ОТДЕЛЬНЫХ РЕЗИДЕНТНЫХ ПРОГРАММ Резидентная программа — программа, которая постоянно находится в оперативной памяти машины и не препятствует запуску новых программ. После запуска резидентная программа становится как бы частью операционной системы MS DOS


Часть четвертая Возьмем от битов лучшее

Из книги Цифровая фотография без Photoshop автора Газаров Артур Юрьевич

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


Параметры для отдельных клиентов

Из книги Фундаментальные алгоритмы и структуры данных в Delphi автора Бакнелл Джулиан М.

Параметры для отдельных клиентов Как было сказано ранее, в декларации, состоящей из нескольких строк, могут указываться параметры; они применимы только к текущей декларации. Параметрами являются выражения hardware и fixed-address в декларации host. Для конкретных компьютеров можно


Съемка отдельных предметов

Из книги Linux программирование в примерах автора Роббинс Арнольд

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


Потоки битов

Из книги Linux и UNIX: программирование в shell. Руководство разработчика. автора Тейнсли Дэвид

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


1.6.2. Установка битов SUID и SGID

Из книги автора

1.6.2. Установка битов SUID и SGID Чтобы установить бит SUID, вставьте цифру 4 перед числом, задающим режим доступа. Биту SGID соответствует цифра 2. Если одновременно устанавливаются оба бита, следует ввести цифру 6 (4 + 2).В строке режима установленные биты SUID и SGID обозначаются


11.4.2. Вырезание отдельных символов

Из книги автора

11.4.2. Вырезание отдельных символов Опция -c позволяет указывать, какие конкретно символы необходимо извлекать из каждой строки входного потока. Применять эту опцию следует в том случае, если вы имеете дело со строками фиксированной длиныРассмотрим такой пример. Когда в


18.3.2. Открытие отдельных членов

Из книги автора

18.3.2. Открытие отдельных членов Когда мы применили закрытое наследование класса PeekbackStack от IntArray, то все защищенные и открытые члены IntArray стали закрытыми членами PeekbackStack. Было бы полезно, если бы пользователи PeekbackStack могли узнать размер стека с помощью такой