Freigeben über


INF-ClassInstall32-Abschnitt

Achtung

Wenn Sie ein Universal- oder Windows Driver-Paket erstellen, ist dieser Abschnitt nicht gültig. Siehe Verwenden einer universellen INF-Datei und Erste Schritte bei der Entwicklung von Windows-Treibern.

Ein ClassInstall32-Abschnitt installiert eine neue Geräteeinrichtungsklasse für Geräte in der neuen Klasse.

[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]...]

Entries

AddReg=add-registry-section[,add-registry-section]...
Verweist auf einen oder mehrere benannte Abschnitte, die klassenspezifische Werteinträge enthalten, die in die Registrierung geschrieben werden sollen. In der Regel wird dies verwendet, um der neuen Geräteeinrichtungsklasse zumindest einen Anzeigenamen zu geben, den andere Komponenten später aus der Registrierung abrufen und verwenden können, um installierte Geräte dieser neuen Geräteklasse zu öffnen oder um einen Anbieter von Eigenschaftsseiten für diese Geräteeinrichtungsklasse zu „installieren“ usw.

Eine HKR-Angabe in einem Add-registry-section bezeichnet den Registrierungsschlüssel, der die Einstellungen für diese Klasse enthält. Weitere Informationen finden Sie im folgenden Abschnitt Bemerkungen.

Weitere Informationen finden Sie unter INF AddReg Direktive.

AddProperty=add-property-section[,add-property-section]...
(Windows Vista und neuere Versionen von Windows) Verweist auf einen oder mehrere INF-Dateiabschnitte, die Geräteeigenschaften ändern, die für eine Geräte-Setup-Klasse festgelegt sind. Sie sollten die Direktive INF AddProperty nur verwenden, um eine Eigenschaft einer Geräte-Setup-Klasse festzulegen, die in Windows Vista oder späteren Versionen von Windows-Betriebssystemen neu ist.

Für Geräteklasseneigenschaften, die früher in Windows Server 2003, Windows XP oder Windows 2000 eingeführt wurden und die über entsprechende Registrierungseintragswerte verfügen, sollten Sie weiterhin eine INF AddReg Direktive verwenden, um die Eigenschaft der Geräte-Setup-Klasse festzulegen. Diese Richtlinien gelten für systemdefinierte Eigenschaften und angepasste Eigenschaften.

Weitere Informationen über die Verwendung der Direktive AddProperty finden Sie unter Verwendung der INF AddProperty Direktive und der INF-DelProperty-Direktive.

Copyfiles=@filename | file-list-section[,file-list-section]...
Gibt entweder eine benannte Datei an, die vom Quellmedium zum Ziel kopiert werden soll, oder verweist auf einen oder mehrere benannte Abschnitte, in denen klassenrelevante Dateien auf dem Quellmedium für die Übertragung zum Ziel angegeben werden. Der Eintrag DefaultDestDir im Abschnitt DestinationDirs der INF gibt das Zielverzeichnis für jede zu kopierende klassenspezifische einzelne Datei an.

Weitere Informationen finden Sie unter INF CopyFiles Direktive.

Hinweis

Vom System gelieferte INF-Dateien für Setup-Klassen von Geräten verwenden diese Direktive in diesem Abschnitt nicht.

DelReg=del-registry-section[,del-registry-section]...
Verweist auf einen oder mehrere benannte Abschnitte, in denen Werteinträge oder Schlüssel angegeben sind, die während der Installation des Klassen-Installers aus der Registrierung entfernt werden sollen.

Wenn jedoch eine bestimmte {SetupClassGUID} bereits als installierte Klasse existiert, ignoriert der Code für die Einrichtung des Systems anschließend den Abschnitt ClassInstall32 jeder INF, die denselben GUID-Wert in ihrem Abschnitt Version angibt. Folglich kann eine INF einen vorhandenen Installer für eine Klasse nicht ersetzen oder sein Verhalten anhand eines ClassInstall32-Abschnitts ändern.

Weitere Informationen finden Sie unter INF DelReg Direktive.

DelProperty=del-property-section[,del-property-section]...
(Windows Vista und spätere Versionen von Windows) Verweist auf einen oder mehrere INF-Dateiabschnitte, die Geräteeigenschaften löschen, die für eine Geräte-Einrichtungs-Klasse festgelegt sind. Sie sollten die Direktive INF DelProperty nur verwenden, um eine Eigenschaft einer Geräte-Setup-Klasse zu löschen, die für Windows Vista oder spätere Versionen von Windows-Betriebssystemen neu ist.

Für Geräteklasseneigenschaften, die früher unter Windows Server 2003, Windows XP oder Windows 2000 eingeführt wurden und die über entsprechende Eintragswerte in der Registrierung verfügen, sollten Sie weiterhin eine INF DelReg-Direktive verwenden, um die Eigenschaft der Geräte-Setup-Klasse zu löschen. Diese Richtlinien gelten für systemdefinierte Eigenschaften und angepasste Eigenschaften.

