Поделиться через


Раздел 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 в любом разделе надстройки определяет раздел реестра, содержащий параметры для этого класса. Дополнительные сведения см. в следующем разделе "Примечания ".

Дополнительные сведения см. в директиве 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 AddReg для задания свойства класса установки устройства. Эти рекомендации применяются к системным свойствам и пользовательским свойствам.

Дополнительные сведения об использовании директивы 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 в разделе версии . Следовательно, 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 и только изучите раздел КлассаInstall32 , если они не могут найти раздел ClassInstall32.ntx86 . Дополнительные сведения об использовании системных расширений .nt, NTX86, .ntia64, .ntamd64, NTARM и NTARM64 см. в разделе "Создание INF-файлов для нескольких платформ и операционных систем".

Примечание.

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

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

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]

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

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

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

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

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

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

  • Параметр NoInstallClass указывает, что устройство этого типа никогда не требует ручной установки конечным пользователем. Например, установщики системного класса для устройств исключительно самонастраивающийся (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

Версия