Information : Windows NT/2000/XP une entrée de Registre KnownDLLs utilise pour rechercher les DLL

Numéro d'article: 164501 - Voir les produits auxquels s'applique cet article
IMPORTANT : cet article contient des informations sur la modification du Registre. Avant de modifier le Registre, veillez à sauvegarder et assurez-vous que vous savez comment le restaurer en cas de problème. Pour savoir comment sauvegarder, restaurer et modifier le Registre, cliquez sur le numéro ci-dessous pour afficher l'article correspondant dans la base de connaissances Microsoft :
256986Description du Registre Microsoft Windows
Agrandir tout | Réduire tout

Sommaire

Résumé

Microsoft Windows NT, Windows 2000 et Windows XP utilise les entrées de Registre KnownDLLs pour rechercher les DLL 32 bits ou 16 bits lors du chargement de la DLL. Pour les DLL 32 bits du KnownDLLs entrée de Registre n'affecte que la recherche des DLL chargées implicitement. Pour les DLL 16 bits la KnownDLLs entrée de Registre affecte la recherche pour les deux DLL chargée implicitement et explicitement. Si vous incluez incorrectement un nom de DLL dans l'entrée de Registre KnownDLLs, LoadLibrary dans Windows NT/2000/XP WOW ne parvient pas à charger une DLL trouve dans répertoire en cours de l'application.

Plus d'informations

Windows NT/2000/XP utilise l'entrée de Registre KnownDLLs pour déterminer les DLL une application utilisera. Il existe deux entrées de Registre KnownDLLs différentes : un qui affecte le chargement des DLL 32 bits et un qui affecte le chargement des DLL 16 bits. Une DLL répertoriée dans l'entrée de Registre KnownDLLs est parfois appelée «KnownDLL» dans cet article.

DLL : 16 bits

Pour les DLL 16 bits, la valeur de Registre KnownDLLs est trouvée dans la clé suivante :
   HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\WOW
				
valeur de Registre The KnownDLLs est une chaîne REG_SZ avec des noms de DLL au format 8.3, séparés par un espace. La valeur KnownDLLs affecte les deux DLL chargées implicitement et explicitement.

Sans la valeur de Registre KnownDLLs WOW de Windows NT utilise l'ordre de recherche suivant pour localiser la DLL :
  1. Le répertoire en cours de la tâche utilise la DLL.
  2. Le répertoire \WINNT.
  3. Le répertoire \WINNT\SYSTEM.
  4. Le répertoire \Winnt\System32.
  5. Le répertoire du fichier exécutable pour la tâche utilise la DLL.
  6. Un répertoire listé dans la variable d'environnement PATH.
Avec la valeur de Registre KnownDLLs WOW de Windows NT recherche uniquement dans le répertoire \Winnt\System32 pour localiser la DLL. Si KnownDLLs inclut une entrée pour une DLL ne se trouve pas dans le répertoire \Winnt\System32, LoadLibrary ne peut pas charger la DLL même si la DLL se trouve dans les 5 autres emplacements ci-dessus.

Si Windows NT/2000/XP WOW ne parvient pas à trouver la DLL, LoadLibrary retourne le code d'erreur 2 (fichier introuvable) ou la liaison implicite provoque le module parent Échec du chargement.

Pour savoir comment Windows 95 enregistre une DLL 16 bits comme KnownDLLs reportez-vous à l'article suivant dans la base de connaissances Microsoft :
141969Clé de Registre de Known16DLLs Windows 95 utilise pour rechercher les DLL 16 bits

DLL : 32-bit

DLL 32 bits du KnownDLLs clé de Registre est disponible à l'adresse :
   HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager
				
REG_SZ le nom de la valeur de Registre est le nom de la DLL sans l'extension. La valeur du Registre est le nom de la DLL avec l'extension. Cette entrée affecte DLL uniquement implicitement chargées, pas les DLL chargées à l'aide de l'API LoadLibrary().

Sans cette entrée, Windows NT utilise l'ordre de recherche suivant pour localiser la DLL :
  1. Le répertoire du fichier exécutable pour le processus de chargement de la DLL.
  2. Le répertoire en cours de processus qui est du chargement de la DLL.
  3. Le répertoire \Winnt\System32.
  4. Le répertoire \WINNT.
  5. Un répertoire listé dans la variable d'environnement path.
Avec l'entrée de Registre KnownDLLs, Windows NT utilise l'ordre de recherche suivant pour localiser la DLL :
  1. Le répertoire \Winnt\System32.
  2. Le répertoire du fichier exécutable pour le processus de chargement de la DLL.
  3. Le répertoire en cours de processus qui est du chargement de la DLL.
  4. Le répertoire \WINNT.
  5. Un répertoire listé dans la variable d'environnement PATH.