Weitere Informationen über die Verwendung der Direktive DelProperty finden Sie unter Verwendung der INF-Direktive AddProperty und der INF-Direktive DelProperty.

Delfiles=file-list-section[,file-list-section]...
Verweist auf einen oder mehrere benannte Abschnitte, in denen zuvor installierte klassenrelevante Dateien auf dem Ziel angegeben sind, die gelöscht werden sollen.

Weitere Informationen finden Sie unter INF-DelFiles-Direktive.

Renfiles=file-list-section[,file-list-section]...
Verweist auf einen oder mehrere benannte Abschnitte, in denen klassenrelevante Dateien, die auf dem Ziel umbenannt werden sollen, aufgeführt sind.

Weitere Informationen finden Sie unter INF RenFiles Direktive.

BitReg=bit-registry-section[,bit-registry-section]...
Ist in diesem Abschnitt gültig, wird aber fast nie verwendet.

Weitere Informationen finden Sie unter INF BitReg Direktive.

UpdateInis=update-ini-section[,update-ini-section]...
Ist in diesem Abschnitt gültig, wird aber fast nie verwendet.

Weitere Informationen finden Sie unter INF UpdateInis Direktive.

UpdateIniFields=update-inifields-section[,update-inifields-section]...
Ist in diesem Abschnitt gültig, wird aber fast nie verwendet.

Weitere Informationen finden Sie unter INF UpdateIniFields Direktive.

Ini2Reg=ini-to-registry-section[,ini-to-registry-section]...
Ist in diesem Abschnitt gültig, wird aber fast nie verwendet.

Weitere Informationen finden Sie unter INF UpdateIniFields Direktive.

Hinweise

Sie sollten einen ClassInstall32-Abschnitt in eine Geräte-INF-Datei nur einfügen, um eine neue angepasste Setup-Klasse für ein Gerät zu installieren. INF-Dateien für Geräte in einer installierten Klasse, sei es eine vom System bereitgestellte Setup-Klasse oder eine angepasste Klasse, sollten keinen ClassInstall32-Abschnitt enthalten. Da das System einen ClassInstall32-Abschnitt nur verarbeitet, wenn eine Klasse noch nicht installiert ist, können Sie einen ClassInstall32-Abschnitt nicht verwenden, um eine bereits installierte Klasse neu zu installieren oder deren Einstellungen zu ändern. Insbesondere können Sie einen ClassInstall32-Abschnitt nicht verwenden, um einen Co-Installer oder einen Klassenfiltertreiber für eine bereits installierte Klasse hinzuzufügen. Informationen darüber, wie Sie Co-Installer und Filtertreiber installieren, finden Sie unter Schreiben eines Co-Installers und Installieren eines Filtertreibers.

Normalerweise enthält ein ClassInstall32-Abschnitt eine oder mehrere AddReg-Direktiven, um Einträge unter einem vom System bereitgestellten SetupClassGUID-Unterschlüssel in der Registrierung hinzuzufügen. Diese Einträge können einen klassenspezifischen Anzeigenamen, den Pfad zum Installer der Klasse, das Symbol der Klasse, den Anbieter der Eigenschaftsseite usw. enthalten.

Mit Ausnahme von AddReg und CopyFiles werden die anderen hier gezeigten Direktiven nur selten in einem ClassInstall32-Abschnitt verwendet.

Um eine plattformübergreifende Distribution von Treiberdateien zu unterstützen, konstruieren Sie plattformspezifische ClassInstall32-Abschnitte. Zum Beispiel suchen alle System SetupAPI-Funktionen, die einen ClassInstall32-Abschnitt verarbeiten, auf einer x86-Plattform zuerst nach einem ClassInstall32.ntx86-Abschnitt und untersuchen nur dann einen nicht ausgezeichneten ClassInstall32-Abschnitt, wenn sie keinen ClassInstall32.ntx86-Abschnitt finden. Weitere Informationen über die Verwendung der systemdefinierten Erweiterungen .nt, .ntx86, .ntia64, .ntamd64, .ntarm und .ntarm64 finden Sie unter Erstellen von INF-Dateien für mehrere Plattformen und Betriebssysteme.

Hinweis

Der ClassInstall32-Abschnittsname wird auch für Installationen auf 64-Bit-Plattformen verwendet.

Ab Windows 2000 ist jedes installierte Gerät mit einer Geräteeinrichtungsklasse verknüpft. Wenn die INF für ein zu installierendes Gerät nicht mit einem neuen Geräteklassen-Installationsprogramm verknüpft ist oder wenn seine ClassGUID=-Angabe im Abschnitt Version nicht mit einer systemdefinierten Setup-Klassen-GUID übereinstimmt, wird dieses Gerät mit der Geräte-Setup-Klasse mit dem Namen „Unknown“ verknüpft.

