Compartir a través de


.kdfiles (Establecer mapa de reemplazo del controlador)

El comando .kdfiles lee un archivo y usa su contenido como mapa de reemplazo del controlador.

.kdfiles MapFile
.kdfiles -m OldDriver NewDriver
.kdfiles -s SaveFile
.kdfiles -c
.kdfiles

Parámetros

MapFile
Especifica el archivo de asignación de reemplazo del controlador que se va a leer.

-M
Agrega una asociación de reemplazo de controladores a la lista de asociaciones actual.

OldDriver
Especifica la ruta de acceso y el nombre de archivo del controlador anterior en el equipo de destino. La sintaxis de OldDriver es la misma que la de la primera línea después de la asignación en un archivo de reemplazo de controladores. Para obtener más información sobre esta sintaxis, vea Mapping Driver Files.

NewDriver
Especifica la ruta de acceso y el nombre de archivo del nuevo controlador. Este controlador puede estar en el equipo host o en alguna otra ubicación de red. La sintaxis de NewDriver es la misma que la de la segunda línea después de la asignación en un archivo de reemplazo de controladores. Para obtener más información sobre esta sintaxis, vea Mapping Driver Files.

-s
Crea un archivo y escribe las asociaciones de reemplazo de controladores actuales en ese archivo.

SaveFile
Especifica el nombre del archivo que se va a crear.

-C
Elimina el mapa de reemplazo de controladores existente. (Esta opción no modifica el propio archivo de asignación. En su lugar, esta opción borra la configuración actual del mapa del depurador).

Entorno

Modos

Solo modo kernel

Destinos

Solo depuración en vivo

Plataformas

Procesadores basados en x86

Información adicional

Para obtener más información sobre y ejemplos de reemplazo de controladores y el reemplazo de otros módulos en modo kernel, una descripción del formato para archivos de mapa de reemplazo de controladores y restricciones para usar esta característica, vea Mapping Driver Files.

Comentarios

Si usa el comando .kdfiles sin parámetros , el depurador muestra la ruta de acceso y el nombre del archivo de mapa de reemplazo del controlador actual y el conjunto actual de asociaciones de reemplazo.

Al ejecutar este comando, se lee el archivo MapFileespecificado. Si no se encuentra el archivo o si no contiene texto en el formato adecuado, el depurador muestra un mensaje que indica "No se pueden cargar asociaciones de archivos".

Si el archivo especificado está en el formato de archivo de mapa de reemplazo de controladores correcto, el depurador carga el contenido del archivo y los usa como mapa de reemplazo del controlador. Este mapa permanece hasta que salga del depurador o hasta que emita otro comando .kdfiles .

Después de leer el archivo, el mapa de reemplazo del controlador no se ve afectado por los cambios posteriores en el archivo (a menos que estos cambios sigan otro comando .kdfiles ).

Reemplazo de archivos en modo de usuario

El reemplazo de archivos en modo de usuario se agregó en la versión 2004 de Windows. Esta compatibilidad permite reemplazar los siguientes archivos en modo de usuario por .kdfiles.

  • ARCHIVOS DLL en modo de usuario (también incluidos NTDLL y KnownDlls)
  • EXE en modo de usuario que son una imagen de proceso principal para CreateProcess

Para usar la compatibilidad con .kdfiles del modo de usuario, primero debe habilitar la carga de símbolos de kernel mediante el !gflag +ksl comando del depurador o configurar las marcas globales ksl en el registro. Para obtener más información sobre gflag, vea !gflag.

En los ejemplos siguientes se muestra el uso común.

.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

El modo de usuario .kdfiles omite los errores para que coincidan con un archivo y no muestra un mensaje de error cuando se produce un error.

Tenga cuidado de calificar adecuadamente las rutas de acceso .kdfiles para el modo de usuario .kdfiles. Es una mala idea simplemente coincidir ntdll.dll (en lugar de system32\ntdll.dll) ya que, de lo contrario, el NTDLL wow64 se reemplazará por el nativo. Pueden surgir situaciones similares con otras coincidencias ambiguas de subcadena.

Después de la compilación 20172, el mecanismo .kdfiles del modo de usuario intentará extraer archivos del depurador hasta que se produzca un error en un intento; a continuación, el nombre de archivo que no se pudo extraer no se volverá a intentar para la sesión de arranque, sin intervención manual del depurador para modificar el estado del sistema de destino. En compilaciones anteriores, el mecanismo .kdfiles del modo de usuario realizará un intento (ya sea correcto o no) para extraer un nombre de archivo determinado por sesión de arranque. Estas directivas reducen la sobrecarga de comunicarse con el depurador para los archivos que no están en la lista kdfiles o que no son accesibles para su reemplazo, como debido a infracciones de uso compartido de procesos que pueden haber cargado un archivo determinado. Debido a este comportamiento, generalmente es aconsejable configurar cualquier archivo para extraer la lista de archivos .kdfiles por adelantado, antes de que se haga referencia a ellos por primera vez.

Tenga en cuenta las limitaciones por no poder reemplazar ya en el uso de archivos de disco, etc. Como muchos archivos DLL del sistema no se pueden intercambiar fácilmente después de que se hayan cargado inicialmente, preestablece la opción gflags +ksl y use .kdfiles para reemplazar los archivos binarios del modo de usuario directamente en el arranque.

Para obtener más información sobre cómo habilitar la depuración de arranque, vea BCDEdit /bootdebug.

Se recomienda usar KDNET de transporte KD de alta velocidad/baja latencia para minimizar los impactos en el rendimiento del sistema.

Requisitos

Versión

Compatible con Windows XP y versiones posteriores del sistema operativo Windows.