Каталог расширений

Популярные теги

3gp       avi       fb2       jpg       mp3       pdf      

Файл inf как запустить


INF-файлы. Программы и файлы Windows

В данной статье мы рассмотрим, что представляет собой INF-файл, как с его помощью работать с другими файлами и реестром, создавать ярлыки, запускать программы и т.д.

Как известно, для более-менее серьезного программного продукта обычно требуется специальная программа инсталляции, с помощью которой пользователь сможет легко установить и так же легко удалить сам продукт. Существует много инструментальных средств, позволяющих быстро создавать инсталляционные пакеты. Однако, большинство из них добавляют к исходному размеру программы 200–500 Кб. А ведь это далеко не всегда радует. Серьезный продукт не обязательно должен быть внушительных размеров. И если вы хотите сделать инсталляцию доступной в Сети, то эти 200–500 Кб могут сильно сказаться на популярности продукта.

Как выйти из подобной ситуации? Здесь на помощь придут inf-файлы. Именно с помощью inf-файлов можно удалять, копировать другие файлы, добавлять информацию в реестр, в ini-файлы, создавать ярлыки, в общем, все то же, что обеспечивают громоздкие программы установки.

Перейдем к изучению спецификации inf-файлов.

inf-файл представляет собой текстовый файл, который, содержит условия установки программного обеспечения.

Чтобы запустить inf-файл, нужно щелкнуть по нему правой кнопкой мыши и выбрать в открывшемся контекстном меню параметр Установить (Install). Но для подготовки дистрибутива можно воспользоваться IExpress, который поддерживает запуск .inf-файлов. Вооружившись этой программой, а также знанием спецификации .inf-файлов, можно создавать профессиональные инсталляционные пакеты.

Основную информацию в .inf-файле содержат секции, представленные в Таблице 1 (более сложные .inf-файлы могут иметь дополнительные секции).

Секция [Version] обязательно должна включать строку Signature="$Chicago$"

Эта секция определяет стандартный заголовок для всех inf-файлов Microsoft Windows. Если сигнатура будет не $Chicago$, операционная система Windows не примет inf-файл как принадлежащий любому из классов устройств, признанных Windows.

При написании сигнатуры вы можете использовать как верхний, так и нижний регистры букв — $Chicago$ или $CHICAGO$.

Секция установки [DefaultInstall] может содержать следующие параметры:

CopyFiles — копирование файлов;

RenFiles — переименование файлов;

DelFiles — удаление файлов;

UpdateInis — изменение данных в ini-файлах;

UpdateIniFields — изменение областей в .ini-файлах;

AddReg — добавление информации в реестр;

DelReg — удаление информации из реестра;

Ini2Reg — перемещение строки или секции в ini-файлах;

UpdateCfgSys — изменение файла Config.sys;

UpdateAutoBat — изменение файла Autoexec.bat.

Этим параметрам в качестве значения присваивается имя секции с файлами. Например:

[DefaultInstall]

CopyFiles=CopyHtml

[CopyHtml]

Example.html ;файл для копирования...

[DestinationDirs] ;Секция расположения каталогов

DestExampleFiles=10 ;Каталог назначения (т.е. копировать в папку Windows)

Чуть ниже представлены цифровые обозначения специальных папок, применяемые в .inf-файлах:

10 — C:WINDOWS;

11 — C:WINDOWSSystem;

12 — C:WINDOWSSYSTEMIOSUBSYS;

13 — C:WINDOWSCOMMAND;

17 — C:WINDOWSInf;

18 — C:WINDOWSHlp;

20 — C:WINDOWSFONTS;

21 — C:WINDOWSSYSTEMVIEWERS;

22 — C:WINDOWSSYSTEMVMM32;

23 — C:WINDOWSSYSTEMCOLOR;

30 — Корневой загрузочный диск (обычно C:).

Например, если нужно скопировать файл в папку Web, которая находится в каталоге Windows, сделайте это так:

[DestinationDirs]

DestExampleFiles=10,WEB

Так же можно поступить и с другими папками, находящимися в определенных каталогах.

Параметр CopyFiles содержит имя секции, где находятся имена файлов для копирования с исходного диска в папку назначения. Папка назначения определяется в секции [DestinationDirs] inf-файла. В следующем примере копируются два файла:

[Version]

Signature=$Chicago$

[DefaultInstall]

Copyfiles=ExampleCopyFiles ;секция может быть названа как угодно

[SourceDisksNames]

1="Имя диска","",1

;Перечисляете файлы, которые содержатся на диске

[SourceDisksFiles]Example.exe=1

Example.vxd=1

;Перечисляете файлы для копирования (о цифрах через три запятые читайте ниже)

[ExampleCopyFiles]

Example.exe,,,1

Example.vxd,,,1

;Указываете папку, в которую будут копироваться файлы (10 — Windows)

[DestinationDirs]

ExampleCopyFiles=10

Цифры через три запятые обозначают дополнительные флаги при копировании файлов и могут принимать значения, представленные в

Параметр CopyFiles может копировать файл непосредственно из строки. Для этого перед именем файла нужно поставить символ @. В следующем примере копируются два текстовых файла:

[email protected], @anotherfile.txt

Параметр RenFiles содержит секции, которые в свою очередь содержат имена файлов для переименования. Папка, где будет происходить переименование, должна быть определена в секции [DestinationDirs] inf-файла. В следующий примере происходит переименование двух файлов из .bmp в .txt:

[Version]

Signature=$Chicago$

[DefaultInstall]

RenFiles=ExampleRenameOldFiles

[SourceDisksNames]

1="Имя диска","",1

;Перечисляете старые имена файлов

[SourceDisksFiles]

Example1.bmp=1

Example2.bmp=1

;Определяете файлы, которые будут переименовываться

[ExampleRenameOldFiles]

Example1.txt, Example1.bmp

Example2.txt, Example2.bmp

;Указываете папку, в которой будут переименовываться файлы (10 — Windows)

[DestinationDirs]

ExampleRenameOldFiles=10

В параметре AddReg указываются секции, которые содержат информацию о добавлении или изменении ключей, значений в реестре. Следующий пример регистрирует вашу копию операционной системы Windows.

[Version]

Signature=$Chicago$

[DefaultInstall]

AddReg=ExampleAddRegistry

;Определяете информацию, которая будет добавлена в реестр

[ExampleAddRegistry]

HKLM, "SOFTWAREMicrosoftWindowsCurrentVersion", "RegDone",,"1"

HKLM, "SOFTWAREMicrosoftWindowsCurrentVersion WelcomeRegWiz","@",,"1"

С помощью этого файла в реестр добавляется следующая информация:

HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersion

"RegDone"="1"

HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionWelcomeRegWiz

"@"="1"

Обратите внимание на запятые в inf-файле. Если нужно добавить в реестр параметр по умолчанию, запятые должны быть проставлены иначе. Например, в рассмотренном нами ключе реестра HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersion сделаем параметр по умолчанию равным единице (1):

HKLM, "SOFTWAREMicrosoftWindowsCurrentVersion",,,"1"

Ниже представлены корневые имена реестра, применяемые в inf-файлах.

HKCR — HKEY_CLASSES_ROOT;

HKCU — HKEY_CURRENT_USER;

HKLM — HKEY_LOCAL_MACHINE;

HKU — HKEY_USERS;

HKR — относительный ключ, используется классом installer; обычно применяется для дисков устройства.

В параметре DelReg указываются секции, которые содержат информацию об удалении подключей с параметрами и значениями из реестра. Следующий пример демонстрирует удаление подключа Graphviz со всеми параметрами и значениями этого раздела реестра — HKEY_CURRENT_USERSoftwareAT&TGraphviz:

[Version]

Signature=$Chicago$

[DefaultInstall]

DelReg=ExampleDelRegistry

;Определяете информацию, которая будет удалена из реестра

[ExampleDelRegistry]

HKLM, "HKEY_CURRENT_USERSoftwareAT&TGraphviz"

Корневые имена реестра, естественно, обозначаются так же, как и при добавлении информации в реестр.

В процессе установки можно прервать выполнение .inf-файла для показа пользователю какого-нибудь документа (после закрытия которого установка продолжится) или запустить определенный процесс. Следующий пример отображает файл справки About.hlp и текстовый файл About.txt, после чего запускает другой inf-файл — Example.inf:

[Version]

Signature=$Chicago$

[DefaultInstall]

AddReg=ExampleView

;Отображение файла справки About.hlp

[ExampleView]

HKLM,SoftwareMicrosoftWindowsCurrentVersionRunOnceSetup,%ABOUT%,,"WINHLP32.EXE — Main %1%About.hlp"

;Отображение текстового файла About.txt

HKLM,SoftwareMicrosoftWindowsCurrentVersionRunOnceSetup,%ABOUT%,,"notepad %1%About.txt"

;Запуск файла сценария Example.inf

HKLM,SoftwareMicrosoftWindowsCurrentVersionRunOnceSetup,%ABOUT%,,"rundll setupx.dll,InstallHinfSection DefaultInstall 132 %1%Example.inf"

;Определяете название, которое будет отображаться в окне "Установка Windows 98"

[Strings]

ABOUT="О программе..."

После того как определенные в секции [ExampleView] команды выполнятся, записи, добавленные в реестр, будут автоматически удалены из него. Таким образом можно запускать и другие процессы, например апплеты Панели управления:

;Запуск апплета Панели управления Свойства: Система (SYSDM.CPL)

HKLM,SoftwareMicrosoftWindowsCurrentVersionRunOnceSetup,%ABOUT%,,"rundll32

В следующем примере показано, как с помощью inf-файла изменить содержимое ini-файла: 

