Установка и сброс разрядов
Директива BitReg похожа на директиву AddReg. Вы добавляете ее в раздел [Defaultlnstall], чтобы указать имена разделов, которые содержат разряды, которые вы хотите установить или сбросить. Это разделы [раз-дел-битов-реестра]. Используйте директиву BitReg тогда, когда вы хотите работать в реестре с битовыми масками. Например, если вы хотите включить некоторую функцию интерфейса пользователя в значении UserPref erencesMask, вы должны использовать эту директиву. Так же, как и в случае других директив, о которых вы узнали, каждый раздел может содержать несколько элементов, и имена каждого из них должны быть уникальными.
В следующем объяснении синтаксиса обратите внимание на различия между разделами [раздел-битов-реестра] и [раздел-добавления-в-реестр]. Этот параметр value не является необязательным. Также, параметры mask и byte заменяют данные значения. Параметр mask имеет длину 8 битов и указывает, какой бит вы хотите включить или выключить. Параметр byte указывает, какой байт в двоичном значении вы хотите изменить. Он указывает байты слева направо, начиная с 0. Это просто, когда вы работаете со значениями типа REG_BINARY, но менее понятно, когда вы работаете со значениями типа REG_DWORD. Как обсуждалось в гл. 1, Windows ХР хранит значения типа REG_DWORD в реестре в обратном порядке следования байт (архитектура little-endian). Иными словами, тщательно протестируйте ваши INF-файлы, чтобы быть уверенными в том, что вы маскируете те биты, которые вы действительно хотите маскировать. Рисунок 9 Л показывает взаимоотношения между параметрами value, mask и byte. Значение, к которому применяется маска, является значением типа REG_DWORD и хранится в реестре в обратном порядке следования байт: 0xG180C000« Установите маску в байт О, и результатом будет 0х0180С080. Сбросьте маску в байте 1, и результатом будет 0х0140С080.