DIF_REGISTERDEVICE

Die DIF_REGISTERDEVICE-Anforderung ermöglicht es einem Installationsprogramm, an der Registrierung eines neu erstellten Geräts instance beim PnP-Manager teilzunehmen. Windows sendet diese DIF-Anforderung für Nicht-PnP-Geräte.

Sendebedingungen

Wenn ein Installationsprogramm ein zuvor unbekanntes Gerät als Reaktion auf eine DIF_DETECT-Anforderung meldet. Windows sendet diese DIF-Anforderung in der Analysephase des Assistenten zum Hinzufügen von Hardware, bevor das Gerät installiert wird. Windows sendet diese Anforderung auch während der Nicht-PnP-Erkennung.

Wer behandelt

Klassen-Co-Installer

Kann verarbeiten

Geräte-Co-Installer

Behandelt nicht

Klasseninstallationsprogramm

Kann verarbeiten

Eingabe des Installationsprogramms

DeviceInfoSet
Stellt ein Handle für den Geräteinformationssatz bereit , der das Gerät enthält.

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

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

Klasseninstallationsparameter
Keine

Installationsprogrammausgabe

Keine

Rückgabewert des Installers

Ein Co-Installer kann NO_ERROR oder einen Win32-Fehlercode zurückgeben. Ein Co-Installer sollte keine ERROR_DI_POSTPROCESSING_REQUIRED für diese DIF-Anforderung zurückgeben.

Wenn ein Installationsprogramm feststellt, dass es sich bei dem Gerät um ein Duplikat handelt, gibt es ERROR_DUPLICATE_FOUND zurück.

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.

Wenn das Installationsprogramm feststellt, dass es sich bei dem Gerät um ein Duplikat handelt, gibt das Installationsprogramm ERROR_DUPLICATE_FOUND zurück.

Standard-DIF-Codehandler

SetupDiRegisterDeviceInfo

Installer-Vorgang

Eine Geräteinstallationsanwendung sendet in der Regel diese DIF-Anforderung, um ein Nicht-PnP-Gerät beim PnP-Manager zu registrieren. Ab Microsoft Windows 2000 müssen Nicht-PnP-Geräte registriert werden, bevor sie installiert werden können.

Ein Installationsprogramm verarbeitet in der Regel diese DIF-Anforderung, um duplikate zu erkennen. Ein solches Installationsprogramm ruft in der Regel den Standardhandler (SetupDiRegisterDeviceInfo) auf und gibt dessen Erkennungsroutine an. Wenn die Registrierung erfolgreich war und das Installationsprogramm feststellt, dass das Gerät kein Duplikat ist, gibt das Installationsprogramm NO_ERROR zurück.

Ein Co-Installer sollte alle Vorgänge ausführen, um diese DIF-Anforderung in seinem Vorverarbeitungsdurchlauf zu verarbeiten. Wenn der Co-Installer für die Nachverarbeitung aufgerufen wird, wurde das Gerät instance bereits vom Klasseninstallationsprogramm oder vom Standardhandler registriert.

Wenn ein Installationsprogramm einen Fehler für diesen DIF-Code zurückgibt( in der Regel ERROR_DUPLICATE_FOUND), löscht Windows das Gerät aus dem Geräteinformationssatz.

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

DIF_DETECT

SetupDiRegisterDeviceInfo

SP_DEVINFO_DATA

SP_DEVINSTALL_PARAMS