ABSCHNITT "INF DDInstall.CoInstallers"

Achtung

Ab Windows 11 Version 22H2 ist ein Treiberpaket, das diesen Abschnitt verwendet, nicht mehr für eine Signatur aus dem Hardware Developer Center berechtigt.

Universelle Treiberpakete und Windows-Treiber können diesen Abschnitt nicht verwenden.

In diesem optionalen Abschnitt werden ein oder mehrere gerätespezifische Co-Installer registriert, die auf den Verteilungsmedien bereitgestellt werden, um die Vorgänge vorhandener Geräteklasseninstallationsprogramme zu ergänzen.

[install-section-name.CoInstallers] |
[install-section-name.nt.CoInstallers] | 
[install-section-name.ntx86.CoInstallers] | 
[install-section-name.ntia64.CoInstallers] | (Windows XP and later versions of Windows)
[install-section-name.ntamd64.CoInstallers] | (Windows XP and later versions of Windows)
[install-section-name.ntarm.CoInstallers] | (Windows 8 and later versions of Windows)
[install-section-name.ntarm64.CoInstallers] (Windows 10 version 1709 and later versions of Windows)
  
AddReg=add-registry-section[,add-registry-section]... 
CopyFiles=@filename | file-list-section[,file-list-section]...
[Include=filename.inf[,filename2.inf]...]
[Needs=inf-section-name[,inf-section-name]...]
[DelFiles=file-list-section[,file-list-section]...]
[RenFiles=file-list-section[,file-list-section]...]
[DelReg=del-registry-section[,del-registry-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]...]
... 

Einträge

AddReg=add-registry-section[,add-registry-section]...
Verweist auf einen oder mehrere inF-writer-definierte add-registry-sections, in denen Registrierungsinformationen zu den bereitgestellten Co-Installern gespeichert sind.

Eine in einem solchen Add-Registry-Abschnitt angegebene HKR gibt den Registrierungspfad "Softwareschlüssel" des installierten Geräts an. Daher schreibt er für einen gerätespezifischen Co-Installer einen CoInstallers32-Werteintrag in diesen pro Gerät/Treiber zugänglichen "Software"-Schlüssel.

Für einen klassenspezifischen Co-Installer registriert er die neuen Co-Installer, indem der Inhalt der entsprechenden geändert wird. CoDeviceInstallers\SetupClassGUID-Unterschlüssel . Der Pfad der entsprechenden SetupClassGUID-Registrierungsunterschlüssel muss explizit in den Abschnitten angegeben werden, auf die verwiesen wird.

Weitere Informationen finden Sie unter INF AddReg-Direktive.

CopyFiles=@filename | file-list-section*[,file-list-section]...
Überträgt die Quell-Co-Installer-Dateien an das Ziel auf dem Zielcomputer, in der Regel durch Verweisen auf einen oder mehrere inF-writer-defined file-list-sectionsan einer anderen Stelle in der INF-Datei. Ein solcher Abschnitt file-list gibt die Co-Installer-Dateien an, die vom Quellmedium in das Zielverzeichnis auf dem Ziel kopiert werden sollen.

System-INF-Dateien, die Co-Installer installieren, verwenden diese Anweisung jedoch nie in einem DDInstall. Abschnitt "CoInstallers ".

Weitere Informationen finden Sie unter INF CopyFiles-Direktive.

Include=filename. inf[,filename2.inf]...
Gibt eine oder mehrere vom System bereitgestellte INF-Dateien an, die Abschnitte enthalten, die zum Installieren der Co-Installer für diese Geräte- oder Gerätesetupklasse erforderlich sind. Eine INF-Datei mit diesem Eintrag sollte in der Regel Anforderungen angeben.

