Registrieren eines Klassen-Co-Installers

Hinweis

In diesem Abschnitt beschriebene Features werden in universellen oder mobilen Treiberpaketen nicht unterstützt. Weitere Informationen finden Sie unter Verwenden einer universellen INF-Datei.

Um einen Co-Installer für jedes Gerät einer bestimmten Setupklasse zu registrieren, erstellen Sie einen Registrierungseintrag wie den folgenden unter dem Unterschlüssel HKLM\System\CurrentControlSet\Control\CoDeviceInstallers :

{setup-class-GUID}: REG_MULTI_SZ : "XyzCoInstall.dll,XyzCoInstallEntryPoint\0\0"

Das System erstellt den Schlüssel CoDeviceInstallers . Setup-class-GUID gibt die GUID für die Geräteeinrichtungsklasse an. Wenn das Co-Installer auf mehrere Geräteklassen angewendet wird, erstellen Sie einen separaten Werteintrag für jede Setupklasse.

Sie dürfen keine anderen Co-Installer überschreiben, die zuvor in den Schlüssel setup-class-GUID geschrieben wurden. Lesen Sie den Schlüssel, fügen Sie Ihre Co-Installer-Zeichenfolge an die liste REG_MULTI_SZ an, und schreiben Sie den Schlüssel zurück in die Registrierung.

Wenn Sie CoInstallEntryPoint weglassen, ist der Standardwert CoDeviceInstall.

Die CO-Installer-DLL muss auch in das Systemverzeichnis kopiert werden.

Das Klassen-Co-Installer kann für relevante Geräte und Dienste aufgerufen werden, sobald die Datei kopiert und der Registrierungseintrag erstellt wurde.

Anstatt den Registrierungseintrag manuell zu erstellen, um einen Klassen-Co-Installer zu registrieren, können Sie ihn mithilfe einer INF-Datei wie im folgenden Beispiel registrieren:

[DestinationDirs]
DefaultDestDir = 11    // DIRID_SYSTEM

[DefaultInstall]
CopyFiles = @classXcoinst.dll
AddReg = CoInstaller_AddReg

[CoInstaller_AddReg]
HKLM,System\CurrentControlSet\Control\CoDeviceInstallers, \
 {setup-class-GUID},0x00010008, "classXcoinst.dll,classXCoInstaller"
; above line uses the line continuation character ()

Dieser Beispiel-INF kopiert die DateiclassXcoinst.dll in das Systemverzeichnis und erstellt einen Eintrag für die setup-class-GUID-Klasse unter dem Schlüssel CoDeviceInstallers . Der Eintrag im Abschnitt Xxx_AddReg gibt zwei Flags an: Das Flag "00010000" gibt an, dass der Eintrag ein REG_MULTI_SZ ist, und das Flag "00000008" gibt an, dass der neue Wert an einen vorhandenen Wert angefügt werden soll (wenn der neue Wert nicht bereits in der Zeichenfolge vorhanden ist).

Eine solche INF, die einen Klassen-Co-Installer registriert, kann durch eine Installation mit der rechten Maustaste oder über eine Anwendung aktiviert werden, die SetupInstallFromInfSection aufruft.