Freigeben über


DIF_DETECT

Eine DIF_DETECT Anforderung weist ein Installationsprogramm an, Nicht-PnP-Geräte einer bestimmten Klasse zu erkennen und die Geräte dem Geräteinformationssatz hinzuzufügen. Diese Anforderung wird für Nicht-PnP-Geräte verwendet.

Sendebedingungen

Wenn der Hardware hinzufügen-Assistent Nicht-PnP-Geräte erkennt.

Wer verarbeitet

Klassen-Co-Installer

Kann verarbeiten

Geräte-Co-Installer

Behandelt nicht

Klasseninstallationsprogramm

Kann verarbeiten

Installationsprogrammeingabe

DeviceInfoSet
Stellt dem Geräteinformationssatz ein Handle bereit. Dem DeviceInfoSet ist eine Geräteeinrichtungsklasse zugeordnet.

DeviceInfoData
Keine

Geräteinstallationsparameter
Dem DeviceInfoSet sind Geräteinstallationsparameter zugeordnet.

Klasseninstallationsparameter
Dem DeviceInfoSet ist eine SP_DETECTDEVICE_PARAMS Struktur zugeordnet. Die Parameter enthalten eine Rückrufroutine, die vom Klasseninstallationsprogramm aufgerufen wird, um den Fortschritt des Erkennungsvorgangs anzugeben.

Installationsprogrammausgabe

DeviceInfoSet
Ein Installationsprogramm fügt dem DeviceInfoSet für jedes gerät, das es erkennt, unabhängig davon, ob ein Gerät zuvor erkannt und installiert wurde, ein Geräteinformationselement hinzu.

Geräteinstallationsparameter
Ein Installationsprogramm kann die Geräteinstallationsparameter für das DeviceInfoSet oder für neue Geräteinformationselemente ändern, die es erstellt.

Installer-Rückgabewert

Wenn ein Co-Installer keine Geräte erkennt, gibt es NO_ERROR aus seinem Vorverarbeitungsdurchlauf zurück. Wenn ein Co-Installer Geräte erkennt, kann es dies während der Vor- oder Nachverarbeitung tun und NO_ERROR oder einen Win32-Fehlercode zurückgeben.

Wenn ein Klasseninstallationsprogramm Geräte erkennt, gibt es NO_ERROR oder einen entsprechenden Win32-Fehlercode zurück. Wenn ein Klasseninstallationsprogramm diese DIF-Anforderung nicht verarbeitet, gibt es ERROR_DI_DO_DEFAULT zurück.

Standard-DIF-Codehandler

Keine

Installationsprogrammvorgang

Als Reaktion auf eine DIF_DETECT Anforderung kann ein Installationsprogramm Geräte seiner Setupklasse erkennen.

Wenn ein Installationsprogramm Geräte erkennt, sollte es mindestens Folgendes tun:

  • Rufen Sie die Rückrufroutine DetectProgressNotify in den Installationsparametern der SP_DETECTDEVICE_PARAMS-Klasse auf, wenn die Erkennung möglicherweise eine spürbare Zeit in Anspruch nimmt.

  • Für jedes Gerät, das das Installationsprogramm erkennt, sollte folgendes angezeigt werden:

    • Erstellen Sie ein Geräteinformationselement (SetupDiCreateDeviceInfo).

    • Geben Sie Informationen zur Treiberauswahl an.

      Das Installationsprogramm kann den Treiber für das Gerät manuell auswählen, oder das Installationsprogramm kann die Hardware-ID des Geräts festlegen, die Windows verwendet, um einen INF für das Gerät zu finden. Ein Installationsprogramm legt die Hardware-ID fest, indem SetupDiSetDeviceRegistryProperty mit dem Eigenschaftswert SPDRP_HARDWAREID aufgerufen wird.

    • Möglicherweise legen Sie einige Geräteinstallationsparameter fest.

  • Geben Sie NO_ERROR für eine erfolgreiche Erkennung zurück, oder geben Sie einen Win32-Fehlercode zurück.

Wenn ein oder mehrere Installationsprogramme als Reaktion auf diesen DIF-Code Geräte erkennen, vergleicht Windows die Liste der erkannten Geräte mit der aktuellen Geräteliste. Wenn die Installationsprogramme ein neues Gerät erkannt haben, versucht Windows, das Gerät zu installieren. Wenn die Installationsprogramme ein Gerät ausgelassen haben, das in der Liste des Setups angezeigt wird, entfernt Windows das Gerät in der Regel.

Um Nicht-PnP-Geräte während der Einrichtung des GUI-Modus zu erkennen, muss ein Installationsprogramm die DIF_FIRSTTIMESETUP Anforderung verarbeiten. Die Einrichtung des GUI-Modus sendet keine DIF_DETECT Anforderung an das Installationsprogramm.

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 (einschließlich Setupapi.h)

Weitere Informationen

DIF_DETECT

DIF_FIRSTTIMESETUP

SetupDiCreateDeviceInfo

SP_DETECTDEVICE_PARAMS

SP_DEVINSTALL_PARAMS