Needs=inf-section-name[,inf-section-name]...
Gibt die spezifischen Abschnitte an, die während der Installation dieses Geräts verarbeitet werden müssen. In der Regel ist ein solcher benannter Abschnitt ein DDInstall. CoInstallers-Abschnitt in einer vom System bereitgestellten INF-Datei, die in einem Include-Eintrag aufgeführt ist. Es kann jedoch ein beliebiger Abschnitt sein, auf den in einem solchen DDInstall verwiesen wird. CoInstallers-Abschnitt des enthaltenen INF.

DelFiles=file-list-section[,file-list-section]...
Verweist auf einen Dateilistenabschnitt, der Dateien angibt, die aus dem Ziel entfernt werden sollen. Diese Direktive wird selten verwendet.

Weitere Informationen finden Sie unter INF DelFiles-Direktive.

RenFiles=file-list-section[,file-list-section]...
Verweist auf einen Dateilistenabschnitt, der Dateien auf dem Ziel angibt, das umbenannt werden soll, bevor die Quelldateien des Co-Installers in das Ziel kopiert werden. Diese Direktive wird ebenfalls selten verwendet.

Weitere Informationen finden Sie unter INF RenFiles-Direktive.

DelReg=del-registry-section[,del-registry-section]...
Verweist auf einen oder mehrere INF-writer-define delete-registry-sections. Ein solcher Abschnitt enthält veraltete Registrierungsinformationen zu den Co-Installern für eine vorherige Installation der gleichen Geräte, die aus der Registrierung entfernt werden sollen. Eine HKR , die in einem solchen Delete-Registry-Abschnitt angegeben ist, legt denselben Registrierungsunterschlüssel fest, der bereits für den AddReg-Eintrag beschrieben wurde. Diese Direktive wird in einem DDInstall selten verwendet. Abschnitt "CoInstallers".

Weitere Informationen finden Sie unter INF DelReg-Direktive.

BitReg=bit-registry-section[,bit-registry-section]...
Dieser Eintrag ist in diesem Abschnitt gültig, wird aber fast nie verwendet. Eine in einem solchen Bitregistrierungsabschnitt angegebene HKR bestimmt den gleichen Registrierungsunterschlüssel, der bereits für den AddReg-Eintrag beschrieben wurde.

Weitere Informationen finden Sie unter INF BitReg-Direktive.

UpdateInis=update-ini-section[,update-ini-section]...
Dieser Eintrag 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]...
Dieser Eintrag 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]...
Dieser Eintrag ist in diesem Abschnitt gültig, wird aber fast nie verwendet.

Weitere Informationen finden Sie unter INF Ini2Reg-Direktive.

Hinweise

Auf den angegebenen DDInstall-Abschnitt muss in einem geräte-/modellspezifischen Eintrag im Abschnitt Modelle pro Hersteller der INF-Datei verwiesen werden.

Wenn ein INF einen DDInstall enthält. Der Abschnitt "Coinstaller" muss für jeden plattformbezogenen und nicht ausgebuchten DDInstall-Abschnitt vorhanden sein. Wenn ein INF z. B. einen Abschnitt [install-section-name.ntx86] und einen [install-section-name] Abschnitt enthält und gerätespezifische Co-Installer registriert, muss das INF sowohl einen [install-section-name.ntx86] enthalten. Coinstallers]-Abschnitt und ein [install-section-name. Coinstallers]-Abschnitt. Weitere Informationen zur Verwendung der systemdefinierten Erweiterungen .nt, .ntx86, .ntia64, .ntamd64, .ntarm und .ntarm64 finden Sie unter Erstellen von INF-Dateien für mehrere Plattformen und Betriebssysteme.

Jede Direktive in einem DDInstall. Der Abschnitt "CoInstallers " kann auf mehr als einen inF-writer-definierten Abschnittsnamen verweisen. Jeder zusätzliche benannte Abschnitt muss jedoch vom nächsten durch ein Komma (,) getrennt werden.