[Version]

Signature=$Chicago$

[DefaultInstall]

UpdateInis=ExampleAddINIfiles

;Указываете папку, где находится файл system.ini — например в папке Example, которая расположена в каталоге C:Program Files

30,PROGRA~1Example

[DestinationDirs]

ExampleAddINIfiles=30,PROGRA~1Example

;Определяете название файла и секции добавляемых, удаляемых или заменяемых строк

[ExampleAddINIfiles]

;Добавляете в секцию [boot] файла system.ini строку shell=Example.exe

system.ini, boot,, "shell=Example.exe"

;Удаляете из секции [boot] файла system.ini строку shell=Example.exe

system.ini, boot, "shell=Example.exe"

;Заменяете из секции [boot] файла system.ini строку shell=Example.exe на shell=Example8.exe

system.ini, boot, "shell=Example.exe", "shell=Example8.exe"

С помощью inf-файлов можно также создавать/удалять ярлыки в меню Пуск. Ярлык можно создать в уже созданной группе программ. Если таковой не существует, она будет создана автоматически.

Следующий пример создает группу программ Windows + + в меню Пуск > Программы и ярлыки к утилитам winipcfg.exe (Конфигурация IP), Regedit.exe (Редактор реестра) и Winfile.exe (Диспетчер файлов — только в Win98). Все они есть у вас на компьютере и лежат в папке Windows.

[Version]

Signature=$Chicago$

[DefaultInstall]

UpdateInis=ExampleShortcut

;Определяете название и размещение ярлыков

[ExampleShortcut]

setup.ini, progman.groups,, "group1=""Windows + +"""

setup.ini, group1,, """Конфигурация IP"",""""""%30%WINDOWSwinipcfg.exe"""""",,,,""%30%WINDOWS"",""winipcfg.exe"""

setup.ini, progman.groups,, "group1=""Windows + +"""

setup.ini, group1,, """Редактор реестра"",""""""%30%WINDOWSRegedit.exe"""""",,,,""%30%WINDOWS"",""Regedit.exe"""

setup.ini, progman.groups,, "group1=""Windows + +"""

setup.ini, group1,, """Диспетчер файлов"",""""""%30%WINDOWSWinfile.exe"""""",,,,""%30%WINDOWS"",""Winfile.exe"""

Ярлык прописывается в таком порядке:

1. Название группы программ. В нашем случае — Windows + +.

2. Имя ярлыка.

3. Путь к программе, к которой создается ярлык.

4. Рабочий каталог, обычно тот же, что и путь. Некоторые программы не работают, если это условие не выполняется.

5. Имя программы с расширением.

Параметр %30% определяет корневой диск. Если вы хотите создать ярлык к файлу, который находиться в каталоге Program Files, смело прописывайте полный путь (не используйте короткие имена), например %30%Program FilesSetup Generator ProSgpro.exe.

Для удаления ярлыка нужно убрать все записи, указанные после имени ярлыка. В следующем примере удаляется ярлык Конфигурация IP из программной группы Windows + +.

[ExampleShortcut]

setup.ini, progman.groups,, "group1=""Windows + +"""

setup.ini, group1,, """Конфигурация IP"""

Если вы удаляете один из ярлыков программной группы, то удаление не затронет другие ярлыки. Для полного удаления программной группы нужно прописать данное действие для каждого ярлыка.

К сожалению, вы не сможете с помощью inf-файла обычным способом скопировать файлы с длинными именами. Поддержка длинных файловых имен в .inf-файлах немного усложнена, но главное, что она существует. Для этого нужно проделать следующее: исходный файл должен быть с коротким именем, после установки его имя нужно сделать подлиннее. Для удаления процесс повторяется в обратном порядке: длинное файловое имя делается коротким и удаляется уже файл с 8.3-именем. Происходит все это с помощью реестра. Для этих действий в реестре предусмотрены специальные ключи:

Следующий ключ используется для переименования файлов:

HKEY_LOCAL_MACHINESoftwareMicrosoftWindowsCurrentVersionRenameFiles

Этот ключ используется для удаления файлов:

HKEY_LOCAL_MACHINESoftwareMicrosoftWindowsCurrentVersionDeleteFiles

Для действий переименования или удаления нужно добавить подключ с любым именем в соответствующую ветвь реестра. Минимум два ключа должны быть определены. Первый ключ содержит имя каталога, где будет происходить переименование или удаление файлов. Следующий ключ содержит имена файлов: первое — короткое, второе — длинное и его атрибуты, если нужно:

1 — Только для чтения;

2 — Скрытый;

3 — Системный.

Следующий пример демонстрирует переименование в каталоге C:Files файла About.txt в About View files.txt и установление ему атрибута «Скрытый», а также переименование того же файла в подкаталоге Xmp папки C:Files с установлением ему атрибута «Только для чтения»:

[Version]

Signature=$Chicago$

[DefaultInstall]

AddReg=Rename

[Rename]

HKLM,SoftwareMicrosoftWindowsCurrentVersionRenameFiles Example,,,"%30%Files"

HKLM,SoftwareMicrosoftWindowsCurrentVersionRenameFiles  Example,About.txt,,"About View files.txt,2"

HKLM,SoftwareMicrosoftWindowsCurrentVersionRenameFiles SubDir,,,"%30%FilesXmp"

HKLM,SoftwareMicrosoftWindowsCurrentVersionRenameFiles SubDir,About.txt,,"About View files.txt,1"

Ключи для удаления файлов имеют такую же структуру. Рассмотрим пример, который в каталоге C:Files удаляет файл About View files.txt и такой же файл удаляет в подкаталоге Xmp папки C:Files: 

[Version]

Signature=$Chicago$

[DefaultUninstall]

AddReg=Delete

[Delete]

HKLM,SoftwareMicrosoftWindowsCurrentVersionDeleteFiles

Example,,,"%30%Files"

HKLM,SoftwareMicrosoftWindowsCurrentVersionDeleteFiles Example,About.txt,,"About View files.txt"

HKLM,SoftwareMicrosoftWindowsCurrentVersionDeleteFiles SubDir,,,"%30%FilesXmp"

HKLM,SoftwareMicrosoftWindowsCurrentVersionDeleteFiles SubDir,About.txt,,"About View files.txt"

Параметры Example и SubDir могут быть любыми, например названием вашей программы, подкаталога и т.д. Важно, чтобы они были разными, т.к. переименование/удаление происходит в разных каталогах.

Данная статья не претендует на полноту, но надеюсь, поможет читателю освоить inf-файлы хотя бы поверхностно. Не бойтесь экспериментировать, но будьте предельно осторожны, особенно с процессами удаления.

Поделитесь на страничке

Следующая глава >

Как открыть файл INF? Расширение файла .INF

Что такое файл INF?

Полное имя формата файлов, которые используют расширение INF: Setup Information Format. Файлы с расширением INF могут использоваться программами, распространяемыми для платформы Mac OS, Windows. INF файл относится к категории Файлы параметров так же, как #NUMEXTENSIONS # других расширений файлов, перечисленных в нашей базе данных. Самая популярная программа для обработки INF файлов - Microsoft Windows, но пользователи могут выбирать из 5 различных программ, которые поддерживают этот формат файлов. На официальном сайте разработчика Microsoft Corporation вы найдете не только подробную информацию о программном обеспечении Microsoft Windows, но также о INF и других поддерживаемых форматах файлов.

Программы, которые поддерживают INF расширение файла

Следующий список содержит программы, сгруппированные по 2 операционным системам, которые поддерживают INF файлы. Файлы с расширением INF, как и любые другие форматы файлов, можно найти в любой операционной системе. Указанные файлы могут быть переданы на другие устройства, будь то мобильные или стационарные, но не все системы могут быть способны правильно обрабатывать такие файлы.

Как открыть файл INF?

Проблемы с доступом к INF могут быть вызваны разными причинами. С другой стороны, наиболее часто встречающиеся проблемы, связанные с файлами Setup Information Format, не являются сложными. В большинстве случаев они могут быть решены быстро и эффективно без помощи специалиста. Мы подготовили список, который поможет вам решить ваши проблемы с файлами INF.

Шаг 1. Установите Microsoft Windows программное обеспечение

Наиболее распространенной причиной таких проблем является отсутствие соответствующих приложений, поддерживающих файлы INF, установленные в системе. Наиболее очевидным решением является загрузка и установка Microsoft Windows или одной из перечисленных программ: Text editor, Windows Notepad, NotePad++ text editor. Выше вы найдете полный список программ, которые поддерживают INF файлы, классифицированные в соответствии с системными платформами, для которых они доступны. Самый безопасный способ загрузки Microsoft Windows установлен - для этого зайдите на сайт разработчика (Microsoft Corporation) и загрузите программное обеспечение, используя предоставленные ссылки.

Шаг 2. Убедитесь, что у вас установлена последняя версия Microsoft Windows

Вы по-прежнему не можете получить доступ к файлам INF, хотя Microsoft Windows установлен в вашей системе? Убедитесь, что программное обеспечение обновлено. Разработчики программного обеспечения могут реализовать поддержку более современных форматов файлов в обновленных версиях своих продуктов. Если у вас установлена более старая версия Microsoft Windows, она может не поддерживать формат INF. Все форматы файлов, которые прекрасно обрабатывались предыдущими версиями данной программы, также должны быть открыты с помощью Microsoft Windows.

Шаг 3. Свяжите файлы Setup Information Format с Microsoft Windows

Если проблема не была решена на предыдущем шаге, вам следует связать INF файлы с последней версией Microsoft Windows, установленной на вашем устройстве. Процесс связывания форматов файлов с приложением по умолчанию может отличаться в деталях в зависимости от платформы, но основная процедура очень похожа.

