.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. Эта поддержка позволяет заменить следующие файлы пользовательского режима на KDFILE.
- Библиотеки DLL в режиме пользователя (включая NTDLL и Известные значения)
- EXEs в пользовательском режиме, которые являются основным образом процесса для CreateProcess
Чтобы использовать поддержку 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 для KDfile в пользовательском режиме. Это плохая идея просто соответствовать ntdll.dll (вместо system32\ntdll.dll), так как в противном случае Wow64 NTDLL будет заменен собственным. Аналогичные ситуации могут возникнуть с другими неоднозначными совпадениями подстроки.
После сборки 20172 механизм Kdfiles в пользовательском режиме попытается извлечь файлы из отладчика до тех пор, пока одна попытка не завершится ошибкой; Затем имя файла, которое не удалось извлечь, не будет выполнено повторно для сеанса загрузки без ручного вмешательства от отладчика для изменения состояния целевой системы. В предыдущих сборках механизм Kdfiles пользовательского режима будет предпринять одну попытку (успешно или нет), чтобы извлечь заданное имя файла на сеанс загрузки. Эти политики снижают затраты на обмен данными с отладчиком для файлов, которые не находятся в списке kdfiles или недоступны для замены, например из-за нарушений общего доступа от процессов, которые, возможно, уже загружали заданный файл. Из-за этого обычно рекомендуется настроить все файлы для извлечения в списке Kdfiles заранее, прежде чем они сначала будут ссылаться.
Помните об ограничениях, которые не удается заменить уже в файлах диска и т. д. Так как многие системные библиотеки DLL не будут легко переключаться после первоначальной загрузки, предустановите параметр gflags +ksl и используйте Kdfiles для замены любых двоичных файлов в режиме пользователя прямо во время загрузки.
Дополнительные сведения о включении отладки загрузки см. в статье BCDEdit /bootdebug.
Использование KDNET транспорта KDNET с высокой скоростью и низкой задержкой рекомендуется минимизировать влияние на производительность системы.
Требования
Версия |
Поддерживается в Windows XP и более поздних версиях операционной системы Windows. |