DIF_REMOVE

Eine DIF_REMOVE Anforderung benachrichtigt ein Installationsprogramm, dass Windows ein Gerät entfernen wird, und gibt dem Installationsprogramm die Möglichkeit, sich auf die Entfernung vorzubereiten.

Sendebedingungen

Wenn ein Benutzer ein Gerät in Geräte-Manager entfernt.

Wer behandelt

Klassen-Co-Installer

Kann verarbeiten

Geräte-Co-Installer

Kann verarbeiten

Klasseninstallationsprogramm

Kann verarbeiten

Eingabe des Installationsprogramms

DeviceInfoSet
Stellt dem Geräteinformationssatz ein Handle bereit, das das zu entfernende Gerät enthält.

DeviceInfoData
Stellt einen Zeiger auf eine SP_DEVINFO_DATA-Struktur für das Gerät im Geräteinformationssatz bereit.

Geräteinstallationsparameter
DeviceInfoData sind Geräteinstallationsparameter (SP_DEVINSTALL_PARAMS) zugeordnet.

Klasseninstallationsparameter
Der DeviceInfoData-Struktur kann eine SP_REMOVEDEVICE_PARAMS-Struktur zugeordnet sein.

Es gibt keine Klasseninstallationsparameter für die Anforderung, wenn das flag DI_CLASSINSTALLPARAMS im SP_DEVINSTALL_PARAMS eindeutig ist. In diesem Fall wird kein Hardwareprofil angegeben, und das Gerät soll aus dem gesamten System entfernt werden.

Installationsprogrammausgabe

Nichts

Rückgabewert des Installers

Ein Co-Installer kann NO_ERROR, ERROR_DI_POSTPROCESSING_REQUIRED oder einen Win32-Fehlercode zurückgeben.

Wenn ein Klasseninstallationsprogramm diese Anforderung erfolgreich verarbeitet und SetupDiCallClassInstaller anschließend den Standardhandler aufrufen sollte, gibt das Klasseninstallationsprogramm ERROR_DI_DO_DEFAULT zurück.

Wenn der Klasseninstaller diese Anforderung erfolgreich verarbeitet, einschließlich des direkten Aufrufs des Standardhandlers, sollte der Klasseninstaller NO_ERROR zurückgeben, und SetupDiCallClassInstaller ruft den Standardhandler anschließend nicht mehr auf.

Hinweis Der Klasseninstaller kann den Standardhandler direkt aufrufen, aber der Klasseninstaller sollte niemals versuchen, die Vorgänge des Standardhandlers abzulösen.

Weitere Informationen zum Aufrufen des Standardhandlers finden Sie unter Aufrufen von DIF-Standardcodehandlern.

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

Standard-DIF-Codehandler

SetupDiRemoveDevice

Installer-Vorgang

Als Reaktion auf eine DIF_REMOVE-Anforderung führt ein Installationsprogramm in der Regel einige sauber-Up-Vorgänge aus. In diesem Fall gibt ein Co-Installer NO_ERROR und ein Klasseninstallationsprogramm ERROR_DI_DO_DEFAULT zurück.

Wenn ein Installationsprogramm feststellt, dass das Gerät nicht entfernt werden soll, schlägt das Installationsprogramm die DIF-Anforderung durch Zurückgeben eines Win32-Fehlercodes fehl. Wenn das flag DI_QUIETINSTALL eindeutig ist, sollte das Installationsprogramm dem Benutzer eine Meldung anzeigen, in der erklärt wird, warum das Gerät nicht entfernt wird.

Co-Installer dürfen nicht versuchen, das Gerät selbst zu entfernen, indem sie SetupDiRemoveDevice aufrufen. Co-Installer verarbeiten diese Anforderung in der Regel in der Nachverarbeitung, nachdem das Gerät erfolgreich entfernt wurde.

Wenn ein Co-Installer z. B. Informationen in der Registrierung löschen muss, sollte der Co-Installer dies in der Nachbearbeitung tun und nur, wenn die vorherigen Installationsprogramme die Entfernungsanforderung erfolgreich waren. In seinem Vorverarbeitungsdurchlauf sollte der Co-Installer die Registrierungsinformationen in seinem Kontextparameter speichern und ERROR_DI_POSTPROCESSING_REQUIRED zurückgeben, um die Nachverarbeitung anzufordern. Wenn Windows den Co-Installer für die Nachverarbeitung dieser DIF-Anforderung aufruft, sollte der Co-Installer überprüfen, ob die DIF-status NO_ERROR ist, und dann die Registrierungsinformationen löschen. Wenn ein Co-Installer Registrierungsinformationen in seinem Vorverarbeitungsdurchlauf löscht und der Klasseninstaller (oder ein anderer Co-Installer) die DIF_REMOVE fehlschlägt, kann das Co-Installationsprogramm das Gerät in einem unvorhersehbaren Zustand belassen.

Installationsprogramme sollten bei der Verarbeitung dieser DIF-Anforderung keine Dateien löschen, falls die Dateien von einem anderen Gerät verwendet werden.

Windows sendet diese DIF-Anforderung, bevor die Verarbeitung von PnP-Abfragen zum Entfernen und Entfernen initiiert wird.

Weitere Informationen zu DIF-Codes finden Sie unter Behandeln von DIF-Codes.

Requirements (Anforderungen)

Version

Unterstützt in Microsoft Windows 2000 und höheren Versionen von Windows.

Header

Setupapi.h (schließen Sie Setupapi.h ein)

Weitere Informationen

SetupDiRemoveDevice

SP_DEVINFO_DATA

SP_DEVINSTALL_PARAMS

SP_REMOVEDEVICE_PARAMS