Behandeln von DIF-Codes

Hinweis

Die in diesem Abschnitt beschriebenen Features werden nicht unterstützt, und Treiberpakete, die sie enthalten, erhalten keine Microsoft-Signatur mehr. Weitere Informationen finden Sie unter Verwenden einer universellen INF-Datei.

Geräteinstallationsanwendungen senden Geräteinstallationsfunktionscodes (DIF-Codes) an Installationsprogramme, indem sie SetupDiCallClassInstaller aufrufen. Diese Funktion wiederum ruft die Einstiegspunktfunktion des Installationsprogramms auf. Eine Beschreibung der Einstiegspunkte des Installationsprogramms finden Sie unter:

Co-Installer-Schnittstelle

Die Referenzseite für jeden DIF-Code enthält die folgenden Abschnitte:

Beim Senden
Beschreibt die typischen Zeiten und Gründe, warum eine Geräteinstallationsanwendung diese DIF-Anforderung sendet.

Wer behandelt
Gibt an, welche Installationsprogramme diese Anforderung verarbeiten dürfen. Die Installationsprogramme umfassen Klasseninstaller, Klassen-Co-Installer (setup-class-wide Co-Installers) und Geräte-Co-Installer (gerätespezifische Co-Installer).

Eingabe des Installationsprogramms
Neben dem DIF-Code liefert SetupDiCallClassInstaller zusätzliche Informationen, die für die jeweilige Anforderung relevant sind. Ausführliche Informationen zu den Informationen, die bei jeder Anforderung bereitgestellt werden, finden Sie auf der Referenzseite für jeden DIF-Code. Die folgende Liste enthält eine allgemeine Beschreibung der zusätzlichen Eingabeparameter und listet die Geräteinstallationsfunktionen (SetupDiXxx-Funktionen ) auf, die Installationsprogramme aufrufen können, um die Parameter zu verarbeiten:

DeviceInfoSet
Stellt dem Geräteinformationssatz ein Handle bereit.

Das Handle ist undurchsichtig. Verwenden Sie das Handle beispielsweise, um die Geräteinformationen zu identifizieren, die in Aufrufen von SetupDiXxx-Funktionen festgelegt sind.

Dem DeviceInfoSet ist möglicherweise eine Gerätesetupklasse zugeordnet. Wenn ja, rufen Sie SetupDiGetDeviceInfoListClass auf, um die Klassen-GUID abzurufen.

DeviceInfoData
Stellt optional einen Zeiger auf eine SP_DEVINFO_DATA-Struktur bereit, die ein Gerät im Geräteinformationssatz identifiziert.

Geräteinstallationsparameter
Diese indirekten Parameter liefern Informationen für die Geräteinstallation in einer SP_DEVINSTALL_PARAMS-Struktur . Wenn DeviceInfoData nicht NULL ist, sind Geräteinstallationsparameter mit DeviceInfoData verknüpft. Wenn DeviceInfoDataNULL ist, werden die Geräteinstallationsparameter dem DeviceInfoSet zugeordnet.

Rufen Sie SetupDiGetDeviceInstallParams auf, um die Geräteinstallationsparameter abzurufen.

Klasseninstallationsparameter
Die optionalen indirekten Parameter sind spezifisch für die jeweilige DIF-Anforderung. Dabei handelt es sich im Wesentlichen um "DIF-Anforderungsparameter". Beispielsweise sind die Klasseninstallationsparameter für eine DIF_REMOVE Installationsanforderung in einer SP_REMOVEDEVICE_PARAMS-Struktur enthalten.

Jede SP_XXX_PARAMS-Struktur beginnt mit einer SP_CLASSINSTALL_HEADER-Struktur mit fester Größe.

Rufen Sie SetupDiGetClassInstallParams auf , um die Klasseninstallationsparameter abzurufen.

Wenn eine DIF-Anforderung Über Klasseninstallationsparameter verfügt, gibt es eine Reihe von Parametern, die dem DeviceInfoSet und einem weiteren Satz von Parametern zugeordnet sind , der DeviceInfoData zugeordnet ist (wenn die DIF-Anforderung DeviceInfoData angibt). SetupDiGetClassInstallParams gibt die spezifischsten verfügbaren Parameter zurück.

Kontext
Co-Installer verfügen über einen optionalen Kontextparameter.

Installationsprogrammausgabe
Beschreibt die für diesen DIF-Code erwartete Ausgabe.

Wenn ein Installationsprogramm die Geräteinstallationsparameter ändert, muss das Installationsprogramm SetupDiSetDeviceInstallParams aufrufen, um die Änderungen vor der Rückgabe anzuwenden. Wenn ein Installationsprogramm die Klasseninstallationsparameter für den DIF-Code ändert, muss das Installationsprogramm SetupDiSetClassInstallParams aufrufen.

Rückgabewert des Installers
Gibt die entsprechenden Rückgabewerte für den DIF-Code an. Weitere Informationen zu Rückgabewerten finden Sie in der folgenden Abbildung.

Standard-DIF-Codehandler
Gibt die SetupDiXxx-Funktion an, die die systemdefinierten Standardvorgänge für den DIF-Code ausführt. Nicht alle DIF-Codes verfügen über einen Standardhandler. SetupDiCallClassInstaller ruft den Standardhandler für einen DIF-Code nach dem Aufruf des Klasseninstallationsprogramms (aber vor dem Aufruf von Co-Installern, die für die Nachverarbeitung registriert sind) den Standardhandler für einen DIF-Code auf, es sei denn, ein Co-Installer oder Klasseninstallationsprogramm unternimmt Schritte, um den Aufruf des Standardhandlers zu verhindern.

Wenn ein Klasseninstallationsprogramm erfolgreich einen DIF-Code verarbeitet und SetupDiCallClassInstaller anschließend den Standardhandler aufrufen sollte, gibt das Klasseninstallationsprogramm ERROR_DI_DO_DEFAULT zurück.

Wenn der Klasseninstaller erfolgreich einen DIF-Code verarbeitet, einschließlich des direkten Aufrufs des Standardhandlers, sollte der Klasseninstallationsprogramm NO_ERROR zurückgeben, und SetupDiCallClassInstaller ruft den Standardhandler anschließend nicht erneut auf. Beachten Sie, dass der Klasseninstaller den Standardhandler direkt aufrufen kann, der Klasseninstaller jedoch niemals versuchen sollte, die Vorgänge des Standardhandlers abzulösen.

Wenn beim Klasseninstallationsprogramm ein Fehler auftritt, sollte das Installationsprogramm einen entsprechenden Win32-Fehlercode zurückgeben, und SetupDiCallClassInstaller ruft anschließend nicht den Standardhandler auf.

Co-Installer sollten keine STANDARDMÄßIGen DIF-Codehandler aufrufen.

Installer-Vorgang
Beschreibt typische Schritte, die ein Installationsprogramm zum Verarbeiten der DIF-Anforderung ausführen kann.

Siehe auch
Listet Quellen verwandter Informationen auf.

Die folgende Abbildung zeigt die Abfolge von Ereignissen in SetupDiCallClassInstaller zum Verarbeiten eines DIF-Codes.

Diagramm, das den Ablauf der Dif-Codeverarbeitung in setupdicallclassinstaller veranschaulicht.

Das Betriebssystem führt einige Vorgänge für jeden DIF-Code aus. Vom Anbieter bereitgestellte Co-Installer und Klasseninstaller können an den Installationsaktivitäten teilnehmen. Beachten Sie, dass SetupDiCallClassInstaller Co-Installer aufruft, die für die Nachverarbeitung registriert sind, auch wenn der DIF-Code fehlschlägt.