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 .

Hinweis Für bestimmte DIF-Anforderungen muss der Aufrufer Mitglied der Gruppe Administratoren sein. Für solche DIF-Anforderungen wird diese Anforderung auf der Referenzseite für den zugeordneten Standardhandler aufgeführt.
 

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

  1. Rufen Sie SetupDiGetDeviceInstallParams auf , um die SP_DEVINSTALL_PARAMS-Struktur abzurufen.
  2. Legen Sie das DI_NEEDREBOOT - oder DI_NEEDRESTART-Flag im Flags-Element der Struktur fest.
  3. Rufen Sie SetupDiSetDeviceInstallParams auf, und geben Sie die aktualisierte SP_DEVINSTALL_PARAMS-Struktur an, um das überarbeitete Flags-Element zu speichern.
Nachdem SetupDiCallClassInstaller zurückgegeben wurde, sollte die Geräteinstallationsanwendung, die sie aufgerufen hat , SetupDiGetDeviceInstallParams aufrufen, die Flags überprüfen und ggf. einen Neustart anfordern.

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)

Weitere Informationen

SP_DEVINFO_DATA