.kdfiles (Définir la carte de remplacement du pilote)
La commande .kdfiles lit un fichier et utilise son contenu comme mappage de remplacement du pilote.
.kdfiles MapFile
.kdfiles -m OldDriver NewDriver
.kdfiles -s SaveFile
.kdfiles -c
.kdfiles
Paramètres
MapFile
Spécifie le fichier de mappage de remplacement du pilote à lire.
-m
Ajoute une association de remplacement de pilote à la liste d’associations actuelle.
OldDriver
Spécifie le chemin d’accès et le nom de fichier du pilote précédent sur l’ordinateur cible. La syntaxe de OldDriver est la même que celle de la première ligne après la carte dans un fichier de remplacement de pilote. Pour plus d’informations sur cette syntaxe, consultez Mappage des fichiers de pilotes.
NewDriver
Spécifie le chemin d’accès et le nom de fichier du nouveau pilote. Ce pilote peut se trouver sur l’ordinateur hôte ou à un autre emplacement réseau. La syntaxe de NewDriver est la même que celle de la deuxième ligne après la carte dans un fichier de remplacement de pilote. Pour plus d’informations sur cette syntaxe, consultez Mappage des fichiers de pilotes.
-s
Crée un fichier et écrit les associations de remplacement de pilotes actuelles dans ce fichier.
SaveFile
Spécifie le nom du fichier à créer.
-c
Supprime la carte de remplacement de pilote existante. (Cette option ne modifie pas le fichier map lui-même. Au lieu de cela, cette option efface les paramètres de carte actuels du débogueur.)
Environnement
Les modes |
Mode noyau uniquement |
Targets |
Débogage en direct uniquement |
Platforms |
Processeurs x86 |
Informations supplémentaires
Pour plus d’informations sur et des exemples de remplacement de pilote et le remplacement d’autres modules en mode noyau, une description du format des fichiers de mappage de remplacement de pilotes et des restrictions pour l’utilisation de cette fonctionnalité, consultez Mappage des fichiers de pilotes.
Notes
Si vous utilisez la commande .kdfiles sans paramètres, le débogueur affiche le chemin d’accès et le nom du fichier map de remplacement de pilote actuel et l’ensemble actuel d’associations de remplacement.
Lorsque vous exécutez cette commande, le fichier MapFilespécifié est lu. Si le fichier est introuvable ou s’il ne contient pas de texte au format approprié, le débogueur affiche un message indiquant « Impossible de charger des associations de fichiers ».
Si le fichier spécifié est au format de fichier de mappage de remplacement de pilote correct, le débogueur charge le contenu du fichier et les utilise comme carte de remplacement du pilote. Cette carte reste jusqu’à ce que vous quittez le débogueur, ou jusqu’à ce que vous émettez une autre commande .kdfiles .
Une fois le fichier lu, le mappage de remplacement du pilote n’est pas affecté par les modifications suivantes apportées au fichier (sauf si ces modifications sont suivies d’une autre commande .kdfiles ).
Remplacement du fichier en mode utilisateur
Le remplacement du fichier en mode utilisateur a été ajouté dans la version 2004 de Windows. Cette prise en charge permet de remplacer les fichiers en mode utilisateur suivants par des fichiers .kdfiles.
- DLL en mode utilisateur (y compris NTDLL et KnownDlls)
- EXEs en mode utilisateur qui sont une image de processus principale pour CreateProcess
Pour utiliser la prise en charge des fichiers .kdfiles en mode utilisateur, vous devez d’abord activer le chargement des symboles du noyau à l’aide de la !gflag +ksl
commande de débogueur ou configurer les indicateurs globaux ksl dans le Registre. Pour plus d’informations sur gflag, consultez !gflag.
Les exemples suivants illustrent l’utilisation courante.
.kdfiles -m system32\userdll C:\myfiles\my_native_userdll.dll
.kdfiles -m system32\userdll \\server\share\my_native_userdll.dll
.kdfiles -m syswow64\ntdll.dll \\server\share\my_x86_wow64_ntdll.dll
.kdfiles -m system32\userbase.dll \\server\share\my_native_userbase.dll
Le mode utilisateur .kdfiles ignore les échecs de correspondance d’un fichier et n’affiche pas de message d’erreur lorsqu’un échec se produit.
Veillez à qualifier correctement les chemins .kdfiles pour les fichiers .kdfiles en mode utilisateur. C’est une mauvaise idée de faire correspondre simplement ntdll.dll (au lieu de system32\ntdll.dll), car sinon la NTDLL Wow64 sera remplacée par celle native. Des situations similaires peuvent survenir avec d’autres correspondances de sous-chaîne ambiguës.
Après la build 20172, le mécanisme .kdfiles en mode utilisateur tente d’extraire des fichiers du débogueur jusqu’à ce qu’une tentative échoue ; ensuite, le nom de fichier qui n’a pas pu être extrait ne sera pas réessayé pour la session de démarrage, sans intervention manuelle du débogueur pour modifier l’état du système cible. Sur les builds antérieures, le mécanisme .kdfiles en mode utilisateur effectue une tentative (si elle réussit ou non) pour extraire un nom de fichier donné par session de démarrage. Ces stratégies réduisent la surcharge liée à la communication avec le débogueur pour les fichiers qui ne figurent pas dans la liste kdfiles, ou qui sont inaccessibles pour le remplacement, par exemple en raison de violations de partage à partir de processus qui ont peut-être déjà chargé un fichier donné. En raison de ce comportement, il est généralement conseillé de configurer tous les fichiers à extraire dans la liste .kdfiles à l’avant, avant qu’ils ne soient référencés.
Sachez que les limitations ne peuvent pas être remplacées déjà dans les fichiers de disque utilisés, etc. Comme de nombreuses DLL système ne sont pas facilement permutables à chaud après leur chargement initial, préréglage de l’option gflags +ksl et utiliser les fichiers binaires .kdfiles pour remplacer les fichiers binaires en mode utilisateur directement au démarrage.
Pour plus d’informations sur l’activation du débogage de démarrage, consultez BCDEdit /bootdebug.
L’utilisation du KD de transport KDnet à haute vitesse/faible latence est recommandée pour réduire les impacts sur les performances du système.
Spécifications
Version |
Pris en charge dans Windows XP et versions ultérieures du système d’exploitation Windows. |