Die INF für jeden Installer einer Geräteklasse enthält in der Regel eine Direktive AddReg in ihrem Abschnitt ClassInstall32, um mindestens einen benannten Abschnitt zu definieren, der einen Anzeigenamen für die Art des Geräts erstellt. Der Code für die Einrichtung erstellt automatisch einen SetupClassGUID-Schlüssel an der entsprechenden Stelle in der Registrierung aus dem Wert, der für den ClassGUID=-Eintrag im Abschnitt Version der INF angegeben wurde, wenn das erste Gerät dieser (neuen) Einrichtungsklasse installiert wird.

Die INF kann die Add-registry-sections, auf die in ihrem ClassInstall32-Abschnitt verwiesen wird, verwenden, um einen Anbieter von Eigenschaftsseiten anzugeben und die Kontrolle darüber auszuüben, wie ihre Klasse von Geräten in der Benutzeroberfläche behandelt wird.

Ein solcher klassenspezifischer add-registry-section hat die folgende allgemeine Form:

[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]

Das System verwendet das angegebene Symbol, um Ihren Installer für den Benutzer*innen darzustellen.

  • Wenn der Wert für Symbol positiv ist, steht er für einen Ressourcen-Identifikator für eine Ressource. Die Ressource wird aus der Klassen-Installer-DLL extrahiert, wenn der Schlüssel Installer32 angegeben ist, oder aus der Eigenschaftsseiten-DLL, wenn der Schlüssel EnumPropPages32 angegeben ist. Der Wert „0“ steht für das erste Symbol in der DLL. Der Wert „1“ ist reserviert.
  • Wenn der Wert „Icon“ negativ ist, ist der absolute Wert der Ressourcenbezeichner des Symbols in SetupApi.DLL.

Das Festlegen der vordefinierten booleschen Werteinträge SilentInstall, NoDisplayClass und NoInstallClass in einem klassenspezifischen Registrierungsschlüssel hat die folgenden Auswirkungen:

  • Durch das Festlegen von SilentInstall werden Installer angewiesen, bei der Installation von Geräten dieser Klasse keine Popup-Nachrichten an den Benutzer zu senden, die eine Antwort erfordern, unabhängig davon, ob sie in den DDInstall-Abschnitten der INF-Datei des Klasseninstallationsprogramms oder in separaten INF-Dateien für nachträglich installierte Geräte angegeben sind, die sich selbst zu dieser Klasse erklären, indem sie dieselbe ClassGuid={ClassGUID}-Spezifikation in ihren jeweiligen Versionsabschnitten festlegen. Beispielsweise legen die Installer der Systemklassen CD-ROM und Datenträger sowie der Installer der Systemklasse Parallel Port in ihren jeweiligen Registrierungsschlüsseln SilentInstall fest.

    Wenn ein klassenspezifischer Installer erfordert, dass der Computer für jedes Gerät, das er installiert, neu gestartet werden muss, kann der klassenspezifische Abschnitt add-registry in seiner INF diesen Eintrag nicht enthalten.

  • Das Festlegen von NoDisplayClass unterdrückt den für Nutzer*innen sichtbaren Bildschirm für alle Geräte dieser Klasse durch den Geräte-Manager. Beispielsweise legen die Installer der Systemklassen für Drucker und für Netzwerktreiber (einschließlich Clients, Dienste und Protokolle) NoDisplayClass in ihren jeweiligen Registrierungsschlüsseln fest.

  • Das Festlegen von NoInstallClass bedeutet, dass kein Gerät dieses Typs jemals von einem/einer Benutzer*in manuell installiert werden muss. Die Installer der Systemklassen für ausschließlich Plug-and-Play (PnP)-Geräte legen beispielsweise NoInstallClass in ihren jeweiligen Registrierungsschlüsseln fest.

Ein ClassInstall32-Abschnitt kann AddReg-Direktiven enthalten, um den DeviceType, DeviceCharacteristics und Security für Geräte seiner Setup-Klasse festzulegen. Weitere Informationen finden Sie in der INF AddReg Direktive.

Beispiele

Dieses Beispiel zeigt den Abschnitt ClassInstall32 zusammen mit dem benannten Abschnitt, auf den er mit der Direktive AddReg verweist.

[ClassInstall32] 
AddReg=example_class_addreg

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

Im Gegensatz dazu wird in diesem Beispiel ein klassenspezifischer Property-Page-Anbieter eingerichtet. Diese INF legt auch die Werteinträge SilentInstall und NoInstallClass im Klassenschlüssel auf WAHR (1) fest.

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

Siehe auch

AddProperty

AddReg

BitReg

CopyFiles

DDInstall

DelFiles

DelProperty

DelReg

Ini2Reg

Modelle

RenFiles

SetupDiBuildClassInfoList

UpdateIniFields

UpdateInis

Version