Partager via


DIF_DETECT

Une demande de DIF_DETECT demande à un programme d’installation de détecter les appareils non PnP d’une classe particulière et d’ajouter les appareils au jeu d’informations de l’appareil. Cette demande est utilisée pour les appareils non PnP.

Date d’envoi

Lorsque l’Assistant Ajout de matériel détecte des appareils non PnP.

Qui gère

Co-programme d’installation de classe

Peut gérer

Co-programme d’installation d’appareil

Ne gère pas

Programme d’installation de classe

Peut gérer

Entrée du programme d’installation

DeviceInfoSet
Fournit un handle au jeu d’informations de l’appareil. Une classe de configuration d’appareil est associée à DeviceInfoSet.

DeviceInfoData
None

Paramètres d’installation de l’appareil
Des paramètres d’installation d’appareil sont associés à DeviceInfoSet.

Paramètres d’installation de classe
Une structure SP_DETECTDEVICE_PARAMS est associée à DeviceInfoSet. Les paramètres contiennent une routine de rappel que le programme d’installation de classe appelle pour indiquer la progression de l’opération de détection.

Sortie du programme d’installation

DeviceInfoSet
Un programme d’installation ajoute un élément d’informations sur l’appareil à DeviceInfoSet pour chaque appareil qu’il détecte, qu’un appareil ait été détecté ou installé précédemment.

Paramètres d’installation de l’appareil
Un programme d’installation peut modifier les paramètres d’installation de l’appareil pour DeviceInfoSet ou pour les nouveaux éléments d’informations sur l’appareil qu’il crée.

Valeur de retour du programme d’installation

Si un co-programme d’installation ne détecte pas d’appareils, il retourne NO_ERROR de sa passe de prétraitement. Si un co-programme d’installation détecte des appareils, il peut le faire pendant le prétraitement ou le post-traitement et retourner NO_ERROR ou un code d’erreur Win32.

Si un programme d’installation de classe détecte des appareils, il retourne NO_ERROR ou un code d’erreur Win32 approprié. Si un programme d’installation de classe ne gère pas cette requête DIF, il retourne ERROR_DI_DO_DEFAULT.

Gestionnaire de code DIF par défaut

None

Opération du programme d’installation

En réponse à une demande de DIF_DETECT, un programme d’installation peut détecter les appareils de sa classe d’installation.

Si un programme d’installation détecte des appareils, il doit effectuer au moins les opérations suivantes :

  • Appelez la routine de rappel DetectProgressNotify dans les paramètres d’installation de la classe SP_DETECTDEVICE_PARAMS , si la détection peut prendre un certain temps.

  • Pour chaque appareil détecté par le programme d’installation, il doit :

    • Créez un élément d’informations sur l’appareil (SetupDiCreateDeviceInfo).

    • Fournissez des informations pour la sélection du pilote.

      Le programme d’installation peut sélectionner manuellement le pilote de l’appareil ou le programme d’installation peut définir l’ID matériel de l’appareil que Windows utilisera pour trouver un INF pour l’appareil. Un programme d’installation définit l’ID matériel en appelant SetupDiSetDeviceRegistryProperty avec la valeur Property de SPDRP_HARDWAREID.

    • Définissez éventuellement certains paramètres d’installation de l’appareil.

  • Retournez NO_ERROR pour une détection réussie ou renvoyez un code d’erreur Win32.

Si un ou plusieurs programmes d’installation détectent un ou plusieurs appareils en réponse à ce code DIF, Windows compare la liste des appareils détectés à sa liste actuelle d’appareils. Si les programmes d’installation ont détecté un nouvel appareil, Windows tente d’installer l’appareil. Si les programmes d’installation ont omis un appareil qui apparaît dans la liste du programme d’installation, Windows supprime généralement l’appareil.

Pour détecter les appareils non PnP pendant la configuration en mode GUI, un programme d’installation doit gérer la demande DIF_FIRSTTIMESETUP . Le programme d’installation en mode GUI n’envoie pas de demande de DIF_DETECT au programme d’installation.

Pour plus d’informations sur les codes DIF, consultez Gestion des codes DIF.

Spécifications

Version

Pris en charge dans Microsoft Windows 2000 et versions ultérieures de Windows.

En-tête

Setupapi.h (inclure Setupapi.h)

Voir aussi

DIF_DETECT

DIF_FIRSTTIMESETUP

SetupDiCreateDeviceInfo

SP_DETECTDEVICE_PARAMS

SP_DEVINSTALL_PARAMS