• Администрация SafeZone приветствует вас на нашем форуме!
    Если вы больше не желаете видеть рекламу при просмотре тем и сообщений - то достаточно просто зарегистрироваться. Для зарегистрированных пользователей реклама не отображается.

Inf-файлы

  • Автор темы MotherBoard
  • Дата начала
M

MotherBoard

#1
Информация о программном обеспечении, необходимого для поддержки того или иного устройства, содержатся в файле с расширением inf. В этих файлах явно определены ресурсы и файлы, требуемые для каждого класса устройств.

Содержимое inf - файлов используется системой для анализа установки нового оборудования. Кроме того, inf - файлы необходимы для работы программы Windows Setup. В последнем случае Setup производит установку нового оборудования и записывает информацию о них в реестр. Подробнее использование целей В Windows:
* Автоматизация инсталяции Windows
* Информация для инсталляции оборудования
* Информация для инсталляции программ

Информацию о конфигурации устройств программа Setup получает из inf - файлов.
Хранятся эти файлы в папке \windows\inf. Вы можете открыть любой из этих файлов двойным щелчком мыши (это текстовые файлы,за которыми закреплена программа блокнот).
Для программистов важное значение имеет имеет информация для инсталяции оборудования и программ,чтобы самим писать те же драйвера для устройств. То есть для написания драйвера необходим данный файл,потому что он присутствует на любой установочной дискете. И такие файлы можно запустить из проводника через всплывающее меню действием "установить"

Состоит inf - файл из нескольких разделов, каждый из которых начинается с названия раздела, заключённого в квадратные скобки.
  • [version] - заголовок, в котором определяются класс устройств, устанавливаемых с помощью данного inf - файла, а так же указывается другой inf-файл (обычно layout.inf), содержащий информацию о местонахождении дистрибутива драйвера.

  • [Manufacturer] - раздел, в котором перечисляются все изготовители устройств, описываемых в данном файле. Данные этого раздела используются при создании записей в реестре, а так же составляют списки в диалогах диспетчера устройств, мастера установки оборудования.

  • [install] - описание драйвера и физических атрибутов устройств. В этом разделе так же присутствуют имена дополнительных разделов inf - файла, содержащих описание данного устройства.

  • [Logical Configuration] - раздел,содержащий детальную информацию о ресурсах для устройства: линиях IRQ, портах ввода - вывода, диапазонах адресов памяти, каналах DMA. Не все записи в этом разделе обязательны.
    Например,если устройство не обращается напрямую к памяти, то запись о канале DMA вообще не нужна. Однако если запись в разделе присутствует,то она должна иметь допустимые значения.

  • [ClassInistall] - раздел, устанавливающий новый класс устройств в разделе Class системного реестра. В этом разделе регистрируется описание класса, установщик и значок класса.

  • [String] - в этом разделе определяются строковые ключи (строковые переменные). Программа, обращающаяся к inf - файлу подставляет вместо строкового ключа значение строковой переменной и в дальнейшем использует это значение, например, при выводе на экран списков.

    Примечание: Линия IRQ или линия запроса прерываний - аппаратная линия,по которой устройство посылает процессору сигнал прерывания, обозначающий готовность устройства принять или передать информацию. Каждому устройству обычно выделяется отдельная линия IRQ.
    В INF файле можно описать практически все необходимое для инсталляции программы. При этом не надо знать функции API, например, для записи данных в реестр. Вот например как это делается в INF
    Код:
    [DefaultInstall]
    ......
    AddReg = Test.Add.Reg
    
    ......
    
    [Test.Add.Reg]
    HKLM,%URJ1%,DisplayName,"%Test_Desc%"
    ......
    
    [Strings]
    ......
    URJ1 = "Software\Microsoft\Windows\CurrentVersion"
    APPS_DESC       = "Accessories"
    Test_Desc    = "Test App"
    ......
    Но программа инсталляции все равно нужна. Правда в данном варианте она коротенькая совсем. Естественно она должна называться типа Setup.exe для красоты. Основное это то, что ваша программа инсталляции должна вызывать ShellExecuteEx и ей нужно передать местонахождение Вашего INF файла. При этом нужно дождаться окончания процесса его выполнения, тут поможет WaitForSingleObject.
    Описание INF файла требует отдельного разговора, а вот идея его организации такова. Очень часто параметр ссылается на раздел, в котором другие параметры и тем самым моделируется дерево.
    Код:
    [DefaultInstall]
    ......
    AddReg = Test.Add.Reg--------
    			                  |	
    ......			                  |	
    			                  |	
    [Test.Add.Reg] <-------------
    Кроме того в разделе Strings можно создать константы, которые в последствии использовать в параметрах (%имя_константы%)
    Код:
    [Strings]
    APPS_DESC       = "Accessories"
    Да, если Вы опишите нестандартный раздел или ошибетесь, то он просто игнорируется. Это говорит о том, что для генерации INF файла надо бы использовать или самому написать утилиту :) Правила INF файлов таковы:

    * Имена разделов заключены в квадратные скобки - [ ]
    * Имена записей могут быть не уникальны, но порядок их размещения играет роль
    * Нестандартные разделы игнорируются
 
Последнее редактирование модератором: