Раздел INF ClassInstall32

Внимание!

Если вы создаете универсальный пакет или пакет драйверов Windows, этот раздел недействителен. См. статью Использование универсального INF-файла и начало работы с драйверами Windows.

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

[ClassInstall32] | 
[ClassInstall32.nt] | 
[ClassInstall32.ntx86] |
[ClassInstall32.ntia64] | (Windows XP and later versions of Windows)
[ClassInstall32.ntamd64] | (Windows XP and later versions of Windows)
[ClassInstall32.ntarm] | (Windows 8 and later versions of Windows) 
[ClassInstall32.ntarm64] (Windows 10 version 1709 and later versions of Windows) 

AddReg=add-registry-section[,add-registry-section]...
[AddProperty=add-property-section[,add-property-section] ...]  (Windows Vista and later versions of Windows)
[Copyfiles=@filename | file-list-section[,file-list-section]...]
[DelReg=del-registry-section[,del-registry-section]...]
[DelProperty=del-property-section[,del-property-section] ...]  (Windows Vista and later versions of Windows)
[Delfiles=file-list-section[,file-list-section]...]
[Renfiles=file-list-section[,file-list-section]...]
[BitReg=bit-registry-section[,bit-registry-section]...]
[UpdateInis=update-ini-section[,update-ini-section]...]
[UpdateIniFields=update-inifields-section[,update-inifields-section]...]
[Ini2Reg=ini-to-registry-section[,ini-to-registry-section]...]

Записи

AddReg=add-registry-section[,add-registry-section]...
Ссылается на один или несколько именованных разделов, содержащих записи значений класса для записи в реестр. Как правило, это используется для присвоения новому классу настройки устройства по крайней мере понятное имя, которое другие компоненты могут позже получить из реестра и использовать для открытия установленных устройств этого нового класса устройств или для "установки" любого поставщика страниц свойств для этого класса установки устройства и т. д.

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

Дополнительные сведения см. в разделе Директива INF AddReg.

AddProperty=add-property-section[,add-property-section]...
(Windows Vista и более поздние версии Windows) Ссылается на один или несколько разделов INF-файла, которые изменяют свойства устройства , заданные для класса настройки устройства. Директиву INF AddProperty следует использовать только для задания свойства класса установки устройства, которое является новым для Windows Vista или более поздних версий операционных систем Windows.

Для свойств класса устройства, которые были представлены ранее в Windows Server 2003, Windows XP или Windows 2000 и имеют соответствующие значения записей в реестре, следует продолжать использовать директивы INF AddRegs , чтобы задать свойство класса установки устройства. Эти рекомендации применяются к системным свойствам и настраиваемым свойствам.

Дополнительные сведения об использовании директивы AddProperty см. в разделах Использование директивы INF AddProperty и ДИРЕКТИВы INF DelProperty.

Copyfiles=@filename | file-list-section[,file-list-section]...
Либо указывает один именованный файл, копируемый с исходного носителя в место назначения, либо ссылается на один или несколько именованных разделов, в которых файлы, относящиеся к классу, на исходном носителе указываются для передачи в место назначения. Запись DefaultDestDir в разделе DestinationDirs inf указывает целевой каталог для любого отдельного файла класса, который необходимо скопировать.

Дополнительные сведения см. в разделе Директива INF CopyFiles.

Примечание

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

DelReg=del-registry-section[,del-registry-section]...
Ссылается на один или несколько именованных разделов, в которых записи или ключи значений указываются для удаления из реестра во время установки установщика классов.

Однако если определенный класс {SetupClassGUID} уже существует в качестве установленного класса, код установки системы впоследствии игнорирует раздел ClassInstall32 любого inf-файла, указывающего то же значение GUID в разделе Version . Следовательно, INF не может заменить существующий установщик класса или изменить его поведение из раздела ClassInstall32 .

Дополнительные сведения см. в разделе Директива INF DelReg.

DelProperty=del-property-section[,del-property-section]...
(Windows Vista и более поздние версии Windows) Ссылается на один или несколько разделов INF-файла, которые удаляют свойства устройства , заданные для класса настройки устройства. Директиву INF DelProperty следует использовать только для удаления свойства класса установки устройства, которое является новым для Windows Vista или более поздних версий операционных систем Windows.

Для свойств класса устройств, которые были представлены ранее в Windows Server 2003, Windows XP или Windows 2000 и имеют соответствующие значения записей реестра, следует продолжать использовать директивы INF DelReg для удаления свойства класса установки устройства. Эти рекомендации применяются к системным свойствам и настраиваемым свойствам.

Дополнительные сведения об использовании директивы DelProperty см. в разделах Использование директивы INF AddProperty и ДИРЕКТИВы INF DelProperty.

Delfiles=file-list-section[,file-list-section]...
Ссылается на один или несколько именованных разделов, в которых ранее установленные файлы класса в назначении указаны для удаления.

Дополнительные сведения см. в разделе Директива INF DelFiles.

Renfiles=file-list-section[,file-list-section]...
Ссылается на один или несколько именованных разделов, в которых перечислены файлы, относящиеся к классу, которые необходимо переименовать в назначении.

Дополнительные сведения см. в разделе Директива INF RenFiles.

BitReg=bit-registry-section[,bit-registry-section]...
Является допустимым в этом разделе, но почти не используется.

Дополнительные сведения см. в разделе Директива INF BitReg.

UpdateInis=update-ini-section[,update-ini-section]...
Является допустимым в этом разделе, но почти не используется.

Дополнительные сведения см. в разделе Директива INF UpdateInis.

UpdateIniFields=update-inifields-section[,update-inifields-section]...
Является допустимым в этом разделе, но почти не используется.

