Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Eine DIF_REMOVE Anforderung benachrichtigt ein Installationsprogramm, das Windows im Begriff ist, ein Gerät zu entfernen und dem Installationsprogramm die Möglichkeit zu geben, sich auf die Entfernung vorzubereiten.
Wenn gesendet
Wenn ein Benutzer ein Gerät in Geräte-Manager entfernt.
Wer behandelt
Klassen-Co-Installer |
Kann behandeln |
Geräte-Co-Installer |
Kann behandeln |
Klasseninstallationsprogramm |
Kann behandeln |
Installer-Eingabe
DeviceInfoSet
Stellt einen Handle für den Geräteinformationssatz bereit, der 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
Es sind Geräteinstallationsparameter (SP_DEVINSTALL_PARAMS) mit deviceInfoData verknüpft.
Klasseninstallationsparameter
Eine SP_REMOVEDEVICE_PARAMS Struktur kann der DeviceInfoData zugeordnet sein.
Es gibt keine Klasseninstallationsparameter für die Anforderung, wenn das DI_CLASSINSTALLPARAMS Flag im SP_DEVINSTALL_PARAMS eindeutig ist. In diesem Fall wird kein Hardwareprofil angegeben, und das Gerät soll als Ganzes aus dem System entfernt werden.
Installationsprogrammausgabe
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 das Klasseninstallationsprogramm diese Anforderung erfolgreich verarbeitet, einschließlich des direkten Aufrufens des Standardhandlers, sollte das Klasseninstallationsprogramm NO_ERROR zurückgeben, und SetupDiCallClassInstaller ruft anschließend den Standardhandler nicht erneut auf.
Hinweis Das Klasseninstallationsprogramm kann den Standardhandler direkt aufrufen, aber das Klasseninstallationsprogramm sollte niemals versuchen, die Vorgänge des Standardhandlers zu ersetzen.
Weitere Informationen zum Aufrufen des Standardhandlers finden Sie unter Aufrufen von standardmäßigen DIF-Codehandlern.
Wenn beim Klasseninstallationsprogramm ein Fehler auftritt, sollte das Installationsprogramm einen entsprechenden Win32-Fehlercode zurückgeben, und SetupDiCallClassInstaller ruft anschließend nicht den Standardhandler auf.
Standardmäßiger DIF-Codehandler
Installer-Vorgang
Als Reaktion auf eine DIF_REMOVE Anforderung führt ein Installationsprogramm in der Regel einige Bereinigungsvorgänge durch. In diesem Fall gibt ein Co-Installer NO_ERROR zurück, und ein Klasseninstallationsprogramm gibt 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 fehl, indem ein Win32-Fehlercode zurückgegeben wird. Wenn das flag DI_QUIETINSTALL deaktiviert ist, sollte das Installationsprogramm dem Benutzer eine Meldung anzeigen, in der erläutert wird, warum das Gerät nicht entfernt wird.
Co-Installer dürfen nicht versuchen, das Gerät selbst zu entfernen, indem SetupDiRemoveDevice aufgerufen wird. Co-Installer behandeln diese Anforderung in der Regel bei der Nachverarbeitung, nachdem das Gerät erfolgreich entfernt wurde.
Wenn ein Co-Installer Beispielsweise Informationen in der Registrierung löschen muss, sollte der Co-Installer dies bei der Nachverarbeitung tun und nur, wenn die vorherigen Installationsprogramme die Entfernungsanforderung erfolgreich waren. Im Vorverarbeitungsdurchlauf sollte das Co-Installer die Registrierungsinformationen in seinem Kontextparameter speichern und ERROR_DI_POSTPROCESSING_REQUIRED zurückgeben, um die Nachverarbeitung anzufordern. Wenn Windows das Co-Installer für die Nachbearbeitung dieser DIF-Anforderung aufruft, sollte der Co-Installer überprüfen, ob der DIF-Status NO_ERROR ist, und dann die Registrierungsinformationen löschen. Wenn ein Co-Installer Registrierungsinformationen im Vorverarbeitungsdurchlauf löscht und das Klasseninstallationsprogramm (oder ein anderer Co-Installer) den DIF_REMOVE fehlschlägt, kann das Co-Installer das Gerät in einem unvorhersehbaren Zustand verlassen.
Installer sollten dateien nicht löschen, wenn diese DIF-Anforderung verarbeitet wird, falls die Dateien von einem anderen Gerät verwendet werden.
Windows sendet diese DIF-Anforderung, bevor sie die Verarbeitung von PnP-Abfragen initiiert und entfernt.
Weitere Informationen zu DIF-Codes finden Sie unter Behandeln von DIF-Codes.
Requirements
Version |
Unterstützt in Microsoft Windows 2000 und höheren Versionen von Windows. |
Header |
Setupapi.h (include Setupapi.h) |