SetupDiCallClassInstaller-Funktion (setupapi.h)
Die SetupDiCallClassInstaller-Funktion ruft den entsprechenden Klasseninstallationsprogramm und alle registrierten Co-Installer mit der angegebenen Installationsanforderung (DIF-Code) auf.
Syntax
WINSETUPAPI BOOL SetupDiCallClassInstaller(
[in] DI_FUNCTION InstallFunction,
[in] HDEVINFO DeviceInfoSet,
[in, optional] PSP_DEVINFO_DATA DeviceInfoData
);
Parameter
[in] InstallFunction
Die Geräteinstallationsanforderung (DIF-Anforderung), die an die Co-Installer und das Klasseninstallationsprogramm übergeben werden soll. DIF-Codes haben das Format DIF_XXX und werden in Setupapi.h definiert. Weitere Informationen finden Sie unter Geräteinstallationsfunktionscodes .
[in] DeviceInfoSet
Ein Handle zu einem Geräteinformationssatz für den lokalen Computer. Dieser Satz enthält ein Geräteinstallationselement, das das Gerät darstellt, für das die angegebene Installationsfunktion ausgeführt werden soll.
[in, optional] DeviceInfoData
Ein Zeiger auf eine SP_DEVINFO_DATA-Struktur , die das Geräteinformationselement im DeviceInfoSet angibt, das das Gerät darstellt, für das die angegebene Installationsfunktion ausgeführt werden soll. Dieser Parameter ist optional und kann auf NULL festgelegt werden. Wenn dieser Parameter angegeben ist, führt SetupDiCallClassInstaller die angegebene Funktion für das DeviceInfoData-Element aus. Wenn DeviceInfoDataNULL ist, ruft SetupDiCallClassInstaller die Installationsprogramme für die Setupklasse auf, die DeviceInfoSet zugeordnet ist.
Rückgabewert
Die Funktion gibt TRUE zurück, wenn sie erfolgreich ist. Andernfalls wird FALSE zurückgegeben, und der protokollierte Fehler kann durch einen Aufruf von GetLastError abgerufen werden.
Wenn GetLastError ERROR_IN_WOW64 zurückgibt, bedeutet dies, dass die aufrufende Anwendung eine 32-Bit-Anwendung ist, die versucht, in einer 64-Bit-Umgebung auszuführen, was nicht zulässig ist.
Hinweise
SetupDiCallClassInstaller ruft das Klasseninstallationsprogramm und alle Co-Installer auf, die für ein Gerät oder eine Geräteeinrichtungsklasse registriert sind. Diese Funktion lädt die Installationsprogramme, wenn sie noch nicht geladen wurden. Die Funktion ruft auch den Standardhandler für die DIF-Anforderung auf, wenn ein Standardhandler vorhanden ist und wenn die Installationsprogramme einen status zurückgeben, der angibt, dass der Standardhandler aufgerufen werden soll.
Geräteinstallationsanwendungen rufen diese Funktion mit einer Vielzahl von Geräteinstallationsfunktionscodes (DIF-Codes) auf. Die Funktion stellt sicher, dass alle entsprechenden Installationsprogramme und Standardhandler für eine bestimmte DIF-Anforderung in der richtigen Reihenfolge aufgerufen werden. Weitere Informationen finden Sie unter Behandeln von DIF-Codes.
Nachdem SetupDiCallClassInstallerTRUE zurückgegeben hat, muss die Geräteinstallationsanwendung SetupDiGetDeviceInstallParams aufrufen, um eine SP_DEVINSTALL_PARAMS-Struktur abzurufen. Wenn das DI_NEEDREBOOT - oder DI_NEEDRESTART-Flag der Struktur festgelegt ist, muss der Aufrufer den Benutzer zum Neustart des Systems auffordern. Dazu kann der Aufrufer beispielsweise SetupPromptReboot aufrufen.
Beachten Sie jedoch, dass eine Geräteinstallationsanwendung höchstens einmal einen Systemneustart anfordern sollte. Daher sollte jede Geräteinstallationsanwendung, die mehrere Aufrufe von SetupDiCallClassInstaller und SetupDiGetDeviceInstallParams erstellt, die DI_NEEDREBOOT und DI_NEEDRESTART Flags nach jedem Aufruf speichern. Der Benutzer sollte jedoch erst nach dem letzten Aufruf aufgefordert werden.
Als Reaktion auf einen von SetupDiCallClassInstaller bereitgestellten DIF-Code können Klasseninstallationsprogramme und Co-Installer Vorgänge ausführen, die einen Neustart des Systems erfordern. In solchen Situationen sollte das Installationsprogramm oder das Co-Installationsprogramm die folgenden Schritte ausführen:
- Rufen Sie SetupDiGetDeviceInstallParams auf , um die SP_DEVINSTALL_PARAMS-Struktur abzurufen.
- Legen Sie das DI_NEEDREBOOT - oder DI_NEEDRESTART-Flag im Flags-Element der Struktur fest.
- Rufen Sie SetupDiSetDeviceInstallParams auf, und geben Sie die aktualisierte SP_DEVINSTALL_PARAMS-Struktur an, um das überarbeitete Flags-Element zu speichern.
Der von DeviceInfoSet angegebene Geräteinformationssatz darf nur Elemente für Geräte auf dem lokalen Computer enthalten.
Informationen zum Entwurf und Betrieb von Co-Installern finden Sie unter Schreiben eines Co-Installers.
Anforderungen
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) | Verfügbar in Microsoft Windows 2000 und höheren Versionen von Windows. |
Zielplattform | Desktop |
Kopfzeile | setupapi.h (einschließlich Setupapi.h) |
Bibliothek | Setupapi.lib |
DLL | Setupapi.dll |
APIs | ext-ms-win-setupapi-classinstallers-l1-1-0 (eingeführt in Windows 8) |