Comment Windows détermine le pilote de périphérique le plus approprié à installer durant l'installation

Traductions disponibles Traductions disponibles
Numéro d'article: 279112 - Voir les produits auxquels s'applique cet article
Agrandir tout | Réduire tout

Résumé

Cet article décrit le processus utilisé pour sélectionner le pilote de périphérique le plus approprié pour un périphérique durant l'installation.

Lorsque vous exécutez le programme d'installation de Windows, vous pouvez avoir plusieurs jeux de pilotes de périphériques ou fichiers .inf qui fonctionnent avec un périphérique particulier. Le programme d'installation et Plug-and-Play essaient de résoudre ces conflits en sélectionnant le pilote de périphérique qui correspond le mieux au périphérique installé.

REMARQUE : cet article décrit seulement le processus utilisé pour les périphériques qui sont installés durant la phase d'interface utilisateur graphique du programme d'installation ou une fois l'installation terminée. La détection de contrôleur de stockage de masse et les processus de sélection de pilote de périphérique qui sont exécutés durant la partie en mode texte du programme d'installation suivent un processus différent.

Plus d'informations

Pour plus d'informations sur le processus de détection de contrôleur de stockage de masse, cliquez sur le numéro ci-dessous pour afficher l'article correspondant dans la Base de connaissances Microsoft.
220845 Ajout d'un pilote tiers ou mis à jour durant l'installation de Windows

La fonctionnalité Plug-and-Play essaie de rechercher un pilote de périphérique compatible en comparant les ID Plug-and-Play du matériel (retournés par le microprogramme du périphérique ou le BIOS système lors de l'énumération du périphérique) aux ID Plug-and-Play correspondants situés dans les fichiers .inf.

Plug-and-Play peut rechercher dans tous les fichiers .inf le pilote de périphérique le plus approprié à installer pour un périphérique particulier. Elle n'arrête pas sa recherche sur la première correspondance trouvée, mais continue de rechercher dans tous les fichiers .inf répertoriés dans le chemin de recherche de Plug-and-Play, comme défini dans l'entrée de Registre suivante :
HKEY-LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion
DevicePath:Reg_Expand_SZ:%Systemroot%\Inf

REMARQUE : par défaut, l'emplacement de Registre précédent contient seulement cette entrée unique ; toutefois, des chemins d'accès supplémentaires peuvent être ajoutés à cette entrée lorsque vous exécutez une installation sans assistance et que le paramètre OemPnpDriversPath = est utilisé dans le fichier de réponse sans assistance.

Le programme d'installation génère une liste de pilotes de périphériques compatibles qui contenaient une correspondance dans un fichier .inf et assignent un « classement » à chacun d'eux. Ce classement peut varier de « 0 » à « 0xFFFF », 0 étant la correspondance possible la plus appropriée et 0xFFFF la plus mauvaise correspondance possible. Le pilote de périphérique ayant le classement le plus bas est considéré comme étant le plus approprié ; c'est donc lui qui sera installé.

Les classements de pilotes de périphériques ont les plages suivantes :
  • 0x0 à 0xfff : l'ID de matériel du périphérique a correspondu avec un ID de matériel répertorié dans un fichier .inf.
  • 0x1000 à 0x1fff : l'ID de matériel du périphérique a correspondu à l'un des ID compatibles dans un fichier .inf.
  • 0x2000 à 0x2fff : l'un des ID compatibles de périphériques a correspondu avec l'ID de matériel dans un fichier .inf.
  • 0x3000 à 0x3fff : l'un des ID compatibles de périphériques a correspondu avec l'ID compatible dans un fichier .inf.
  • 0xFFFF : La plus mauvaise correspondance.
Dans Windows XP et Windows Server 2003, il existe des plages de classement de pilote de périphérique supplémentaires :
  • 0x8000 à 0x8FFF : correspondances d'ID de matériel non fiables
  • 0x9000 à 0x9FFF : correspondances d'ID compatibles non fiables
Certains fichiers .inf peuvent être dans la plage non fiable s'ils ne sont pas signés numériquement ou si le nom de la section Model ne contient pas de décorations spécifiques à Windows NT (le périphérique peut être installé sur Windows NT, Windows 95 ou Windows 98, mais il n'a pas d'entrées spécifiques pour ces systèmes d'exploitation).

Si le programme d'installation détermine qu'un pilote de périphérique n'est pas fiable, il peut modifier son classement et le rétrograder aux plages précédentes appropriées.
Les classements de pilote de périphérique compris dans la plage de 0x0 à 0xfff portent le nom de « correspondance d'ID de matériel » car ils établissent une correspondance d'ID de matériel à ID de matériel. Ces classements sont également considérés comme les correspondances les plus appropriées et tous les autres classements sont répertoriés comme « compatibles » car il y a au moins un ID compatible lors de la génération du classement des pilotes de périphériques. Les installateurs et co-installateurs de classes peuvent également affecter la sélection du pilote de périphérique en marquant le pilote de périphérique comme « non valide » s'ils déterminent qu'il est incapable de prendre en charge le périphérique ou s'ils modifient le classement d'un pilote de périphérique.