Jeder von einer Direktive erstellte Abschnittsname muss innerhalb der INF-Datei eindeutig sein und den allgemeinen Regeln zum Definieren von Abschnittsnamen folgen. Weitere Informationen zu diesen Regeln finden Sie unter Allgemeine Syntaxregeln für INF-Dateien.

Ein Co-Installer ist eine Win32-DLL, die in der Regel zusätzliche Konfigurationsinformationen in die Registrierung schreibt oder andere Installationsaufgaben ausführt, die dynamisch generierte, systemspezifische Informationen erfordern, die beim Erstellen eines INF nicht verfügbar sind. Ein gerätespezifischer Co-Installer ergänzt die Installationsvorgänge entweder des Geräteinstallationsprogramms des Betriebssystems oder des entsprechenden Klasseninstallationsprogramms, wenn dieses Gerät installiert wird.

Weitere Informationen zum Schreiben und Verwenden von Co-Installern finden Sie unter Schreiben eines Co-Installers.

Installieren von Co-Installer-Images

Alle Co-Installer-Dateien müssen in das Verzeichnis %SystemRoot%\system32 kopiert werden. Wie bei jedem INF CopyFiles-Vorgang wird das Ziel für einen benannten file-list-section im Abschnitt DestinationDirs der INF-Datei explizit durch den Dirid-Wert11 oder durch Angabe dieses Dirid-Werts für den DefaultDestDir-Eintrag gesteuert.

Registrieren Device-Specific Co-Installers

Das Registrieren eines oder mehrerer gerätespezifischer Co-Installer erfordert das Hinzufügen eines REG_MULTI_SZ typisierten Werteintrags zur Registrierung. Geben Sie einen abschnitt add-registry-section an, auf den von der AddReg-Direktive verwiesen wird, indem Sie das folgende allgemeine Formular verwenden:

[DDInstall.CoInstallers_DeviceAddReg]
 
HKR,,CoInstallers32,0x00010000,"DevSpecificCoInstall.dll
   [,DevSpecificEntryPoint]"[,"DevSpecific2CoInstall.dll
      [,DevSpecific2EntryPoint]"...] 

Der HKR-Eintrag wird in der INF-Datei als einzelne Zeile aufgeführt, und jede bereitgestellte gerätespezifische Co-Installer-DLL muss einen eindeutigen Namen aufweisen. Nachdem die aufgeführten Co-Installer registriert wurden, ruft der Geräteinstaller des Systems sie in jedem nachfolgenden Schritt des Installationsvorgangs für dieses Gerät auf.

Wenn der optionale DevSpecificEntryPoint weggelassen wird, wird der Standardname der CoDeviceInstall-Routine als Einstiegspunkt der Co-Installer-DLL verwendet.

Weitere Informationen finden Sie unter Registrieren eines Device-Specific Co-Installers.

Registrieren Device-Class Co-Installers

Um der Registrierung einen Werteintrag (und einen Setupklassenunterschlüssel, sofern er noch nicht vorhanden ist) für einen oder mehrere Geräteklassen-Co-Installer hinzuzufügen, hat ein add-registry-abschnitt , auf den von der AddReg-Direktive verwiesen wird, die folgende allgemeine Form:

[DDInstall.CoInstallers_ClassAddReg]
 
HKLM,System\CurrentControlSet\Control
    \CoDeviceInstallers,{SetupClassGUID},
       0x00010008,"DevClssCoInst.dll[,DevClssEntryPoint]" 
 ...

Jeder Eintrag in einem solchen Add-Registry-Abschnitt wird als einzelne Zeile in der INF-Datei aufgeführt, und jede bereitgestellte Klassen-Co-Installer-DLL muss einen eindeutigen Namen haben. Wenn die bereitgestellten Co-Installer für mehr als eine Gerätesetupklasse verwendet werden sollen, kann dieser Add-Registry-Abschnitt mehr als einen Eintrag mit jeweils dem entsprechenden SetupClassGUID-Wert enthalten.

