• SetOb j ectElement – устанавливает элемент типа Ob j ect.
Входящие параметры.
– Данный параметр определяет тип объекта. Он имеет тип uint32.
– Строковый параметр, определяющий идентификатор объекта.
Возвращаемые параметры: нет.
• SetObjectListElement – устанавливает список элементов типа Object.
Входящие параметры.
– Данный параметр определяет тип объекта. Он имеет тип uint32.
– Массив строковых параметров, определяющих идентификаторы объектов.
Возвращаемые параметры: нет.
• SetPartitionDeviceElement – устанавливает элемент типа PartitionDevice.
Входящие параметры.
– Данный параметр определяет тип объекта. Он имеет тип uint32.
– Определяет тип устройства. Данный параметр имеет тип uint32. Если значение флага равно 1, то это загрузочный раздел. Если значение флага равно 2, то это партиция. Если же значение флага равно 3, то это файл. Ну, а если значение данного параметра равно 5, то данный элемент устройства неизвестен.
– Строковый параметр, определяющий дополнительные настройки.
– Строковый параметр, определяющий путь.
Возвращаемые параметры: нет.
• SetStringElement – устанавливает элемент типа String.
Входящие параметры.
– Данный параметр определяет тип объекта. Он имеет тип uint32.
– Строковый параметр, определяющий устанавливаемую строку. Возвращаемые параметры: нет.
Класс BcdElement
Содержит описание элементов загрузочного меню. Он поддерживает следующие свойства, доступные только для чтения:
• Objectld, тип: string – хранит идентификатор элемента;
• StoreFilePath, тип: string – содержит путь к хранилищу объектов (загрузочному меню), которому принадлежит данный элемент;
• Туре, тип: uint32 – определяет подтип элемента.Класс BcdDeviceData
Этот класс содержит дополнительное описание элементов устройства. Он поддерживает следующие свойства, доступные только для чтения.
• AdditionalOptions, тип: string – содержит дополнительные параметры элемента.
• DeviceType, тип: uint32 – идентифицирует тип элемента устройства. Например, если значение данного свойства равно 1, то данный элемент является загрузочным. Если значение равно 2, то элемент является партицией. Если же значение свойства равно 3, то элемент является файлом. Ну, а если значение этого свойства равно 5, то элемент устройства неизвестен.Класс BcdDeviceElement
Содержит описание элементов устройства. Он поддерживает следующие свойства, доступные только для чтения:
• Device, тип: указатель на класс BcdDeviceData – определяет тип элемента устройства;
• Objectld, тип: string – хранит идентификатор элемента устройства;
• StoreFilePath, тип: string – включает в себя путь к хранилищу объектов (загрузочному меню), которому принадлежит данный элемент устройства;
• Туре, тип: uint32 – определяет подтип элемента.Класс BcdDevicellnknownData
Класс включает в себя описание данных неизвестного элемента устройства. Эти данные представлены в двоичном виде.
• AdditionalOptions, тип: string – доступно как для чтения, так и для записи. Содержит дополнительные параметры элемента.
• Data, тип: массив значений uint8 – определяет данные элемента.
• DeviceType, тип: uint32 – доступно как для чтения, так и для записи. Свойство идентифицирует тип элемента устройства. Например, если значение данного свойства равно 1, то элемент является загрузочным. Если значение равно 2, то элемент является партицией. Если же значение данного свойства равно 3, то элемент является файлом. Ну, а если значение равно 5, то элемент устройства неизвестен.Класс BcdDeviceFileData
Этот класс содержит описание данных элемента устройства – файла. Если не сказано об обратном, то свойства данного класса доступны только для чтения.
• Parent, тип: указатель на класс BcdDeviceData – содержит указатель на родительский элемент.
• Path, тип: string – хранит путь к устройству.
• AdditionalOptions, тип: string – доступно как для чтения, так и для записи. Содержит дополнительные параметры элемента.
• DeviceType, тип: uint32 – доступно как для чтения, так и для записи. Свойство идентифицирует тип элемента устройства. Например, если значение данного свойства равно 1, то элемент является загрузочным. Если значение равно 2, то элемент является партицией. Если же значение свойства равно 3, то элемент является файлом. Ну, а если значение данного свойства равно 5, то элемент устройства неизвестен.Класс BcdDevicePartitionData
Класс содержит описание данных элемента устройства – партиции. Если не сказано об обратном, то свойства данного класса доступны только для чтения.
• Path, тип: string – включает в себя путь к устройству.
• AdditionalOptions, тип: string – доступно как для чтения, так и для записи. Содержит дополнительные параметры элемента.
• DeviceType, тип: uint32 – доступно как для чтения, так и для записи. Свойство идентифицирует тип элемента устройства. Например, если значение данного свойства равно 1, то элемент является загрузочным. Если значение равно 2, то элемент является партицией. Если же значение свойства равно 3, то элемент является файлом. Ну, а если значение данного свойства равно 5, то элемент устройства неизвестен.Класс BcdStringElement
Содержит описание строкового элемента. Если не сказано об обратном, то свойства данного класса доступны как для чтения, так и для записи:
• Objectld, тип: string – содержит идентификатор элемента;
• StoreFilePath, тип: string – включает в себя путь к хранилищу объектов (конкретному загрузочному меню), в которое входит данный элемент;
• String, тип: string – доступно только для чтения, содержит значение данного элемента;
• Туре, тип: uint32 – определяет подтип элемента.Класс BcdObjectElement
Включает в себя описание элемента, указывающего на объект. Если не сказано об обратном, то свойства данного класса доступны как для чтения, так и для записи:
• Id, тип: string – свойство доступно только для чтения, оно определяет CLSID-номер, уникально идентифицирующий объект, на который указывает данный элемент;
• Objectld, тип: string – хранит идентификатор элемента;
• StoreFilePath, тип: string – содержит путь к хранилищу объектов (конкретному загрузочному меню), в которое входит данный элемент;
• Туре, тип: uint32 – определяет подтип элемента.Класс BcdObjectListElement
Класс содержит описание элемента, указывающего на массив объектов. Если не сказано об обратном, то свойства данного класса доступны как для чтения, так и для записи:
• Ids, тип: массив значений строкового типа – включает в себя массив CLSID-номеров, уникально идентифицирующих объекты, на которые указывает данный элемент;
• Objectld, тип: string – хранит идентификатор элемента;
• StoreFilePath, тип: string – содержит путь к хранилищу объектов (конкретному загрузочному меню), в которое входит данный элемент;
• Туре, тип: uint32 – определяет подтип элемента.Класс BcdlntegerElement
Этот класс содержит описание числового элемента. Если не сказано об обратном, то свойства данного класса доступны как для чтения, так и для записи.
• Objectld, тип: string – хранит идентификатор элемента.
• StoreFilePath, тип: string – содержит путь к хранилищу объектов (конкретному загрузочному меню), в которое входит данный элемент.
• Туре, тип: uint32 – определяет подтип элемента.
• Integer, тип: uint64 – включает в себя значение данного элемента. Несмотря на то что оно имеет тип uint64, его нужно передавать как строку.Класс BcdBooleanElement
Хранит описание булевого элемента. Если не сказано об обратном, то свойства данного класса доступны как для чтения, так и для записи:
• Objectld, тип: string – хранит идентификатор элемента;
• StoreFilePath, тип: string – содержит путь к хранилищу объектов (конкретному загрузочному меню), в которое входит данный элемент;
• Туре, тип: uint32 – определяет подтип элемента;
• Boolean, тип: boolean – содержит значение данного элемента.
Программа VistaBootPROКак вы, наверное, заметили из предыдущей главы, использование программы bcdedit.ехе является довольно сложным занятием. Именно для облегчения этой процедуры сторонними разработчиками и была создана программа VistaBootPRO (рис. 2.9).
Рис. 2.9. Окно программы VistaBootPROДанная программа распространяется бесплатно и занимает 1,41 Мбайт. Ее можно скачать с официального сайта http://www.pro-networks.org/vistabootpro.
Как и рассмотренную ранее программу bcdedit.ехе, VistaBootPRO нужно запускать только от имени администратора (фактически она является графическим интерфейсом для bcdedit.ехе).
Окно программы состоит из панели кнопок, расположенной слева, и поля, отображающего информацию о текущих настройках загрузочного меню. При запуске программы это поле отображает ту же информацию, что и вызов команды bcdedit.exe без параметров. Рассмотрим основные возможности программы, предоставляемые после нажатия одной из кнопок левой панели.
После нажатия кнопки View Settings можно просмотреть текущие параметры настройки загрузочного меню. Фактически нажатие кнопки View Settings эквивалентно выводу команды bcdedit.ехе без параметров.
С помощью кнопки Configure можно выполнить следующие действия:
• указать операционную систему, загружаемую по умолчанию, а также таймаут ожидания выбора операционной системы пользователем;
• переименовать один из элементов загрузочного меню, а также изменить букву диска, на котором расположена операционная система, запускаемая при выборе этого элемента меню.
После выбора кнопки Advanced вы сможете настроить дополнительные параметры загрузки определенной операционной системы: параметры режима отладки ядра, возможность запуска операционной системы с минимальной конфигурацией и т. д.
После нажатия кнопки Manage Entries вы сможете создать новый элемент загрузочного меню, удалить уже существующий элемент или упорядочить содержимое загрузочного меню.
С помощью кнопки Backup/Restore можно выполнить архивирование загрузочного меню или восстановление из уже созданного архива.
И, наконец, с помощью кнопки BootLoader можно заново создать загрузочное меню, используемое по умолчанию, или восстановить загрузочное меню, применяемое в ранних версиях операционной системы Windows (на основе файла boot. ini).
Программа msconfig.exeВ стандартную поставку Windows Vista входит программа msconf ig.ехе, с помощью которой также можно выполнить настройку некоторых параметров загрузки операционных систем. Для этого нужно запустить данную программу и перейти на вкладку Загрузка (рис. 2.10). Как можно заметить из рисунка, данная программа позволяет настраивать параметры запуска установленных на компьютере операционных систем Windows Vista, а также указывать таймаут ожидания выбора пользователем запускаемой операционной системы.
Рис. 2.10. Окно для настройки параметров запуска операционной системы с помощью программы msconfig.exeС помощью программы msconf ig.ехе можно установить или снять следующие параметры запуска: /NOGUIBOOT, /BOOTLOG, /BASEVIDEO, /SOS, /SAFEBOOT, /NUMPROC, /МАХМЕМ, / PC I LOCK, /DETECTHAL, /DEBUG, /BAUDRATE, /CHANNEL, /DEBUGPORT. Более подробно эти параметры описываются далее в подразд. «Файл boot.ini» этого раздела. Окно Загрузка и восстановление
Некоторые параметры работы загрузочного меню можно изменить и с помощью окна Загрузка и восстановление. К ним относится запускаемая по умолчанию операционная система, таймаут ожидания выбора операционной системы пользователем, а также уникальный параметр – таймаут ожидания перед выбором способа загрузки операционной системы в меню Дополнительные варианты загрузки.
Для отображения окна Загрузка и восстановление сначала нужно вызвать окно Свойства системы. Для этого необходимо выполнить команду SystemProper-tiesAdvanced.ехе. Затем нужно перейти на вкладку Дополнительно окна Свойства системы и в области Загрузка и восстановление нажать кнопку Параметры.
Хранение содержимого загрузочного меню в реестре Как уже упоминалось ранее, теперь загрузочное меню операционной системы хранится не в файле boot. ini, а в реестре. Для этого служит ветвь реестра HKEY_LOCAL_MACHINE\BCD00000000. Несмотря на то что способ хранения загрузочного меню в реестре выглядит довольно странно (например, как понять, в реестре какой операционной системы хранится загрузочное меню, ведь на момент его отображения ни одна из операционных систем загружена не была), он работает. Вы можете редактировать загрузочное меню непосредственно из реестра операционной системы, загружаемой по умолчанию.