Inf-файлы

Тема в разделе "Microsoft Windows 7", создана пользователем MotherBoard, 31 дек 2009.

  1. MotherBoard
    Оффлайн

    MotherBoard Гость

    Информация о программном обеспечении, необходимого для поддержки того или иного устройства, содержатся в файле с расширением 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
      Код (Text):
      [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 файла требует отдельного разговора, а вот идея его организации такова. Очень часто параметр ссылается на раздел, в котором другие параметры и тем самым моделируется дерево.
      Код (Text):
      [DefaultInstall]
      ......
      AddReg = Test.Add.Reg--------
                                    |
      ......                            |
                                    |
      [Test.Add.Reg] <-------------
      Кроме того в разделе Strings можно создать константы, которые в последствии использовать в параметрах (%имя_константы%)
      Код (Text):
      [Strings]
      APPS_DESC       = "Accessories"
      Да, если Вы опишите нестандартный раздел или ошибетесь, то он просто игнорируется. Это говорит о том, что для генерации INF файла надо бы использовать или самому написать утилиту :) Правила INF файлов таковы:

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

Поделиться этой страницей