Выбор приложения первого выбора в Windows

  • Щелкните правой кнопкой мыши на файле INF и выберите «Открыть с помощью опцией».
  • Нажмите Выбрать другое приложение и затем выберите опцию Еще приложения
  • Последний шаг - выбрать опцию Найти другое приложение на этом... указать путь к папке, в которой установлен Microsoft Windows. Теперь осталось только подтвердить свой выбор, выбрав Всегда использовать это приложение для открытия INF файлы и нажав ОК .

Выбор приложения первого выбора в Mac OS

  • Нажав правую кнопку мыши на выбранном файле INF, откройте меню файла и выберите Информация.
  • Откройте раздел Открыть с помощью, щелкнув его название
  • Выберите Microsoft Windows и нажмите Изменить для всех ...
  • Если вы выполнили предыдущие шаги, должно появиться сообщение: Это изменение будет применено ко всем файлам с расширением INF. Затем нажмите кнопку Вперед», чтобы завершить процесс.
Шаг 4. Убедитесь, что файл INF заполнен и не содержит ошибок

Если проблема по-прежнему возникает после выполнения шагов 1-3, проверьте, является ли файл INF действительным. Отсутствие доступа к файлу может быть связано с различными проблемами.

1. Проверьте INF файл на наличие вирусов или вредоносных программ.

Если файл заражен, вредоносная программа, находящаяся в файле INF, препятствует попыткам открыть его. Рекомендуется как можно скорее сканировать систему на наличие вирусов и вредоносных программ или использовать онлайн-антивирусный сканер. INF файл инфицирован вредоносным ПО? Следуйте инструкциям антивирусного программного обеспечения.

2. Убедитесь, что файл с расширением INF завершен и не содержит ошибок

Вы получили INF файл от другого человека? Попросите его / ее отправить еще раз. Возможно, что файл не был должным образом скопирован в хранилище данных и является неполным и поэтому не может быть открыт. Это может произойти, если процесс загрузки файла с расширением INF был прерван и данные файла повреждены. Загрузите файл снова из того же источника.

3. Проверьте, есть ли у вашей учетной записи административные права

Существует вероятность того, что данный файл может быть доступен только пользователям с достаточными системными привилегиями. Выйдите из своей текущей учетной записи и войдите в учетную запись с достаточными правами доступа. Затем откройте файл Setup Information Format.

4. Убедитесь, что в системе достаточно ресурсов для запуска Microsoft Windows

Операционные системы могут иметь достаточно свободных ресурсов для запуска приложения, поддерживающего файлы INF. Закройте все работающие программы и попробуйте открыть файл INF.

5. Убедитесь, что ваша операционная система и драйверы обновлены

Последние версии программ и драйверов могут помочь вам решить проблемы с файлами Setup Information Format и обеспечить безопасность вашего устройства и операционной системы. Устаревшие драйверы или программное обеспечение могли привести к невозможности использования периферийного устройства, необходимого для обработки файлов INF.

Что это и как его открыть?

Если ваш файл INF связан с аппаратным обеспечением на вашем компьютере, чтобы открыть файл вам может потребоваться обновить драйверы устройств, связанных с этим оборудованием.

Эта проблема обычно связана с типами мультимедийных файлов, которые зависят от успешного открытия аппаратного обеспечения внутри компьютера, например, звуковой карты или видеокарты. Например, если вы пытаетесь открыть аудиофайл, но не можете его открыть, вам может потребоваться обновить драйверы звуковой карты.


Совет: Если при попытке открыть файл INF вы получаете сообщение об ошибке, связанной с .SYS file, проблема, вероятно, может быть связана с поврежденными или устаревшими драйверами устройств, которые необходимо обновить. Данный процесс можно облегчить посредством использования программного обеспечения для обновления драйверов, такого как DriverDoc.

Расширение файла INF. Чем открыть INF?

Расширение INF

Чем открыть файл INF

В Windows: Microsoft Windows, Блокнот, NotePad++, Любой текстовый редактор
В Mac OS: MacroMates TextMate, Любой текстовый редактор

Описание расширения INF

Популярность:

Раздел: Конфигурационные файлы

Расширение INF – это текстовый файл, который содержит информацию об устройствах и файлах для установки, например, образы драйверов, информация о реестре, расположение файлов и директорий, информация о версии и так далее, всё, что используется компонентами установки.

.INF состоит из множества названных секций, каждая из которых содержит одну или более позиций. Каждый раздел начинается с имени секции в квадратных скобках. Разделы имеют определенную цель (например, для копирования файлов или добавить записи в реестр) и содержат элементы, имеющие вид Имя=Значение. INF-файлы по сути похожи на INI-файлы. Файлы INF в основном используются для установки драйверов и системных инсталляционных пакетов Microsoft Windows, но так же могут быть использованы и для установки других приложений.

ПРИМЕЧАНИЕ: Файлы INF могут содержать вирусы, поэтому если вам по почте пришел .INF файл, то его не рекомендуется открывать.

ПРИМЕЧАНИЕ: Самый известный INF-файл – это Autorun.inf, используемый для автоматического запуска или установки приложений в операционной системе Windows (начиная с версии Windows 95). Этот файл должен находиться в корневом каталоге файловой системы устройства, для которого осуществляется автозапуск.

MIME тип: application/inf
HEX код: 5B 61 75 74 6F 72 75 6E 5D 0D 0A
ASCII код: [autorun]

Другие программы, связанные с расширением INF

    Информационный файл Adobe Type Manager от Adobe Systems Incorporated
    Расширение .INF – файл, который хранит информацию, связанную со шрифтами Type 1. .INF файл открывается в программе Adobe Type Manager для Apple Mac и Microsoft Windows.

    Относится к разделу Конфигурационные файлы.

    Популярность:

    Временный файл Pro/ENGINEER от Parametric Technology Corporation
    Расширение INF связано с приложением Pro/ENGINEER (так же известным как Creo Elements/Pro) 3D CAD/CAM/CAE программным обеспечением. .INF файл хранит временные данные, созданные приложением Pro/Engineer.

    Относится к разделу Временные файлы.

    Популярность:

    Файл цвета нитей Bernina от Bernina
    Расширение .INF – это файл, который хранит информацию о цвете нитей для соответствующего файла с дизайном вышивки .EXP. Файл INF используется в приложении ArtLink для вышивальных машин Bernina.

    Относится к разделу Другие файлы.

    Популярность:

Алгоритм установки драйвера в Windows

Очевидно, что у каждого пользователя персонального компьютера, время от времени возникает необходимость подключить к своей станции какое-либо устройство. Причина, по которой это происходит, нас сейчас не сильно то и интересует, это может быть и хорошо знакомый многим апгрейд (в целях увеличения производительности отдельных узлов, и как следствие общей производительности системы), это может быть и просто добавление нового оборудования для расширения функционала существующей конфигурации, как, например, в случае с подключением нового игрового манипулятора, это может быть и потребность в использовании данных с флеш-накопителя. Вне зависимости от того, каким именно образом мы подключаем новое устройство, операционная система Windows вынуждена реагировать на появление нового оборудования, производя определенные манипуляции для обеспечения поддержки нового оборудования на программном уровне. Во многих операционных системах для обеспечения программного взаимодействия с устройствами используются интерфейс между оборудованием и программным слоем под названием драйвер.

Драйвер (Driver) — программное обеспечение, при помощи которого операционная система и работающие в её составе программные модули, получают доступ к аппаратному или логическому устройствам.

Именно поэтому операционная система пытаемся всеми доступными ей методами обеспечить функционирование устройства в своей среде, для этого производится попытка установки для вновь подключаемого устройства соответствующего драйвера, дабы тем самым предоставить функции нового устройства для доступа программам пользовательского режима и коду режима ядра, ведь без этого самого пресловутого драйвера оборудование в системе работать попросту не сможет.
Я не случайно упомянул в определении логические устройства, поскольку существует отдельная категория драйверов, которые не занимаются обслуживанием аппаратного обеспечения, а интегрируются для расширения реализации (расширения, дополнения) функциональных особенностей различных модулей системы. Но кого сейчас удивишь установкой драйверов? Этот процесс настолько уже хорошо знаком всем пользователям ПК по многолетней практике, что некоторые, я уверен, могут делать это с закрытыми глазами :) Но задумывались ли мы о деталях этого процесса, размышляли ли когда-нибудь над алгоритмом установки драйвера? Задавались ли вопросом, какие именно действия выполняет операционная система в момент подключения нового устройства и инсталляции драйверов?

Согласитесь, что с точки зрения пользователя процесс установки драйвера в Windows, в большинстве случаев, выглядит достаточно прозаично. В системном трее появляется привычный анимированный значок мастера установки, и система через некоторое время может выдать отчет об успешном, либо неудачном завершении процедуры инсталляции в системе драйвера нового устройства. Более того, зачастую мастер установки кроме этой самой иконки в трее вовсе не выдает никаких визуальных подтверждений о попытках инсталляции нового устройства, при этом "тихо" добавляя новое оборудование в список устройств и (в случае неудачи) маркируя его специальным значком в диспетчере устройств, предлагая пользователю в ручном режиме продолжить конфигурирование оборудования. Все эти внешние процессы, хорошо уже знакомые как Вам так и мне, в той или ином виде присутствуют во всех версиях операционных систем Windows практически с момента появления этой операционной системы, незначительно отличаясь между собой лишь в деталях. Они стали настолько знакомыми и привычными, что я даже никогда и не задумывался, а что же происходит "по ту сторону экрана", в недрах операционной системы, что скрывается под этой мнимой простотой? Как Вы увидите далее, установка драйвера Windows для физического либо логического устройства скрывает под собой довольно сложные и чрезвычайно интересные процессы. Алгоритм установки драйвера в Windows можно разбить на перечисленные ниже ключевые глобальные задачи:

  • Копирование двоичного файла драйвера в соответствующий каталог в системе;
  • Регистрация драйвера в системе Windows с указанием метода загрузки;
  • Добавление необходимой информации в системный реестр;
  • Копирование/установка связанных вспомогательных компонентов из пакета драйвера;