Ein solcher zusätzlicher Geräteklassen-Co-Installer darf keine bereits registrierten Co-Installer für einen vorhandenen Klasseninstaller ersetzen. Daher muss der Klassenkoinstaller über einen eindeutigen Namen verfügen, und der angegebene Wert vom typ REG_MULTI_SZ muss (wie durch den Wert 8 im Flags-Wert0x0010008 angegeben) an die klassenspezifischen Co-Installer-Einträge angefügt werden, sofern vorhanden, die bereits im Unterschlüssel {SetupClassGUID} vorhanden sind.

Hinweis

Die SetupAPI-Funktionen fügen niemals ein doppeltes DevClssCoInstall -.dll an einen Werteintrag an, wenn bereits ein Co-Installer mit demselben Namen registriert ist.

Das INF für einen zusätzlichen Geräteklassen-Co-Installer kann durch eine Rechtsklick-Installation oder durch einen Aufruf von SetupInstallFromInfSection durch eine Geräteinstallationsanwendung aktiviert werden.

Beispiele

Dieses Beispiel zeigt DDInstall. Abschnitt "CoInstallers " für serielle IrDA-Netzwerkadapter. Die vom System bereitgestellte INF für diese IrDA-NiCs (seriellen) liefert einen Co-Installer für den IrDA-Klasseninstaller des Systems.

; DDInstall section
[PNP.NT]
AddReg=ISIR.reg, Generic.reg, Serial.reg
PromptForPort=0     ; This is handled by IRCLASS.DLL
LowerFilters=SERIAL ; This is handled by IRCLASS.DLL
BusType=14
Characteristics=0x4 ; NCF_PHYSICAL 

; ... PNP.NT.Services section omitted here
[PNP.NT.CoInstallers]
AddReg = ISIR.CoInstallers.reg 
; ...

[IRSIR.reg]
HKR, Ndi, HelpText, 0, %IRSIR.Help%
HKR, Ndi, Service, 0, "IRSIR"
HKR, Ndi\Interfaces, DefUpper, 0, "ndisirda"
HKR, Ndi\Interfaces, DefLower, 0, "nolower"
HKR, Ndi\Interfaces, UpperRange, 0, "ndisirda"
HKR, Ndi\Interfaces, LowerRange, 0, "nolower"

[Generic.reg]
HKR,,InfraredTransceiverType,0,"0"

[Serial.reg]
HKR,,SerialBased,0, "0"

[ISIR.CoInstallers.reg]
HKR,,CoInstallers32,0x00010000,"IRCLASS.dll,IrSIRClassCoInstaller"

; ... Services and Event Log registry sections omitted here
[Strings]
; ...
IRSIR.Help = "An IrDA serial infrared device is a built-in COM port or 
external transceiver which transmits infrared pulses. This NDIS 
miniport driver installs as a network adapter and binds to the FastIR 
protocol."

Der vorangehende PNP. NT. Im Abschnitt "CoInstallers " wurde nur auf einen Add-Registry-Abschnitt für den Co-Installer verwiesen.

Es verfügt über keine CopyFiles-Direktive , da diese vom System bereitgestellte INF eine Reihe von IrDA-Netzwerkgeräten installiert. Wie alle System-INF-Dateien verwendet diese INF-Datei den LayoutFile-Eintrag im Abschnitt Version , um die Co-Installer-Datei an das Ziel zu übertragen.

Beliebiger DDInstall. Der Abschnitt "CoInstallers" in einem von einem IHV oder OEM bereitgestellten INF erfordert eine CopyFiles-Direktive sowie die Abschnitte SourceDisksNames und SourceDisksFiles.

Weitere Informationen

AddReg

BitReg

CopyFiles

DDInstall

DelFiles

DelReg

DestinationDirs

Ini2Reg

RenFiles

SourceDisksFiles

SourceDisksNames

UpdateIniFields

Version