Поделиться через


.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.