Помимо основных задач, выполняемых в рамках алгоритма установки драйвера в Windows, неплохо было бы классифицировать и условия, по которым стартует процесс установки драйвера Windows:

  • Пользователь инсталлирует в выключенный компьютер новое устройство. В этом случае, сам процесс обнаружения нового устройства и инсталляции драйвера начинается уже на этапе загрузки операционной системы.
  • Пользователь с правами локального администратора, при помощи оснастки "Диспетчер устройств" инициирует установку либо обновление драйвера для какого-либо уже установленного устройства.
  • Пользователь "на ходу" подключает к работающему компьютер новое устройство. В этом случае речь идет об определенной категории устройств, которые могут подключаться "на лету", таких как устройства с внешним интерфейсом eSata, USB и прч. Ведь Вы же не будете инсталлировать внутреннюю видеокарту, когда питание подано на слоты PCIe? Я лично такого пока еще не вытворял :)
  • Пользователь самостоятельно запускает программу установки комплекта пакета драйвера из-под учетной записи с правами локального администратора. Такой способ может использоваться как для установки драйверов для физических устройств, которые поддерживают стандарт Plug and Play, так и для установки не-PnP (legacy) драйверов, драйверов логических устройств, которые не могут быть автоматически обнаружены системой и которые не могут быть проинсталлированы иначе как в ручном режиме. Характерным примером могут быть антивирусы или виртуальные машины, которые инсталлируют свои драйвера (логических устройств) в систему.
  • Пользователь щелкает правой кнопкой мыши на .inf-файле в директории с драйвером и выбирает пункт Установить из-под учетной записи с правами локального администратора.

Но что представляет из себя сам пакет драйвера? Ведь, как мы неоднократно видели, это целый набор файловом абсолютно различного, на первый взгляд, назначения. Без более углубленного обзора структуры инталляционного пакета установки драйвера нам будет сложно понять и сам алгоритм установки драйвера, поэтому приведем общие составляющие:

  • .inf-файл(ы). Ключевой компонент установочного пакета драйвера - файл, описывающий процесс инсталляции драйвера. inf-файл разделен на секции и состоит из инструкций, указывающих системе на то, как именно устанавливается драйвер: они описывают устанавливаемое устройство, исходное и целевое местонахождение всех компонентов драйвера, различные изменения, которые необходимо внести в реестр при установке драйвера Windows, информацию о зависимостях драйвера и прочее. .inf-файлы связывают физическое устройство с драйвером, контролирующим данное устройство.
  • Двоичный файл(ы) драйвера. Пакет, как минимум, должен содержать .sys- или .dll-файл ядра драйвера. Фактически один-единственный .sys-файл (в крайнем случае) может быть установлен (с оговорками) в ручном режиме через правку реестра.
  • Исполняемые файлы установки. Обычно это всем хорошо уже знакомые утилиты инсталляции, которые имеют имена setup.exe, install.exe и некоторые другие.
  • Исполняемые файлы удаления. Обычно это утилиты деинсталляции, которые имеют имена uninstall.exe.
  • Файл(ы) дополнительных процедур и библиотек. Обычно это вспомогательные библиотеки формата .dll, соинсталляторы.
  • .cat-файл(ы). Файл каталога, подписанный цифровой подписью. Данные файлы содержат цифровые подписи каталогов и играют роль сигнатуры для файлов пакета, с помощью которой пользователь может определить происхождение пакета и проверить целостность файлов пакета драйвера. Требуются в 64-битных версиях Windows, начиная с Vista и более поздних и рекомендуются для всех остальных.
  • Модули управления пользовательского режима. Обычно это различные командные апплеты, работающие в пользовательском режиме, такие как ATI Catalist Control Center, VIA HD Audio Desk, Realtek HD Audio Control Panel и аналогичные.
  • Файлы справок. Куда же без них то?

Термины и определения

В данной статье я приведу описание только одного метода установки, который, в любом случае, описывает практически все этапы алгоритма установки драйвера в Windows, которые применимы и к другим способам. И разговор у нас сейчас пойдет о ситуации, когда пользователь вставляет во внутренний разъем выключенного компьютера новое оборудование, например видеокарту. Но для начала введем некоторые, необходимые нам в процессе изучения алгоритма установки драйвера, определения.
Менеджер (диспетчер) Plug and Play (PnP Manager, PnP Менеджер) - облако кода режима ядра и пользовательского режима, отвечающее за добавление, распознавание, удаление устройств в системе. Блок режима ядра взаимодействует с остальными компонентами системы в процессе загрузки/установки программного обеспечения, необходимого для обслуживания имеющихся в системе устройств. Блок пользовательского режима (%Windir%\System32\umpnpmgr.dll, запускается в контексте главного системного процесса svchost.exe) отвечает за взаимодействие с пользователем в ситуациях, требующих установки новых драйверов или настройки рабочих параметров в уже инсталлированных. Отвечает за назначение и последующее распределение аппаратных ресурсов, таких как прерывания (IRQ), порты ввода-вывода, каналы прямого доступа к памяти (DMA) и адреса памяти. Имеет функционал определения драйвера, требуемого для поддержки определенного устройства и функционал загрузки/инсталляции данного драйвера. Умеет распознавать новые устройства, реагировать на их подключение и отключение. Является частью кода исполнительной подсистемы Windows.

Перечисление устройств

Целиком стадию загрузки с самого ее начала описывать смысла нет, и мы начнем с только с интересующего нас этапа, на котором модуль Winload(.efi) загружает ядро операционной системы Windows 7 из файла ntoskrnl.exe. Ядро запускает PnP менеджер, являющийся частью исполнительной подсистемы. PnP менеджер стартует процесс перечисления устройств с корневого устройства, драйвера виртуальной шины под названием ROOT (Корень), который олицетворяет собой всю систему и представляет из себя драйвер шины вообще для всех PnP- и не-PnP-устройств, а так же HAL (уровня аппаратных абстракций). HAL на этом этапе функционирует как драйвер шины, который перечисляет устройства, напрямую подключенные к материнской плате. Однако, HAL вместо фактического перечисления полагается на описание оборудования, уже присутствующее в реестре. Цель HAL на данном этапе - обнаружить первичные шины, такие как PCI. Драйвер первичной шины PCI, в свою очередь, перечисляет устройства, подключенные к данной шине, находит другие шины, для которых PnP менеджер тут же загружает драйвера. Эти драйвера шин, в свою очередь, обнаруживают уже устройства на своих шинах. Данный рекурсивный процесс перечисления, загрузки драйверов и последующего перечисления, продолжается пока все устройства в системе не будут обнаружены и сконфигурированы. В процессе перечисления PnP менеджер строит дерево устройств (device tree), которое однозначно описывает отношения между всеми устройствами системы. Узлы этого дерева, именуемые devnodes (сокр. от "узлы устройств"), содержат информацию об объекте устройства, который, в свою очередь, подробно описывает устройство.
Записи всех устройств, которые были обнаружены с момента инсталляции системы, хранятся в кусте реестра HKLM\SYSTEM\CurrentControlSet\Enum. Подключи этого куста описывают устройства в следующем формате:

HKLM\SYSTEM\CurrentControlSet\Enum\ Enumerator\ DeviceID\ InstanceID

HKLM\SYSTEM\CurrentControlSet\Enum\

                                   Enumerator\

                                              DeviceID\

                                                       InstanceID

где:

  • Enumerator - наименование драйвера шины. Может принимать значения: ACPI, DISPLAY, HDAUDIO, HID, HDTREE, IDE, PCI, PCIIDE, Root, STORAGE, SW, UMB, USB, USBSTOR и другие;
  • DeviceID - уникальный идентификатор для данного типа устройств;
  • InstanceID - уникальный идентификатор различных экземпляров одного и того же устройства.

Дело в том, что драйвер шины, к которой подключено устройство, запрашивает у устройства различные параметры (идентификатор производителя, устройства, ревизии и прч) и формирует так называемый аппаратный идентификатор (HardwareID), который однозначно описывает устройство и представляет из себя строку параметров, разделенных знаками & и состоящую из следующих частей:

  • Префикс, описывающий шину, к которой подключено устройство.
  • Идентификатор устройства. Состоит из нескольких частей, таких как идентификатор производителя, идентификатор продукта (модели), ревизия устройства.

HardwareID - идентификационная строка, зависящая от параметров устройства (производитель, модель, ревизия, версия и прч), которую Windows использует для сопоставления устройства с .inf-файлом драйвера.

Типичная структура HardwareID:

PCI\VEN_10DE&DEV_1341&SUBSYS_2281103C&REV_A2

Помимо HardwareID, устройству назначается параметр(ы) CompatibleID, который имеет схожий формат, однако содержит лишь более общие значения, не содержащие специфичных для какого-либо устройства параметров (некоторые идентификаторы устройства) и необходимый для инициализации более широкого круга совместимых устройств.

Идентификаторы HardwareID и CompatibleID используются кодом исполнительной подсистемы Windows для поиска драйвера устройства.

Обнаружение драйверов

