.kdfiles(设置驱动程序替换映射)

.kdfiles 命令读取文件并使用其内容作为驱动程序替换映射。

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

参数

MapFile
指定要读取的驱动程序替换映射文件。

-m
将驱动程序替换关联添加到当前关联列表。

OldDriver
指定目标计算机上的上一个驱动程序的路径和文件名。 OldDriver语法与驱动程序替换文件中映射的第一行的语法相同。 有关此语法的详细信息,请参阅 映射驱动程序文件

NewDriver
指定新驱动程序的路径和文件名。 此驱动程序可以位于主计算机或其他一些网络位置。 NewDriver语法与驱动程序替换文件中映射第二行的语法相同。 有关此语法的详细信息,请参阅 映射驱动程序文件

-s
创建一个文件,并将当前驱动程序替换关联写入该文件。

SaveFile
指定要创建的文件的名称。

-c
删除现有的驱动程序替换映射。 (此选项不会更改映射文件本身。相反,此选项会清除调试器的当前映射设置。

环境

模式

仅内核模式

目标

仅限实时调试

平台

基于 x86 的处理器

其他信息

有关驱动程序替换和其他内核模式模块替换的详细信息、驱动程序替换映射文件的格式说明以及使用此功能的限制,请参阅 映射驱动程序文件

注解

如果使用不带参数的 .kdfiles 命令,调试器将显示当前驱动程序替换映射文件和当前替换关联集的路径和名称。

运行此命令时,将读取指定的 MapFile文件。 如果未找到该文件,或者它不包含格式正确的文本,调试器将显示一条消息,指出“无法加载文件关联”。

如果指定的文件采用正确的驱动程序替换映射文件格式,调试器将加载文件的内容,并将其用作驱动程序替换映射。 此映射将一直保留,直到退出调试程序,或发出另一个 .kdfiles 命令。

读取文件后,驱动程序替换映射不受文件后续更改的影响(除非这些更改后跟另一个 .kdfiles 命令)。

用户模式文件替换

用户模式文件替换已在 Windows 版本 2004 中添加。 此支持使以下用户模式文件能够替换为 .kdfiles。

  • 用户模式 DLL(还包括 NTDLL 和 KnownDlls)
  • 作为 CreateProcess 主进程映像的用户模式 EXE

若要使用用户模式 .kdfiles 支持,首先需要使用调试器命令启用内核符号加载 !gflag +ksl ,或在注册表中配置 ksl 全局标志。 有关 gflag 的详细信息,请参阅 !gflag

以下示例演示了常见用法。

.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

用户模式 .kdfiles 忽略与文件匹配的任何失败,并在发生故障时不显示错误消息。

请注意适当限定用户模式 .kdfiles 的 .kdfiles 路径。 最好只是匹配ntdll.dll(而不是 system32\ntdll.dll),否则 Wow64 NTDLL 将替换为本机。 其他不明确的子字符串匹配可能会出现类似的情况。

生成 20172 后,用户模式 .kdfiles 机制将尝试从调试器拉取文件,直到尝试失败;然后,在调试器进行手动干预以修改目标系统状态的情况下,不会再次尝试拉取未能拉取的文件名。 在早期版本中,用户模式 .kdfiles 机制将尝试(无论是否成功)在每个启动会话中拉取给定文件名。 这些策略减少了与调试器通信的开销,这些文件不在 kdfiles 列表中,或者由于可能已加载给定文件的进程发生共享冲突而无法访问的替换文件。 由于此行为,通常建议将任何文件配置为提前拉取 .kdfiles 列表,然后才能首次引用这些文件。

请注意无法替换已在使用磁盘文件中等的限制。由于许多系统 DLL 在最初加载后不容易进行热交换,因此预设 gflags +ksl 选项并使用 .kdfiles 直接在启动时替换任何用户模式二进制文件。

有关启用启动调试的详细信息,请参阅 BCDEdit /bootdebug

建议使用高速/低延迟 KD 传输 KDNET 来最大程度地降低系统性能影响。

要求

版本

在 Windows XP 和更高版本的 Windows 操作系统中受支持。