Редактирование отдельных битов значения параметра
Редактирование отдельных битов значения параметра
Это довольно интересная и, можно сказать, уникальная возможность, с помощью которой можно изменить отдельный бит параметра, не изменяя другие его биты. Для реализации этой возможности применяется ключевое слово 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
Более 800 000 книг и аудиокниг! 📚
Получи 2 месяца Литрес Подписки в подарок и наслаждайся неограниченным чтением
ПОЛУЧИТЬ ПОДАРОКЧитайте также
11.5. Установка дополнительных битов доступа для каталогов
11.5. Установка дополнительных битов доступа для каталогов На современных системах setgid и «липкий» биты имеют особое значение при применении к
Параметры для отдельных клиентов
Параметры для отдельных клиентов Как было сказано ранее, в декларации, состоящей из нескольких строк, могут указываться параметры; они применимы только к текущей декларации. Параметрами являются выражения hardware и fixed-address в декларации host. Для конкретных компьютеров можно
Проводник как два отдельных процесса
Проводник как два отдельных процесса Как известно, Проводник выступает и в качестве оболочки Windows, и в качестве файл-менеджера. И хотя это повышает удобство, на использовании памяти это сказывается отнюдь не лучшим образом. При нормальных условиях Проводник отнимает
1. Пустые значения (Empty-значения)
1. Пустые значения (Empty-значения) Пустое значение – это просто одно из множества возможных значений какого-то вполне определенного типа данных.Перечислим наиболее «естественные», непосредственные пустые значения (т. е. пустые значения, которые мы могли бы выделить
2. Неопределенные значения ( Null-значения)
2. Неопределенные значения (Null-значения) Слово Null используется для обозначения неопределенных значений в базах данных.Чтобы лучше понять, какие значения понимаются под неопределенными, рассмотрим таблицу, являющуюся фрагментом базы данных: Итак, неопределенное
Потоки битов
Потоки битов Прежде чем приступить к исследованию реальных алгоритмов сжатия, необходимо кратко рассмотреть задачу манипулирования битами. При использовании большинства алгоритмов сжатия, которые будут рассмотрены, сжатие данных выполняется с использованием
18.3.2. Открытие отдельных членов
18.3.2. Открытие отдельных членов Когда мы применили закрытое наследование класса PeekbackStack от IntArray, то все защищенные и открытые члены IntArray стали закрытыми членами PeekbackStack. Было бы полезно, если бы пользователи PeekbackStack могли узнать размер стека с помощью такой
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 позволяет указывать, какие конкретно символы необходимо извлекать из каждой строки входного потока. Применять эту опцию следует в том случае, если вы имеете дело со строками фиксированной длиныРассмотрим такой пример. Когда в
Распад битов[225] Марк Дери[226]
Распад битов[225] Марк Дери[226] В медиатусовке мало кто расстроился, узнав о его уходе, но вот лично автор этой статьи сожалеет о том, что мы уже не сможем придираться к Хитрому Нику. В декабре 1998 года Николас Негропонте из Wired, директор Лаборатории медиа Массачусетского
6.2. СИСТЕМЫ ИЗ ОТДЕЛЬНЫХ ПРОГРАММ
6.2. СИСТЕМЫ ИЗ ОТДЕЛЬНЫХ ПРОГРАММ Программная система может состоять из отдельных разработанных разными организациями выполняемых программ. Объединение функций этих программ в целую единую программу может привести к нехватке оперативной памяти машины, а сама
6.3. СИСТЕМЫ ИЗ ОТДЕЛЬНЫХ РЕЗИДЕНТНЫХ ПРОГРАММ
6.3. СИСТЕМЫ ИЗ ОТДЕЛЬНЫХ РЕЗИДЕНТНЫХ ПРОГРАММ Резидентная программа — программа, которая постоянно находится в оперативной памяти машины и не препятствует запуску новых программ. После запуска резидентная программа становится как бы частью операционной системы MS DOS
Часть четвертая Возьмем от битов лучшее
Часть четвертая Возьмем от битов лучшее В этом разделе я переключусь на более позитивную перспективу, опишу отличия кибернетического тотализма от гуманизма, рассмотрев эволюцию культуры человека.Я надеюсь показать, что каждый способ мышления имеет свое законное место
Съемка отдельных предметов
Съемка отдельных предметов Все объекты по форме можно условно вписать в определенные геометрические фигуры: куб, сферу, конус или плоскость, – что определяет подход к съемке этих предметов.Объекты кубической формы хорошо снимать, используя три источника света. Подбирая