Toutefois, si deux pilotes de périphériques ont le même classement le plus bas, le programme d'installation utilise le pilote de périphérique ayant la date la plus récente. Si l'un des pilotes de périphériques est signé et que l'autre ne l'est pas, une valeur de 0xFFFFFFFF est assignée à la date du pilote de périphérique non signé et le pilote de périphérique signé est sélectionné et installé.

Il peut être possible de spécifier un pilote de périphérique fourni par OEM, mais il peut ne pas être sélectionné et utilisé. Bien qu'un fabricant ait fourni un pilote de périphérique mis à jour, il a pu être écrit uniquement comme pilote de périphérique compatible, ce qui peut lui donner un classement plus élevé et par conséquent une moins bonne correspondance. Le programme d'installation ne considère pas si le pilote de périphérique fourni par l'OEM est signé numériquement lorsqu'il sélectionne une correspondance de pilote de périphérique. Si le pilote de périphérique non signé a un classement inférieur et qu'il constitue une meilleure correspondance que tout autre pilote de périphérique intégré, ce pilote de périphérique peut être sélectionné et installé par le programme d'installation.

Lorsque vous exécutez le programme d'installation, si aucune correspondance n'est trouvée dans les fichiers .inf, l'installation du périphérique est reportée et le périphérique peut devenir un périphérique inconnu dans le Gestionnaire de périphériques. Si un nouveau périphérique est introduit (pas pendant l'installation) et qu'aucune correspondance n'est trouvée dans les fichiers .inf sur l'ordinateur, vous pouvez recevoir un message « Nouveau matériel détecté » et vous pouvez être invité à fournir un pilote de périphérique.

Par exemple, vous avez un ordinateur qui a une carte graphique PCI avec un ID Plug-and-Play répertorié dans deux fichiers .inf différents, Nv3_disp.inf et Nv4_disp.inf. Ni l'un ni l'autre de ces fichiers de pilote de périphérique n'est signé numériquement ; par conséquent, une valeur de 0xFFFFFFFF est assignée aux dates des deux pilotes de périphériques. Dans cet exemple, ces fichiers se trouvent dans les dossiers D:\Drivers\Video1et D:\Drivers\Video2 suivants.

Le Devicepath= actuel dans le Registre a les entrées %Systemroot%\Inf;%Systemdrive%\Drivers\Video1;%Systemdrive%\Drivers\Video2.

REMARQUE : %Systemroot% est D:\Winnt et %Systemdrive% est D:

Le programme d'installation et la fonctionnalité Plug-and-Play effectuent des recherches dans tous les fichiers .inf trouvés dans les chemins d'accès précédents et enregistrent les correspondances trouvées. Si le programme d'installation ou la fonctionnalité Plug-and-Play trouve plus d'une correspondance, la correspondance la plus appropriée est utilisée.

L'extrait suivant du fichier Setupapi.log détaille le processus précédent. Pour cet exemple, le mode d'enregistrement pour le programme d'installation avait été placé en mode Commentaires en appliquant la procédure décrite dans l'article suivant :
243996 Comment faire pour activer l'enregistrement des commentaires dans le programme d'installation en mode graphique de Windows 2000

Si le programme d'installation s'exécute normalement, le fichier Setupapi.log ne contient pas autant de détails.

Lorsqu'un périphérique est interrogé, il retourne une liste d'ID de matériel et d'ID compatibles. Tous les périphériques ne retournent pas plusieurs ID, mais c'est le cas la plupart du temps. Dans cet exemple, une carte vidéo retourne les ID suivants :
Searching for hardware IDs:
Pci\Ven_10de&dev_0028&subsys_5a001092&rev_11,
Pci\Ven_10de&dev_0028&subsys_5a001092,
Pci\Ven_10de&dev_0028&cc_030000,
Pci\Ven_10de&dev_0028&cc_0300
Searching for compatible IDs:
Pci\Ven_10de&dev_0028&rev_11,
Pci\Ven_10de&dev_0028,
Pci\Ven_10de&cc_030000,
Pci\Ven_10de&cc_0300,
Pci\Ven_10de,pci\cc_030000,
Pci\Cc_0300
Enumerating files D:\Winnt\Inf\*.inf
@ 07:11:59.191 : Opened PNF of "D:\Winnt\Inf\1394.inf".
@ 07:11:59.191 : Opened PNF of "D:\Winnt\Inf\accessor.inf".
@ 07:11:59.191 : Opened PNF of "D:\Winnt\Inf\acpi.inf".
@ 07:11:59.191 : Opened PNF of "D:\Winnt\Inf\adm_mult.inf".
@ 07:11:59.191 : Opened PNF of "D:\Winnt\Inf\adm_port.inf".
@ 07:11:59.207 : Opened PNF of "D:\Winnt\Inf\agtinst.inf".
.
.
.
Enumerating files D:\Drivers\Video1\*.inf
@ 07:12:00.660 : Opened PNF of "D:\Drivers\Video1\NV4_DISP.inf".
@ 07:12:00.660 : The file (D:\Drivers\Video1\NV4_DISP.inf) is not digitally
 signed, ignoring driver date.
