Приветствую всех! Понадобилось мне снова поковыряться в драйверах и решил я попробовать новое слово в отладке, а именно запустить удаленную отладку на виртуальной машине с Windows 8.1 x64. Все первоначальные шаги прошли успешно, но не могу запустить отладку из Visual Studio. В настройках проекта стоят следующие настройки: отладчик: Debugging tools for Windows - Kernel Debugger и указано имя удаленной машины. Но когда я нажимаю debug получаю deployment error. В логе пишется ошибка очень понятная - Error:The method or operation is not implemented. В общем я не особо могу понять что происходит..
https://docs.microsoft.com/en-us/wi...network-debugging-connection-in-visual-studio пруф С Win 8 уже отлаживаются
Там все чуточку сложнее, там собираются пакет и он пересылается на машину для отладки и там устанавливается. После этого запускается драйвер и начинается отладка. Но по сути все сводится именно к одному клику
Вам вообще не следует трогать ядро. Вы его не знаете, да вы даже в примитивах не можете разобраться, судя по вашим темам, элементарный гуй в юм для вас засада. Это полное отсутствие способности обучаться и тем более рационального мышления, не способность решать алгоритмические задачи, не понимание этого.
Ну ок . Вопросы к вам . Как же он туда устанавливается (по вашему, раз вы разобрались)? И с какого момента начинается отладка? Indy_, да это понятно. Человек просто даже разобраться не хочет. Идет по пути наименьшего сопротивления.
Если бы я разобрался, то поднимать бы эту тему не стал. Отладчик к машине у меня подцепляется и работает, осталась вторая часть - сделать deploy драйвера. Раньше я переносил драйвер вручную, на виртуальную машину или реальную. Захотелось это сделать автоматически - есть официальная мелкомягкая документация - https://docs.microsoft.com/ru-ru/wi...ngstarted/provision-a-target-computer-wdk-8-1 , которая описывает процесс настройки процесса по автоматической отправке драйвера на целевую машину. Дословно: Но сведений для полной настройки процесса там не достаточно, я много чего успел попробовать, но процесс не завелся. К вашему вопросу - Драйвер может быть установлен двумя способами - программно, например с помощью KmdManager, и с помощью inf файла. В данном случае явно используется второй метод. То есть драйвер устанавливает с помощью inf файла, запускается системой и отладчик останавливается на первой точке останова, которая ему встретится в самом драйвере.
drem1lin, Отладка драйверов не предназначена для обычных кодеров/юзеров, драйвер часть ОС и нужно понимать как она устроена. Нельзя просто открыть это отладчиком без понимания и добиться успеха. У вас были проблемы даже с юм, отсюда и сделан вывод что вам рано это трогать.
Мне уже приходилось работать с драйверами пару лет назад, не очень плотно, но для решения необходимых задач хватало. А та часть, о которой я спрашиваю относится по мнению самого же майкрософта к "gettingstarted", т.е. с содержимым статьи должен справиться начинающий. А проблемы возникают у всех людей и не зависят от платформы, языка, и возникают они по разным причинам - из-за запарки или потому что многократное чтение документации и разных статей начинает образовывать кашу в голове. Мы все не идеальны.
Вот в этом и проблема скорее всего. Для начала скажите - есть ли у вашего подопытного драйвера inf файл? Запускается ли он в ручную через Inf установку?
А еще лучше - не забивайте себе голову и ставьте ВиртуалКД. PS На сайте(официальном) подробнейший мануал для запуска и настройки. С картинками.
Инф файл есть и приводит к установке и запуску драйвера, и что бы не быть голословным приложу inf файл, и логи запуска деплоя с цели и хоста.
Благодарю вас за ответ, на самом деле я думал, что указав класс устройства, то и GUID он сам подберет по имени. Я в ручную указал GUID и продвинулся в установке дальше, но появилась другая ошибка я так понимаю, что ему не нравится устанавливать драйвера в этот класс. Соответственно в какой класс надо установить драйвер, не привязанный к устройству? Я попробовал классы LegacyDriver, System, Unknown.
drem1lin, такого не бывает. inf всегда описывают оборудование. Будь это реальные физ устройства или виртуальные или фильтры и минипорты. Всегда есть класс. Если ваш драйвер не обслуживает ни одно устройство или класс устройств или еще что - то вы его с помощью Inf Не сможете загрузить.
В данный момент этот драйвер состоит только из Unload и DriverEntry с DbgBreakPoint(). Но с помощью приведенного инф он устанавливается и запускается, не зависимо от того, какой класс я указал. Т.е. метод от Microsoft что то проверяет дополнительно. Вообще этот драйвер планировался как некий макет для эксперимента, который надо провести из ядра, и не должен быть связан с каким либо устройством, как драйвер антивируса, например.