Если на этапе перечисления устройств и загрузки драйверов, функциональный драйвер шины, на которую подключено новое устройство, информирует PnP менеджер об изменениях в подключенных дочерних устройствах. PnP менеджер режима ядра проверяет, сопоставлен ли с устройством драйвер, для этого он запрашивает драйвер шины, на которую подключено новое устройство, и получает идентификаторы HardwareID и, опционально, CompatibleID устройства. PnP менеджер режима ядра специальным событием информирует PnP менеджер пользовательского режима о том, что данное устройство требует инсталляции, передавая ему полученные идентификаторы. PnP менеджер пользовательского режима сначала пробует автоматически установить устройство без вмешательства пользователя. Для этого PnP менеджер пользовательского режима запускает утилиту rundll32.exe для запуска мастера установки драйверов устройств (%Windir%\System32\Newdev.dll).

Мастер установки драйверов устройств инициирует поиск подходящего для устройства драйвера по информации из всех inf-файлов системы, расположенных в следующих доверенных системных расположениях:

  • Хранилище драйверов;
  • Центр обновления Windows;
  • Системный каталог INF-файлов;

Для вышеописанных целей поиска и установки драйвера используются функции библиотек setupapi.dll (функции поддержки инсталляции) и cfgmgr32.dll (менеджер конфигурации). В процессе поиска используются полученные уже на данный момент идентификаторы HardwareID и (опционально) CompatibleID, значения которых описывают все возможные варианты идентификации оборудования в файле инсталляции драйвера, то есть inf-файле. Значения идентификаторов устанавливаемого устройства сравниваются с теми, что описаны в секциях Models зарегистрированных в системе inf-файлов. Списки идентификаторов упорядочены, поэтому более специфичные описатели оборудования представлены в списках первыми. Если совпадения идентификаторов были найдены в нескольких inf-файлах, более точное совпадение считается предпочтительным по отношению к менее точному совпадению, подписанные inf-файлы предпочитаются неподписанным, и подписанные позднее inf-файлы предпочитаются подписанным ранее. Если совпадение на основе HardwareID не найдено, то используются CompatibleID, в случае наличия, конечно же. Если совпадение не найдено на основе CompatibleID, мастер установки оборудования может вывести приглашение на указание местоположения свежего драйвера оборудования. Давайте более подробно рассмотрим все указанные источники информации о драйверах.

Хранилище драйверов

Мастер установки драйверов пытается обнаружить подходящий inf-файл в системном хранилище драйверов, располагающемся в каталоге %Windir%\System32\DriverStore, который содержит все без исключения драйвера системы, входящие в состав дистрибутива Windows, полученные через службу "Windows Update", либо инсталлированные в систему пользователем.

Хранилище драйверов - защищенное системное расположение, каталог, предназначающийся для хранения всех пакетов драйверов, которые когда-либо инсталлировались в системе.

Хранилище драйверов было впервые введено в Windows Vista. Перед установкой любого драйвера в систему, сначала специализированный код проверяет цифровую подпись драйвера, затем синтаксис inf-файлов драйвера, затем привилегии текущего пользователя, только после этого помещает все компоненты драйвера в системное хранилище драйверов. А вот затем уже драйвер, находящийся в хранилище драйверов, может быть использован для установки устройств в системе. Поскольку процедура помещения драйвера в хранилище достаточно проработана, хранилище драйверов и является самым доверенным источником информации о драйверах.

Системный каталог INF-файлов

Параллельно система ищет драйвер в системном расположении, описываемом значением параметра DevicePath, находящемся в ветке реестра HKLM\Software\Microsoft\Windows\CurrentVersion. Обычно параметр имеет значение %SystemRoot%\inf, что в большинстве систем эквивалентно местоположению C:\Windows\inf.

INF-файл

Хотелось бы сделать небольшое отступление и отдельно поговорить об информационных файлах пакета драйвера. inf-файл является одним из ключевых компонентов комплекта драйверов. В нем хранится последовательность операций по установке и удалению драйвера, описанная специальными директивами, указывающими на расположение файлов функционального драйвера. Файл содержит команды, которые добавляют в реестр информацию, отвечающую за перечисление (Enum) драйвера и его класса (Class), и могут содержать указания для мастера установки оборудования по запуску так называемых основных установщиков (Class Installer, Установщик класса) и дополнительных установщиков (CoInstaller, Cоинсталлятор) для класса устройств и непосредственно устройства. Дополнительно inf-файл определяет тип, производителя, модель устройства, класс драйвера, необходимые файлы и ресурсы.

Соинсталлятор (по структуре обычная DLL) - дополнительный инсталлятор, вызываемый на этапе инсталляции, который выполняет специфичные для подкласса или устройства шаги установки, такие как подготовка инфраструктуры для работы драйвера в системе (например, установка пакета NET.Framework), вывод конфигурационных диалоговых окон, которые позволяют пользователю указать настройки для конкретного устройства.

Немаловажная особенность соинсталляторов заключается в том, что они, в случае необходимости выполняют привязку экземпляров нового устройства к требуемым для работы протоколам. Это, к примеру, может касаться разного рода коммуникационных устройств, которым требуются для работы различные протоколы и транспорты, такие как ndis, pppoe, tcpip, tcpip6, smb, netbt.
В .inf-файле дополнительно описываются операции распаковки, копирования, запуска, переименования файлов, добавления и удаления ключей в реестре и многое другое.
Однако вернемся к главному алгоритму установки драйвера в Windows. В случае, когда установщик драйверов устройств не нашел подходящих драйверов в перечисленных выше локациях, система маркирует устройство как неопознанное.

При этом пользователю предлагается самостоятельно продолжить установку устройства через апплет Диспетчер устройств. После того как пользователь самостоятельно выбирает устройство и указывает местоположение файлов драйвера, алгоритм установки драйвера продолжает свою работу и следующим этапом у него стартует проверка цифровой подписи драйвера.

Проверка цифровой подписи драйвера

Дело в том, что драйвер как часть кода режима ядра, является достаточно критичным компонентом операционной системы, и любые ошибки, допущенные разработчиком в коде драйвера, легко могут привести к серьезным сбоям (BSOD) в системе. С некоторого времени Microsoft достаточно трепетно относится к качеству кода драйверов, и в связи с этим в операционные системы Windows были введены такие механизмы как цифровая подпись драйвера и системная политика подписи драйверов.

Цифровая подпись драйвера - строка данных переменной длины, которая в определенной мере является гарантом того, что код драйвера был создан надежным источником и не подвергался несанкционированным модификациям.

Следующим шагом часть кода PnP менеджера, работающая в пользовательском режиме, проверяет системную политику подписания драйверов. Если системная политика предписывает коду ядра блокировать или предупреждать об инсталляции неподписанных драйверов, то PnP менеджер парсит inf-файл драйвера на предмет наличия директивы CatalogFile, указывающей на файл каталога (файл с расширением .cat), содержащий цифровую подпись пакета драйвера.

Файл каталога (.cat) - специальный файл, который играет роль цифровой подписи для всего пакета драйвера, потому как отдельно каждый файл, входящий в комплект пакета драйвера, не подписывается. Исключение составляют лишь двоичные файлы драйверов ядра этапа загрузки, но их проверяет отдельный код ядра.

Для тестирования драйверов и их подписания была сформирована лаборатория Microsoft Windows Hardware Quality Lab (WHQL), обстоятельно тестирующая драйвера, поставляемые с дистрибутивами Windows, а так же драйвера от крупных поставщиков оборудования. Для всех остальных разработчиков драйверов предусмотрены процедуры получения возможности самостоятельно подписывать драйвера на платной основе. Когда драйвер проходит все тесты WHQL, он становится "подписанным". Это означает, что для драйвера WHQL формирует хэш, или уникальную сигнатуру, однозначно идентифицирующую файлы драйвера, и затем подписывает ее с применением криптографических алгоритмов при помощи специального закрытого ключа Microsoft, используемого для подписания драйверов. Подписанный хэш помещается в каталоговый файл (.cat-файл), который размещается непосредственно в директории пакета драйвера.
В процессе инсталляции драйвера, PnP менеджер пользовательского режима извлекает сигнатуру драйвера из .cat-файла, расшифровывает сигнатуру используя публичный ключ Microsoft и сравнивает результирующий хэш с хэшем файла инсталлируемого драйвера. Если хэши совпадают, драйвер маркируется как прошедший WHQL тестирование. Если сигнатуру не удается проверить, PnP менеджер действует в соответствии с настройками системной политики подписи драйверов, либо запрещая инсталляцию драйвера, либо все же позволяя инсталлировать драйвер.

Создание резервной копии

Довольно неплохая стратегия Windows создавать точку восстановления перед добавлением в систему драйверов нового устройства. Связано это, в первую очередь, с тем, что драйвер режима ядра, содержащий ошибку, может являться причиной полной неработоспособности системы, и как потом с этой системой быть? Даже не смотря на все подписи и проверки, пользователь должен иметь возможность отката конфигурации в случае, например, когда ему что-то после установки не понравилось.

Инсталляция драйвера