@ 07:12:00.660 :Found Pci\VEN_10DE&DEV_0028 in 
D:\Drivers\Video1\NV4_DISP.inf; Device: NVIDIA RIVA TNT2; Driver: NVIDIA 
RIVA TNT2; Provider: NVIDIA; Mfg: NVIDIA; Section: nv4
@ 07:12:00.660 : Decorated section name: nv4
Enumerating files D:\Drivers\Video2\*.inf
@ 07:12:00.660 : Opened PNF of "D:\Drivers\Video2\NV3_DISP.inf".
@ 07:12:00.675 : The file (D:\Drivers\Video2\NV3_DISP.inf) is not digitally
 signed, ignoring driver date.
@ 07:12:00.675 : Found PCI\VEN_10DE&DEV_0028 in
 D:\Drivers\Video2\NV3_DISP.inf; Device: NVIDIA RIVA TNT2; Driver: NVIDIA
 RIVA TNT2; Provider: NVIDIA; Mfg: NVIDIA; Section: nv4
@ 07:12:00.675 : Decorated section name: nv4
@ 07:12:01.706 : Device install function: DIF_SELECTBESTCOMPATDRV.
@ 07:12:01.706 : Executing class installer.
@ 07:12:01.894 : Completed class installer.
@ 07:12:01.894 : Executing default installer.
@ 07:12:01.894 : Selected driver installs from section nv4 in D:\Drivers\Video1\Nv4_disp.inf.
@ 07:12:01.894 : Changed class GUID of device to {4D36E968-E325-11CE-BFC1-08002BE10318}.
@ 07:12:01.894 : Set selected driver.
@ 07:12:01.894 : Selected best compatible driver.
@ 07:12:01.894 : Completed default installer.
@ 07:12:06.565 : Device install function: DIF_ALLOW_INSTALL.
@ 07:12:06.565 : Executing class installer.
@ 07:12:06.565 : Completed class installer.
@ 07:12:06.581 : Device install function: DIF_INSTALLDEVICEFILES.
@ 07:12:06.581 : Executing class installer.
@ 07:12:06.581 : Completed class installer.
@ 07:12:06.581 : Executing default installer.
				
Dans la sortie d'exemple, le programme d'installation a sélectionné et installé le pilote de périphérique en utilisant le fichier D:\Drivers\Video1\Nv4_disp.inf car il a considéré que ce pilote de périphérique était le plus approprié.

Pour trouver facilement les périphériques installés et les fichiers .inf qui ont été utilisés pour installer les périphériques, ouvrez le fichier %Systemroot%\Setupapi.log dans le Bloc-notes Windows et recherchez DIF_SelectBestCompatDrv pour les périphériques installés par la fonctionnalité Plug-and-Play ou DIF_SelectDevice pour les périphériques installés manuellement.

Propriétés

Numéro d'article: 279112 - Dernière mise à jour: lundi 3 décembre 2007 - Version: 6.2
Les informations contenues dans cet article s'appliquent au(x) produit(s) suivant(s):
  • Microsoft Windows Server 2003, Standard Edition (32-bit x86)
  • Microsoft Windows Server 2003, Enterprise Edition (32-bit x86)
  • Microsoft Windows XP Professional
  • Microsoft Windows XP Édition familiale
  • Microsoft Windows 2000 Server
  • Microsoft Windows 2000 Advanced Server
  • Microsoft Windows 2000 Professionnel
  • Microsoft Windows Small Business Server 2003 Premium Edition
  • Microsoft Windows Small Business Server 2003 Standard Edition
Mots-clés : 
kbinfo kbenv kbsetup KB279112
L'INFORMATION CONTENUE DANS CE DOCUMENT EST FOURNIE PAR MICROSOFT SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE. L'UTILISATEUR ASSUME LE RISQUE DE L'UTILISATION DU CONTENU DE CE DOCUMENT. CE DOCUMENT NE PEUT ETRE REVENDU OU CEDE EN ECHANGE D'UN QUELCONQUE PROFIT.

Envoyer des commentaires

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com