Бродя по темным закоулкам Technet и просматривая одним глазом DDK и SDK KIT для Win98, я наткнулся на описание загадочной секции, использующейся для установки через sysoc.inf. Я подозревал, что это штатная секция INF-файлов, просто не сильно афишировавшаяся. Итак, подробнее об этой секции.
Синтаксис:
[Optional Components]
Имя секции - ссылка на секцию в файле, которую надо исполнить для установки
.....
[Имя секции] - сама установочная секция
Данная секция служит для добавления устанавливаемого приложения в список оснастки "Установка/Удаление программ - Компоненты Windows". Секция не будет исполнена при попытке выполнить файл по правому щелчку мышью и выбору пункта "Установить". Ее также нельзя выполнить с помощью команды [Setupx.dll InstallHinfSection точка_входа]. В первом случае будет выполнятся секция [DefaultInstall], a во втором секция - указанная точкой входа. В обоих случаях параметры секции [Optional Components] будут игнорированны.
Насколько я понимаю, для обработки дополнительных инструкций секции [Optional Components] и существуют файлы sysoc.inf, ocgen.dll и sysocmgr.exe. В основном инструкции [Optional Components] служат для управления отображения компонентов в окне "Компоненты Windows".
Вернемся к синтаксису. В секцию установки могут быть добавлены следующие инструкции OC:
OptionDesc=название дополнительного компонента
Tip=Подсказка в поле "Описание".
InstallDefault=0 | 1 ; Устанавливать компонент по умолчанию. 1=Да, 0=Нет.
IconIndex=Номер иконки для отображения
Parent= (имя секции\группы) группа или подгруппа в "Компоненты Windows" (Пример: "Игры Windows" относятся к Parent=AccessUtil, аддоны 3dParty к Parent=NonMS)
Needs=имя секции, имя секции
Include=INF-файл, [INF-файл]
OptionDesc - это строковой параметр задающий название дополнительного компонента отображающегося в "Компоненты Windows". Может быть задан через Strings.
Tip - это текст подсказки в поле "Описание", ограничение - 255 символов.