EnglishFrenchGermanItalianPortugueseSpanish

Использование мэппинга драйверов

В отладчике WinDbg существует специальная возможность – мэппинг драйвера. Отладчик может перехватить момент загрузки драйвера на тестовой машине и загрузить в память копию драйвера с машины разработчика. Эта способность избавляет разработчика от проблемы копирования файла драйвера на тестовую машину и, конечно, от забывчивости.

Прежде всего, необходимо внести в переменные окружения компьютера разработчика параметр _NT_KD_FILES, где значением этого параметра должен быть полный путь до специального map-файла, например, c:\driver.map.

Далее, необходимо создать сам map-файл по выбранному пути с указанным содержимым:

map
\??\C:\1\driver32.sys
C:\project_path\out\debug\driver32.sys

Во второй строке файла необходимо указать путь до драйвера на тестовой машине (например, на VmWare) так, как он указан в реестре данного сервиса. В третьей строке необходимо указать путь до файла на машине разработчика. Удобнее всего использовать путь до директории, в которой собирается chk-билд драйвера. Тогда каждый раз при загрузке драйвера будет загружена его новая версия.

В отладчике процесс загрузки драйвера с машины разработчика на тестовую машину выглядит примерно так:

kd> g
KD: Accessing ‘C:\project_path\out \debug\driver32.sys’ (\??\C:\1\driver32.sys)
File size 91K…………………………….
MmLoadSystemImage: Pulled \??\C:\1\driver32.sys from kd

Удачной отладки!

Читайте также:

Share

2 comments to Использование мэппинга драйверов

  • kernel-net

    можно прямо из отладчика:
    .kdfiles -m \systemroot\system32\drivers\driver32.sys C:\1\driver32.sys

    чтобы руки не ломать, можно сохранить:
    .kdfiles -s drv32

    а потом загружать так:
    .kdfiles drv32

    сбросить меппинг:
    .kdfiles -c

    если работать с несколькими драйверами, так может быть удобнее, чем в переменную окружения забивать

    Ну и надо помнить, что так просто с бутовыми драйверами не прокатит

Leave a Reply

  

  

  

You can use these HTML tags

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" line="" escaped="" highlight="">