На этом этапе пакет драйвера стороннего разработчика развертывается в системное хранилище драйверов. Затем, система выполняет фактическую инсталляцию драйвера из хранилища драйверов, которая производится посредством утилиты %Windir%\System32\drvinst.exe. На этом этапе происходят следующие события:

  • inf-файл драйвера копируется в специализированную папку %Windir%/inf. Для драйверов сторонних разработчиков характерно переименование файла в OEMx.inf, где x - порядковый номер inf-файла в директории.
  • Код операционной системы фиксирует факт инсталляции inf-файла в реестре.
  • Создается узел устройства (devnode) в реестре по пути HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\<Enumerator>\<device id>\<instance id>, который содержит подробную информацию об устройстве.
  • Двоичные файлы драйвера копируются в целевую папку %Windir%\System32\DRIVERS и, возможно, другие целевые папки. Обновляются разделы реестра.
  • Формируется ключ реестра, соответствующий драйверу: HKLM\SYSTEM\CurrentControlSet\Services\имя_драйвера. Формируются параметры ключа.
  • Формируется ключ реестра, отвечающий за логгирование событий драйвера, размещающийся в ветке HKLM\SYSTEM\CurrentControlSet\Services\EventLog\System\имя_драйвера.
  • PnP менеджер вызывает процедуру DriverEntry для каждого установленного только что драйвера. Затем PnP менеджер режима ядра пытается "запустить" драйвер, подгружая его в память и вызывая процедуру AddDevice драйвера для информирования самого драйвера о присутствии устройства, для которого он был загружен.

Расположение информации о драйверах

Помимо описания самого алгоритма установки драйвера в Windows, хотелось бы выделить отдельный раздел и посвятить его описанию возможных мест размещения информации о драйверах в файловой системе и реестре. С практической точки зрения информация эта призвана упростить ручное редактирование в случае возникновения каких-либо фатальных сбоев. Ниже перечислены местоположения, в которых можно заметить следы присутствия информации о драйверах.

Общие журналы драйверов

В системе присутствует некоторое количество журналов, которые могут помочь с различными проблемами относительно драйверов.

  • %Windir%\setupact.log -- содержит сообщения отладки от инсталлятора драйверов режима ядра, который представляет собой Win32 DLL, сопровождающую процесс установки устройства;
  • %Windir%\inf\setupapi.app.log -- содержит сообщения процесса инсталляции приложений;
  • %Windir%\inf\setupapi.dev.log -- содержит сообщения процесса инсталляции устройств;

Журнал драйвера

Если Вы используете Диспетчер пакетов (Package Manager, pkgmgr) для инсталляции/деинсталляции пакета, который (в свою очередь) инсталлирует, обновляет, либо деинсталлирует драйвер, то у Вас есть возможность включить (с целью отладки) создание специального лог-файла drivers.log, который будет содержать только ошибки, специфичные для конкретного драйвера. Для создания этого журнала, создайте/задайте следующий ключ реестра, и затем запустите pkgmgr снова. После этого, в директории, откуда был запущен pkgmgr, будет создан файл drivers.log.
Ветка: HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Device Installer
Ключ: DebugPkgMgr
Тип: DWord
Значение: 1

%Windir%\inf

В этом каталоге хранятся всё inf-файлы. Как было уже сказано выше, после установки стороннего драйвера в систему, его inf-файл переименовывается в OEMx.inf, поэтому в директории можно увидеть целую серию подобных файлов. Код операционной системы запоминает факт инсталляции inf-файла в реестре.

%Windir%\System32\DRIVERS

Это директория в файловой системе Windows, где размещаются непосредственно файлы драйверов. В современных операционных системах, а я говорю сейчас о Windows Vista и более поздних, драйвера в данной директории имеют расширения .sys в подавляющем своем большинстве, реже встречаются dll-файлы, однако общего смысла это не меняет, поскольку, вне зависимости от расширения, все они идентичны по структуре .dll-файлам. В более ранних операционных системах встречались такие форматы как .drv и .vxd.

%Windir%\System32\DriverStore

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

HKLM\SYSTEM\CurrentControlSet\Enum

Куст реестра, содержащий информацию об устройствах, имеющихся в системе. PnP менеджер создает здесь ключ для каждого устройства в формате HKLM\SYSTEM\CurrentControlSet\Enum\Enumerator\deviceID. где Enumerator - это описанный выше в статье идентификатор шины, полученный на этапе перечисления устройств, deviceid - идентификатор типа устройств. Ключ содержит следующую информацию: описание устройства, аппаратные идентификаторы (Hardware ID), идентификаторы совместимых устройств (Compatible ID) и требования к ресурсам. Куст зарезервирован для использования исключительно кодом операционной системой, поэтому пользовательским приложениям и драйверам не рекомендуется напрямую взаимодействовать с ним, предлагается использовать документированные системные функции.

HKLM\SYSTEM\CurrentControlSet\Control

Куст реестра, содержащий информацию о разных параметрах конфигурации драйверов на этапе запуска операционной системы. Содержит такие важные ключи как:

  • Class содержит информацию о классах инсталляции устройств, которые используются для группировки устройств, конфигурируемых и устанавливаемых схожим образом. Для каждого класса инсталляции в составе этого ключа имеется ключ, имя которого совпадает с именем GUID соответствующего класса инсталляции.
  • CoDeviceInstallers содержит информацию о соинсталляторах класса
  • DeviceClasses содержит информацию об интерфейсах устройств, зарегистрированных в системе. любой драйвер, который хочет взаимодействовать в системе с программами режима пользователя, должен предоставить интерфейс. Класс интерфейса устройства предоставляет функциональные возможности устройства и его драйвера другим системным компонентам и приложениям режима пользователя.

HKLM\SYSTEM\CurrentControlSet\Services

Куст реестра, который используется для размещения информации обо всех сервисах (драйверах) в системе. Каждый системный драйвер размещает достаточно важную глобальную информацию о себе в подключах вида HKLM\SYSTEM\CurrentControlSet\Services\<Имя_драйвера>, которая используется драйвером в процессе инициализации на этапе загрузки системы. Куст активно используется PnP менеджером для передачи параметров при вызове процедуры инициализации драйвера.
В этом кусте размещаются такие элементы:

  • ImagePath - содержит полный путь в двоичному файлу (образу) драйвера. программа инсталляции заполняет это значение на основе данных из inf-файла пакета драйвера;
  • Parameters - хранит индивидуальную информацию драйвера, заполняется на основе данных, размешенных в inf-файле пакета драйвера;
  • Performance - информация для мониторинга производительности устройства, контролируемого драйвером. Указывает имя DLL мониторинга производительности и имена функций, экспортируемых данной DLL. Заполняется на основании данных, полученных из inf-файла;

HKLM\SYSTEM\CurrentControlSet\HardwareProfiles

Куст реестра, который содержит информацию об аппаратных профилях системы и предназначен для поддержки данной технологии. Аппаратный профиль это всего-лишь набор изменений в стандартной аппаратной конфигурации и конфигурации сервисов (original configuration), загружаемых при старте системы. Содержит специфические изменения исходного, основного профиля оборудования, сконфигурированного в двух разделах реестра: HKLM\SOFTWARE и HKLM\SYSTEM.

Установка драйвера из INF-файла. Установка, настройка и восстановление Windows 7 на 100%

Установка драйвера из INF-файла

Рассмотрим ситуацию, когда для установки оборудования используется набор из INF-файлов.

Откройте Панель управления и запустите механизм Диспетчер устройств. В результате откроется окно, в котором вы можете видеть список всех устройств, обнаруженных операционной системой на компьютере (рис. 16.1).

Большую его часть составляют устройства, находящиеся на материнской плате, и лишь некоторые записи свидетельствуют об устройствах, которые установлены в виде платы расширения или подключены с использованием внешних портов.

Наша задача – установить драйвер для устройства, не обнаруженного операционной системой. Если устройство еще не подключено к компьютеру, самое время это сделать.

Если устройство уже подключено к компьютеру, то щелкните правой кнопкой мыши на названии компьютера в самом верху списка и в появившемся меню выберите пункт Установить старое устройство (рис. 16.2). Это приведет к запуску мастера установки оборудования, который будет вам помогать и направлять ваши действия при установке оборудования (рис. 16.3).

Рис. 16.1. Запускаем механизм Диспетчер устройств

Рис. 16.2. Выбираем пункт Установить старое устройство

Прочитав вступительную речь и приготовив диск с драйверами, если он нужен, нажмите кнопку Далее, чтобы начать процесс установки устройства.

Рис. 16.3. Мастер установки оборудования

Мастер установки на выбор предлагает два варианта дальнейших действий: автоматическую и ручную установку оборудования (рис. 16.4). Автоматическая установка ничего не даст, так как операционная система уже пыталась сделать это в процессе установки. По этой причине сразу же необходимо переходить ко второму варианту действий. Установите переключатель в положение Установка оборудования, выбранного из списка вручную и нажмите кнопку Далее.

Рис. 16.4. Выбираем вариант действия

В следующем окне вы увидите список устройств разного типа, драйверы к которым имеются в операционной системе (рис. 16.5).

Рис. 16.5. Указываем тип устройства, которое нужно установить

Рассмотрим сначала вариант, когда вы обнаружили в списке производителей и драйверов нужный вам драйвер. Отметив его, нажмите кнопку Далее, чтобы перейти к его установке.

В следующем окне мастер установки оборудования покажет список всех имеющихся в системе драйверов для выбранного типа устройства, отсортированных по производителю оборудования. Если вы уверены в том, что для вашего оборудования подойдет один из предложенных драйверов, то в левой части окна выберите нужного производителя, а в правой – необходимый драйвер. После этого можно попробовать его установить, нажав кнопку Далее (рис. 16.6). Это приведет к появлению подтверждающего окна, в котором еще раз нужно нажать кнопку Далее (рис. 16.7).

После того как установка драйверов подтверждена, мастер установки оборудования копирует необходимые драйверы в систему и пытается инициализировать устройство. Если инициализация устройства прошла успешно, вы увидите окно с сообщением о том, что драйвер для устройства был установлен корректно и устройство готово к работе. В противном случае мастер сообщит о том, что установка завершилась неудачей и запуск устройства невозможен, или о том, что есть какие-то трудности (рис. 16.8).