Дополнительные сведения см. в разделе Директива INF UpdateIniFields.

Ini2Reg=ini-to-registry-section[,ini-to-registry-section]...
Является допустимым в этом разделе, но почти не используется.

Дополнительные сведения см. в разделе Директива INF UpdateIniFields.

Комментарии

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

Как правило, раздел ClassInstall32 содержит одну или несколько директив AddReg для добавления записей в системный подраздел SetupClassGUID в реестре. Эти записи могут включать в себя понятное имя класса, путь установщика класса, значок класса, поставщик страниц свойств и т. д.

За исключением AddReg и CopyFiles, другие директивы, показанные здесь, редко используются в разделе ClassInstall32 .

Для поддержки многоплатформенного распределения файлов драйверов создайте разделы ClassInstall32 для конкретной платформы. Например, все системные функции SetupAPI, обрабатывающие раздел ClassInstall32, сначала будут искать раздел ClassInstall32.ntx86 на платформе x86 и проверять некопрированный раздел ClassInstall32 , только если не удается найти раздел ClassInstall32.ntx86 . Дополнительные сведения об использовании системных расширений .nt, .ntx86, .ntia64, .ntamd64, .ntarm и .ntarm64 см. в статье Создание INF-файлов для нескольких платформ и операционных систем.

Примечание

Имя раздела ClassInstall32 также используется для установки на 64-разрядных платформах.

Начиная с Windows 2000 каждое установленное устройство связано с классом установки устройства. Если inf для устанавливаемого устройства не связан с новым установщиком класса устройства или если его спецификация ClassGUID= в разделе Версия не соответствует идентификатору GUID класса установки, определяемого системой, это устройство связано с классом установки устройства с именем Unknown.

Inf для любого установщика класса устройств обычно содержит директиву AddReg в разделе ClassInstall32 , чтобы определить по крайней мере один именованный раздел, который создает понятное имя для своего типа устройства. Код установки автоматически создает ключ SetupClassGUID в соответствующем месте реестра на основе значения, указанного для записи ClassGUID= в разделе Версия INF при установке первого устройства этого (нового) класса установки.

Inf может использовать разделы реестра надстроек, указанные в разделе ClassInstall32, для указания поставщика страниц свойств и контроля над обработкой класса устройств в пользовательском интерфейсе.

Такой раздел реестра надстроек для определенного класса имеет следующую общую форму:

[SetupClassAddReg]
 
HKR,,,,%DevClassName% ; device-class friendly name 
[HKR,,Installer32,,"class-installer.dll,class-entry-point"] 
[HKR,,EnumPropPages32,,"prop-provider.dll,provider-entry-point"]
HKR,,Icon,,"icon-number" 
[HKR,,SilentInstall,,1]
[HKR,,NoInstallClass,,1]
[HKR,,NoDisplayClass,,1]

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

  • Если значение Icon является положительным, оно представляет идентификатор ресурса для ресурса. Ресурс извлекается из библиотеки DLL установщика класса, если указан ключ Installer32, или из библиотеки DLL страницы свойств, если указан ключ EnumPropPages32. Значение "0" представляет первый значок в библиотеке DLL. Значение "1" зарезервировано.
  • Если значение Значка отрицательное, абсолютное значение является идентификатором ресурса значка в SetupApi.DLL.

Задание предопределенных записей логического значения SilentInstall, NoDisplayClass и NoInstallClass в разделе реестра для конкретного класса имеет следующие последствия.

  • Параметр SilentInstall предписывает установщикам не отправлять пользователю всплывающие сообщения, требующие ответа при установке устройств этого класса, независимо от того, указано ли это в разделах DDInstall INF-файла установщика класса или в отдельных INF-файлах для последующих установленных устройств, которые объявляют себя этим классом, задав ту же спецификацию ClassGuid={ClassGUID} в соответствующих разделах версии. Например, установщики системного класса компакт-дисков и дисковых устройств и установщик класса системных параллельных портов устанавливают SilentInstall в соответствующих разделах реестра.

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

  • Параметр NoDisplayClass подавляет отображение пользователем всех устройств этого класса диспетчер устройств. Например, установщики системного класса для принтеров и сетевых драйверов (включая клиенты, службы и протоколы) устанавливают NoDisplayClass в соответствующих разделах реестра.

  • Параметр NoInstallClass указывает, что ни один из устройств этого типа никогда не потребует установки вручную конечным пользователем. Например, установщики системного класса для устройств исключительно Plug and Play (PnP) задают NoInstallClass в соответствующих разделах реестра.

Раздел ClassInstall32 может содержать директивы AddReg для задания DeviceType, DeviceCharacteristics и Security для устройств класса установки. Дополнительные сведения см. в директиве INF AddReg .

Примеры

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

[ClassInstall32] 
AddReg=example_class_addreg

[example_class_addreg]
HKR,,,,%ClassName%
HKR,,Icon,,"-1"

В отличие от этого, в этом примере настраивается поставщик страниц свойств для класса. Этот inf также задает для записей значения SilentInstall и NoInstallClass в ключе класса значение TRUE (1).

[example_class_addreg]
HKR,,,,%ClassName%
HKR,,EnumPropPages32,,"ExampleBinary.Dll,ExamplePropPageProvider"
HKR,,SilentInstall,,1
HKR,,NoInstallClass,,1
HKR,,Icon,,"101"

См. также раздел

AddProperty

AddReg

BitReg

CopyFiles

DDInstall

DelFiles

DelProperty

DelReg

Ini2Reg

Модели

RenFiles

SetupDiBuildClassInfoList

UpdateIniFields

UpdateInis

Версия