Si la DLL ne se trouve pas dans les emplacements mentionnés ci-dessus, la liaison implicite entraîne le module parent Échec du chargement.

Une DLL est considérée comme un KnownDLL si un KnownDLL liée de manière implicite à elle. Par exemple, MAIN.DLL utilise des fonctions de CHILD.DLL. Si MAIN.DLL est répertorié dans la clé de Registre KnownDLLs, Windows NT traite également CHILD.DLL comme un KnownDLL. Une autre application ou DLL utilise CHILD.DLL utilise la DLL a été liée à MAIN.DLL.

Windows NT mappe KnownDLLs 32 bits au démarrage. Renommer ou déplacer la DLL n'a aucun effet sur lequel DLL une application se chargera ; il utilise toujours celle qui était \Winnt\System32 au moment du démarrage.

Pour modifier la façon dont Windows NT charge KnownDLLs utilise la valeur de Registre ExcludeFromKnownDlls à l'adresse :
   HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager
				
Remarque : utilisez RegEdt32 au lieu de RegEdit pour modifier cette valeur de Registre.

Cette valeur de Registre REG_MULTI_SZ contient les noms des DLL au format 8.3, une DLL par chaîne. Si une DLL est répertoriée dans ExcludeFromKnownDlls, puis Windows NT ne traite pas la DLL comme une KnownDLL, même s'il est répertorié dans la clé de Registre KnownDLLs. Ceci est utile lorsque vous développez une DLL qui est utilisée par de nombreuses autres KnownDLLs et il est important de les remplacer et tester les nouvelles versions sans redémarrer l'ordinateur Windows NT.

Modifier les clés de Registre précité nécessite des privilèges d'administrateur pour l'ordinateur local. L'utilisation de KnownDLLs sécurise le système d'une personne déconcertante remplaçant API en plaçant des DLL système non fiable dans le répertoire de l'application.

Pour savoir comment Windows 95 enregistre une DLL 32 bits comme KnownDLLs reportez-vous à l'article suivant dans la base de connaissances Microsoft :
151646Clé de Registre KnownDLLs 95 utilise Windows pour rechercher les DLL 32 bits
Avertissement: À l'aide de l'Éditeur du Registre incorrectement peut générer des problèmes sérieux pouvant vous obliger à réinstaller votre système d'exploitation. Microsoft ne peut pas garantir que les problèmes résultant de l'utilisation incorrecte de l'Éditeur du Registre puissent être résolus. Utilisez l'Éditeur du Registre à vos risques et périls.

Pour savoir comment modifier le Registre, consultez la rubrique d'aide "Modification des clés et des valeurs" dans l'Éditeur du Registre (Regedit.exe) ou les rubriques d'aide «Ajouter et supprimer des informations dans le Registre» et «Modifier les données du Registre» dans Regedt32.exe. Notez que vous devez sauvegarder le Registre avant de le modifier. Si vous exécutez Windows NT, nous vous conseillons de mettre à jour votre disquette de réparation d'urgence (ERD).

Propriétés

Numéro d'article: 164501 - Dernière mise à jour: mardi 21 novembre 2006 - Version: 4.1
Les informations contenues dans cet article s'appliquent au(x) produit(s) suivant(s):
  • Microsoft Win32 Application Programming Interface sur le système suivant
    • Microsoft Windows NT 4.0
    • the operating system: Microsoft Windows 2000
    • the operating system: Microsoft Windows XP
Mots-clés : 
kbmt kbdll kbinfo kbkernbase kbregistry KB164501 KbMtfr
Traduction automatique
IMPORTANT : Cet article est issu du système de traduction automatique mis au point par Microsoft (http://support.microsoft.com/gp/mtdetails). Un certain nombre d?articles obtenus par traduction automatique sont en effet mis à votre disposition en complément des articles traduits en langue française par des traducteurs professionnels. Cela vous permet d?avoir accès, dans votre propre langue, à l?ensemble des articles de la base de connaissances rédigés originellement en langue anglaise. Les articles traduits automatiquement ne sont pas toujours parfaits et peuvent comporter des erreurs de vocabulaire, de syntaxe ou de grammaire (probablement semblables aux erreurs que ferait une personne étrangère s?exprimant dans votre langue !). Néanmoins, mis à part ces imperfections, ces articles devraient suffire à vous orienter et à vous aider à résoudre votre problème. Microsoft s?efforce aussi continuellement de faire évoluer son système de traduction automatique.
La version anglaise de cet article est la suivante: 164501
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