Рис. 16.6. Указываем драйвер для устройства

Рис. 16.7. Подтверждаем установку драйвера

В этой ситуации единственный выход – попробовать установить другой драйвер, например идущий в комплекте с устройством или скачанный с веб-сайта производителя в Интернете.

Рис. 16.8. Неудачная установка драйвера

Чтобы установить другой драйвер, нажмите кнопку Установить с диска (см. рис. 16.6). В результате появится окно, в котором нужно нажать кнопку Обзор (рис. 16.9) и в открывшемся окне выбора файла указать расположение файла с драйвером.

Рис. 16.9. Устанавливаем драйвер из другого источника

После нажатия кнопки ОК мастер попытается установить драйвер. Если данный драйвер сможет работать в Windows 7, он будет установлен и устройство сможет функционировать.

Данный текст является ознакомительным фрагментом.

Читать книгу целиком

Поделитесь на страничке

c # - Как запустить файл .INF, который находится на жестком диске, в качестве администратора в Windows 10?

Переполнение стека
  1. Около
  2. Товары
  3. Для команд
  1. Переполнение стека Общественные вопросы и ответы
  2. Переполнение стека для команд Где разработчики и технологи делятся частными знаниями с коллегами
  3. Вакансии Программирование и связанные с ним технические возможности карьерного роста
  4. Талант Нанимайте технических талантов и стройте
.

Использование компонента INF-файла - драйверы Windows

  • 4 минуты на чтение

В этой статье

Если вы хотите включить программное обеспечение пользовательского режима для использования с устройством в Windows 10, у вас есть следующие возможности для создания DCH-совместимого драйвера:

Дополнительное программное обеспечение
Метод Сценарий
Приложения поддержки оборудования (HSA) Дополнительное программное обеспечение для устройства в виде приложения UWP, которое доставляется и обслуживается из Microsoft Store.Рекомендуемый подход.
Программные компоненты Device - это двоичный файл MSI или EXE, служба Win32 или программное обеспечение, установленное с помощью AddReg и CopyFiles. Указанный двоичный файл работает только в настольных версиях (Home, Pro и Enterprise). Указанный двоичный файл не будет работать в Windows 10S.

Программный компонент - это отдельный автономный пакет драйверов, который может устанавливать один или несколько программных модулей. Установленное программное обеспечение увеличивает ценность устройства, но оно не является необходимым для основных функций устройства и не требует службы связанного функционального драйвера.

На этой странице представлены инструкции по использованию программных компонентов.

Начало работы

Для создания компонентов в файле расширения INF указана директива INF AddComponent один или несколько раз в разделе INF DDInstall.Components. Для каждого программного компонента, указанного в файле расширения INF, система создает виртуальное дочернее устройство с программной нумерацией. Более чем один пакет драйверов может ссылаться на один и тот же программный компонент.

Виртуальное дочернее устройство может обновляться независимо, как и любое другое устройство, если родительское устройство запущено.Мы рекомендуем разделить функциональные возможности на столько разных групп, сколько имеет смысл с точки зрения обслуживания, а затем создать один программный компонент для каждой группы.

Вы предоставите файл INF для каждого программного компонента.

Если ваш программный компонент INF определяет директиву AddSoftware , компонент INF:

Директиву AddSoftware можно указать один или несколько раз.

Примечание

При использовании типа 2 директивы AddSoftware не требуется использовать Component INF.Директива может успешно использоваться в любом INF. Однако директива AddSoftware типа 1 должна использоваться из Component INF.

Кроме того, любой INF (компонент или нет) соответствует на устройстве компонента программного обеспечения:

Пример компонента INF можно найти в наборе инструментов установки пакета драйверов для универсальных драйверов.

Примечание : Для того, чтобы компонентное устройство с программной нумерацией функционировало, его родительский элемент должен быть запущен. Если драйвер для родительского устройства недоступен, разработчики драйверов могут создать свой собственный и при необходимости использовать сквозной драйвер umpass.sys ". Этот драйвер включен в Windows и, по сути, не делает ничего, кроме запуска устройства. Чтобы использовать umpass.sys, разработчики должны использовать директивы Include / Needs INF в разделе DDInstall для каждого возможного [DDInstall. *] в соответствующие разделы [UmPass. *], как показано ниже, независимо от того, указаны ли в INF какие-либо директивы для этого раздела или нет:

  [DDInstall] Включить = umpass.inf Потребности = UmPass ; также включить любые существующие директивы DDInstall [DDInstall.HW] Включить = umpass.inf Потребности = UmPass.HW ; также включить любые существующие директивы DDInstall.HW [DDInstall.Interfaces] Включить = umpass.inf Потребности = UmPass.Interfaces ; также включить любые существующие директивы DDInstall.Interfaces [DDInstall.Services] Включить = umpass.inf Потребности = UmPass.Services ; также включать любые существующие директивы DDInstall.Services  

Доступ к устройству из программного компонента

Чтобы получить идентификатор экземпляра устройства, связанного с программным компонентом, используйте значение SoftwareArguments в разделе директив INF AddSoftware с переменной контекста времени выполнения <> .

Исполняемый файл затем может получить идентификатор экземпляра устройства программного компонента из своего списка входящих аргументов.

Затем, если программный компонент нацелен на универсальную целевую платформу, используйте следующую процедуру:

  1. Вызов CM_Locate_DevNode с идентификатором экземпляра устройства программного компонента, чтобы получить дескриптор устройства.
  2. Вызовите CM_Get_Parent , чтобы получить дескриптор родительского устройства. Этот родительский элемент является устройством, добавившим программный компонент с помощью директивы INF AddComponent.
  3. Затем, чтобы получить идентификатор экземпляра устройства родительского устройства, вызовите CM_Get_Device_ID на дескрипторе из CM_Get_Parent .

Если программный компонент нацелен только на целевую платформу Desktop, используйте следующую процедуру:

  1. Вызовите SetupDiCreateDeviceInfoList , чтобы создать пустой набор информации об устройстве.
  2. Позвоните по номеру SetupDiOpenDeviceInfo и сообщите идентификатор экземпляра устройства программного компонента.
  3. Вызовите SetupDiGetDeviceProperty с DEVPKEY_Device_Parent , чтобы получить идентификатор экземпляра устройства родительского устройства.

Пример

В следующем примере показано, как можно использовать программный компонент для установки панели управления с использованием исполняемого файла для видеокарты.

Пакет драйверов INF-файл

  [Версия] Подпись = "$ WINDOWS NT $" Класс = Расширение ClassGuid = {e2f84ce7-8efa-411c-aa69-97454ca4cb57} ExtensionId = {zzzzzzzz-zzzz-zzzz-zzzz-zzzzzzzzzzzz}; замените своим собственным GUID Провайдер =% CONTOSO% DriverVer = 21.06.2006, 1.0.0.0 CatalogFile = ContosoGrfx.кошка [Производитель] % CONTOSO% = Contoso, NTx86 [Contoso.NTx86] % ContosoGrfx.DeviceDesc% = ContosoGrfx, PCI \ VEN0001 и DEV0001 [ContosoGrfx.NT] ; пустой [ContosoGrfx.NT.Components] AddComponent = ContosoControlPanel ,, Component_Inst [Component_Inst] ComponentIDs = VID0001 & PID0001 & SID0001 [Строки] CONTOSO = "Contoso Inc." ContosoGrfx.DeviceDesc = "Расширение видеокарты Contoso"  

INF-файл программного компонента

  [Версия] Подпись = "$ WINDOWS NT $" Класс = SoftwareComponent ClassGuid = {5c4c3332-344d-483c-8739-259e934c9cc8} Провайдер =% CONTOSO% DriverVer = 21.06.2006,1.0,0.0 CatalogFile = ContosoCtrlPnl.cat [SourceDisksNames] 1 =% Диск% ,,, "" [SourceDisksFiles] ContosoCtrlPnl.exe = 1 [DestinationDirs] DefaultDestDir = 13 [Производитель] % CONTOSO% = Contoso, NTx86 [Contoso.NTx86] % ContosoCtrlPnl.DeviceDesc% = ContosoCtrlPnl, SWC \ VID0001 и PID0001 и SID0001 [ContosoCtrlPnl.NT] CopyFiles = ContosoCtrlPnl.NT.Copy [ContosoCtrlPnl.NT.Copy] ContosoCtrlPnl.exe [ContosoCtrlPNl.NT.Services] AddService =,% SPSVCINST_ASSOCSERVICE% [ContosoCtrlPnl.NT.Software] AddSoftware = ContosoGrfx1CtrlPnl ,, Software_Inst [Software_Inst] SoftwareType = 1 SoftwareBinary =% 13% \ ContosoCtrlPnl.исполняемый SoftwareArguments = <> SoftwareVersion = 1.0.0.0 [Строки] SPSVCINST_ASSOCSERVICE = 0x00000002 CONTOSO = "Contoso" ContosoCtrlPnl.DeviceDesc = "Панель управления Contoso"  

Процесс проверки и отправки драйвера для компонентов INF такой же, как и для обычных INF. Дополнительные сведения см. В разделе «Начало работы с Windows HLK».

Дополнительные сведения о классах настройки см. В разделе Классы настройки устройств, определяемые системой, доступные для поставщиков.

См. Также

Директива INF AddComponent

INF Директива AddSoftware

INF DDInstall.Компоненты Раздел

INF DDInstall.Software Раздел

.

Создание приложения с поддержкой автозапуска (Windows)

  • 3 минуты на чтение

В этой статье

Создание приложения с функцией автозапуска - несложная процедура. В этом разделе в качестве примера используется компакт-диск (это был первый носитель, в котором реализована эта технология), но сегодня существует множество различных типов носителей, которые могут его использовать.

Чтобы включить автозапуск в вашем приложении, вы просто включаете два важных файла:

  • Автозапуск.inf файл
  • Приложение для запуска

Когда пользователь вставляет диск в привод CD-ROM на компьютере, совместимом с AutoRun, система немедленно проверяет, есть ли на диске файловая система персонального компьютера. Если это так, система ищет файл с именем Autorun.inf. В этом файле указывается приложение установки, которое будет запущено, а также множество дополнительных настроек. Приложение запуска обычно устанавливает, удаляет, настраивает и, возможно, запускает приложение.

  • Создание автозапуска.inf Файл
  • Раздел [DeviceInstall]
  • Связанные темы

Создание файла Autorun.inf

Autorun.inf - это текстовый файл, расположенный в корневом каталоге компакт-диска, содержащего ваше приложение. Его основная функция - предоставить системе имя и расположение программы запуска приложения, которая будет запускаться при установке диска.

Примечание. Файлы Autorun.inf не поддерживаются в Windows XP для дисков, которые возвращают DRIVE_REMOVABLE из GetDriveType .

Файл Autorun.inf может также содержать дополнительную информацию, в том числе:

  • Имя файла, содержащего значок, который будет представлять дисковод компакт-дисков вашего приложения. Этот значок будет отображаться в проводнике Windows вместо стандартного значка диска.
  • Дополнительные команды для контекстного меню, которое отображается, когда пользователь щелкает правой кнопкой мыши значок компакт-диска. Вы также можете указать команду по умолчанию, которая запускается, когда пользователь дважды щелкает значок.

Файлы Autorun.inf аналогичны файлам .ini. Они состоят из одного или нескольких разделов, названия каждого из которых заключаются в квадратные скобки. Каждый раздел содержит серию команд, которые будут выполняться оболочкой при вставке диска. Для файлов Autorun.inf в настоящее время определены два раздела.

  • Раздел [автозапуск] содержит команды автозапуска по умолчанию. Все файлы Autorun.inf должны иметь раздел [autorun] .
  • Необязательный [автозапуск.alpha] раздел может быть включен для систем, работающих на компьютерах на базе RISC. Когда диск вставлен в привод CD-ROM в системе на основе RISC, оболочка будет запускать команды из этого раздела вместо команд из раздела [автозапуск] .

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

Каждый раздел содержит серию команд, определяющих, как происходит операция автозапуска. Доступно пять команд.

Команда Описание
значок по умолчанию Задает значок приложения по умолчанию.
значок Задает путь и имя файла для значка приложения для привода CD-ROM.
открытый Задает путь и имя файла запускаемого приложения.
использовать автозапуск Указывает, что функции Autoplay V2 должны использоваться, если они поддерживаются.
оболочка Определяет команду по умолчанию в контекстном меню компакт-диска.
shell_verb Добавляет команды в контекстное меню компакт-диска.

Ниже приведен пример простого файла Autorun.inf. Он указывает Filename.exe в качестве запускаемого приложения. Второй значок в Filename.exe будет представлять дисковод компакт-дисков вместо стандартного значка дисковода.

  [автозапуск] open = имя файла.exe icon = Filename.exe, 1  

Этот образец Autorun.inf запускает различные запускаемые приложения в зависимости от типа компьютера.

  [автозапуск] open = имя_файла_x86.exe icon = IconFile.ico [autorun.alpha] open = имя файла_RISC.exe icon = IconFile.ico  

Раздел [DeviceInstall]

Раздел [DeviceInstall] можно использовать на любом съемном носителе.Поддерживается только под Windows XP. Вы используете DriverPath , чтобы указать путь к каталогу, в котором Windows XP ищет файлы драйверов, что предотвращает длительный поиск по всему содержимому.

Вы используете раздел [DeviceInstall] с установкой драйвера, чтобы указать каталоги, в которых Windows XP должна искать файлы драйверов на носителе. В Windows XP поиск по всему носителю больше не выполняется по умолчанию, поэтому требуется [DeviceInstall] указать места поиска.Ниже приведены единственные съемные носители, на которых Windows XP полностью выполняет поиск без раздела [DeviceInstall] в файле Autorun.inf.

  • Флоппи-диски в дисководах A или B.
  • CD / DVD-носитель размером менее 1 гигабайта (ГБ).

Все остальные носители должны содержать раздел [DeviceInstall] для Windows XP для обнаружения любых драйверов, хранящихся на этом носителе.

Примечание Как и в случае раздела [AutoRun] , раздел [DeviceInstall] может быть архитектурно-зависимым.

Как реализовать автозапуск приложений

Написание приложения для установки устройства

.

Использование файлов INX для создания файлов INF - драйверы Windows

  • 2 минуты на чтение

В этой статье

INX-файл - это INF-файл, содержащий строковые переменные, представляющие информацию о версии. Когда вы создаете драйвер с помощью Microsoft Visual Studio, в процессе сборки запускается инструмент Stampinf для замены строковых переменных в файлах INX текстовыми строками, которые представляют конкретную архитектуру оборудования или версию платформы.Вы также можете вручную запустить инструмент Stampinf, который находится в подкаталоге bin WDK.

Если вы создаете файлы INX для своих драйверов, вам не нужно поддерживать несколько файлов INF, зависящих от версии. Вместо этого вы можете создать один файл INX и использовать Visual Studio или Stampinf для создания файлов INF для конкретной версии, когда они вам понадобятся.

Чтобы изменить свойства Stampinf в Visual Studio, откройте страницы свойств для проекта пакета драйвера. Щелкните правой кнопкой мыши проект пакета в обозревателе решений и выберите Свойства .На страницах свойств пакета щелкните Свойства конфигурации , а затем StampInf .

WDK включает файлы INX для всех образцов драйверов KMDF и UMDF.

Файлы

INX могут содержать следующие строковые переменные:

$ ARCH $
Stampinf заменяет эту переменную архитектурной строкой. Например, если вы используете среду сборки x86, инструмент заменяет $ ARCH $ на «x86». Строку $ ARCH $ можно использовать везде, где необходимо указать конкретную архитектуру в файле INF, например, в разделе производителя INF , как показано ниже:

  [Производитель] % StdMfg% = Standard, NT $ ARCH $  

$ KMDFCOINSTALLERVERSION $
Если вы используете опцию инструмента Stampinf - k , Stampinf заменяет эту переменную строкой, которая представляет конкретную версию совместной установщика KMDF.Вы можете использовать переменную $ KMDFCOINSTALLERVERSION $, когда вы указываете совместный установщик фреймворка в INF-файле, например, в разделе INF DDInstall.CoInstallers , как показано ниже:

  [ECHO_Device.NT.CoInstallers] AddReg = ECHO_Device_CoInstaller_AddReg CopyFiles = ECHO_Device_CoInstaller_CopyFiles [ECHO_Device_CoInstaller_AddReg] HKR ,, CoInstallers32,0x00010000, "WdfCoInstaller $ KMDFCOINSTALLERVERSION $ .dll, WdfCoInstaller" [ECHO_Device_CoInstaller_CopyFiles] WdfCoInstaller $ KMDFCOINSTALLERVERSION $.dll  

$ KMDFVERSION $
Если установить свойство Номер версии KMDF в Visual Studio (или использовать параметр инструмента Stampinf - k ), Stampinf заменяет эту переменную строкой, представляющей конкретную версию KMDF. Вы можете использовать переменную $ KMDFVERSION $ при указании версии платформы в файле INF, например, когда вы указываете директиву KmdfLibraryVersion, как показано ниже:

  KmdfLibraryVersion = $ KMDFVERSION $  

$ UMDFCOINSTALLERVERSION $

  [SourceDisksFiles] WudfUpdate_ $ UMDFCOINSTALLERVERSION $.dll = 1 [CoInstallers_CopyFiles] WudfUpdate_ $ UMDFCOINSTALLERVERSION $ .dll [CoInstallers_AddReg] HKR ,, CoInstallers32,0x00010000, "WUDFUpdate_ $ UMDFCOINSTALLERVERSION $ .dll"  

$ UMDFВЕРСИЯ $

  [UMDFYourDriver_Install] UmdfLibraryVersion = $ UMDFVERSION $  

Stampinf также поддерживает параметр - и для замены строковых переменных UMDF в файле INX. Если в ваш пакет драйверов входят драйверы на основе UMDF и KMDF, вы можете использовать параметры - k и - u с одной командой Stampinf и одним файлом INX.

.Окна

- Autorun.inf открывает командный файл, который создает каталог, не работает

Переполнение стека
  1. Около
  2. Товары
  3. Для команд
  1. Переполнение стека Общественные вопросы и ответы
  2. Переполнение стека для команд Где разработчики и технологи делятся частными знаниями с коллегами
  3. Вакансии Программирование и связанные с ним технические возможности карьерного роста
  4. Талант Нанимайте технических специалистов и создавайте свой бренд работодателя
.

Autorun.inf на usb можно заставить запускать pdf?

Переполнение стека
  1. Около
  2. Товары
  3. Для команд
  1. Переполнение стека Общественные вопросы и ответы
  2. Переполнение стека для команд Где разработчики и технологи делятся частными знаниями с коллегами
  3. Вакансии Программирование и связанные с ним технические возможности карьерного роста
  4. Талант Нанимайте технических специалистов и создавайте свой бренд работодателя
  5. Рекламная
.

Смотрите также