Как написать программу для машины

Собственно из-за отсутствия времени решил пока написать про написание прошивки в сжатом виде. Позже когда со временим будет попроще напишу развернутый материал. А на первых парах сегодняшнего материала хватит для понимания что такое написания прошивки.

Все описанное в данной статье делается на ваш страх и риск. Ответственности за поврежденные вами ДВС и понесенные вами убытки не несу.

Начнем с того что прежде чем писать прошивку нам надо иметь:

1) Средства для проведения диагностики автомобиля. Кабеля Consult и диагностического ПО вполне достаточно.

2) ECU с возможностью их перепрошивки.

3) ПО для изменения прошивки ECU. (Я буду использовать Nistune, для моих нужд его триал версии вполне достаточно.)

4) Программатор чипов.

5) Двигатель в идеальном или близком к идеалу состояние.

Остановимся подробнее на состояние двигателя. Т.к. неисправный двигатель может «развалиться» или в лучшем случае свести к минимуму наши труды.

Важно! Структура прошивки // Как работать с ЭБУ // Правила #чип тюнинга


Что требуется от двигателя перед началом тюнинга:

1) Отсутствие кодов ошибок.
2) Свежий воздушный фильтр и исправный MAF.
3) Исправный и правильно настроенный TPS(ДПДЗ)
4) Бензонасос и топливный фильтр — новые или в идеальном состояние. Исправные и чистые форсунки.
5) Правильно выставленное зажигание по стробоскопу. Как правило для Nissan Это 15 градусов (реже 20).
6) Новые или в хорошем состояние свечи зажигания. Для турбомоторов Nisssan я бы рекомендовал свечи производства NGK с зазором 0,6мм

Так же не стоит при тюнинге расчитывать на чудо. К примеру если мы имеем полный сток SR20DET, то по MAF-у мы упираемся в потолок равный 290 лс, а по форсункам в 280. И превышение максимально возможных параметров для форсунок опасно для двигателя смертью.
И написание каждой прошивки свыше 280 лс рассчитывается индивидуально под приобретенные спеки снимающие потолок в 280 л.с.
Так даже для потолка стока в 280 л.с. я бы рекомендовал поставить бензонасос 255 л/ч.

Далее как выглядит написание прошивки в nistune. Собственно писать я её буду под сток двигатель с бустконтроллером, прямоток и нулевиком.

При запуске Nistune с начала выбираем модель под которую будет писаться прошивка. Это очень важный момент т.к. разные ECU имеют разные адресные карты и с «не родным» адресным файлом, ваша машина в лучшем случае просто не заведется.

Фото в бортжурнале Nissan Bluebird (U13)

Далее там появиться меня и ищем в нем свою платформу и двигатель. После выбора так же надо будет выбрать прошивку нашего двигателя.

После того как у нас откроется прошика мы сможем её редактировать. Прошивку тоже желательно выбирать согласно модели своего ECU.

Первым делом я направися во вкладку Limits. Она отвечает за отсечки по TPS, оборотам, скорости.

Фото в бортжурнале Nissan Bluebird (U13)

КАК ЧИПАНУТЬ МАШИНУ САМОМУ | РАЗОБЛАЧЕНИЕ «ЧИП ТЮНЕРОВ»

Изменение параметров не вызывает трудности. После клика мыши открывается не большое меню с бегунком которым и производится регулирование.
Soft Rev limit 1 — отвечает у нас за отсечку по оборотам когда дроссель полностью не открыт.
Hard Rev limit 1 — отвечает у нас за отсечку по оборотам когда дроссель полностью открыт. Не рекомендую эту отсечку трогать со стоковыми валами т.к. сток валы примерно при 7500 тысячах начинают активно деградировать.
Safety Rev limit — отвечает за отсечку оборотов при полностью закрытом дросселе.
Safety TP limit — отвечает за отсечку по допустимому открытию дросселя.
Speed limit 1 — отвечает за отсечку по скорости при полностью открытом дросселе.
Speed limit 2 — отвечает за отсечку по скорости когда дроссель полностью не открыт.

Я трогал только отсечку по скорости, поставил оба параметра в 250 км/ч.

Так же если есть необходимость можно изменить карту MAF и К константу при замене форсунок.

Запчасти на фото: 4501450, 0344748, 4711304. Фото в бортжурнале Nissan Bluebird (U13)

В нистюн это все автоматизированно. Если будете работать с другой программой константу К придется считать в ручную. Формула расчета замены форсунок не сложна (производительность старых форсунок / производительность новых форсунок) * константа старых форсунок = константа новых форсунок.

Т.к. у нас прямоток и нулевик, то нам нужно убрать в ECU ограничения что бы наши улучшения не свелись к нулю (да, да прямоток и нулевик без перепрошивки не дают некого прироста мощности, одни звуковые изменения)

Находим вкладку Limit tables

Запчасти на фото: 4871403, 4821482. Фото в бортжурнале Nissan Bluebird (U13)

Min TPulse width — этот параметр отвечает за длительность впрыска топлива что бы двигатель не заглох когда вы после активного педалирования бросаете газ. Его можно не трогать.

Min TPulse width — этот параметр отвечает за максимальное время впрыска топлива. Это и есть один из ограничителей наших спеков типа нулевика и прямотока. Т.к. двигатель даже получая больше воздуха, в цилиндры не нальет топлива больше чем положено и сделает нулевик, и прямоток бесполезными. Тут можно начиная примерно с 2800 оборотов ставить 175. Не советую без тонкой настройки ставить максимальное значение в 255 т.к. вам скорее всего будет заливать свечи и взорвется выхлоп.

Load cut — отсечка по топливу/бусту. Вторая палка мешающая нашим спекам увеличить мощность нашего мотора. Из-за этого параметра при поступление воздуха больше чем указано мозгу он отсекает подачу топлива. Тут можно выставить везде 255 если вы собираетесь дуть в двигатель больше 1кг. Я ограничился так же 175 от 2800 оборотов.

Читайте также:
Какие бывают программы складского учета

Фото в бортжурнале Nissan Bluebird (U13)

В моем случае я на этом закончил. И сохранил прошивку сразу для записи её на чипы.

Запчасти на фото: 4208470, 030870, 4821482. Фото в бортжурнале Nissan Bluebird (U13)

Но сохраняем в формате odd/even для 256 чипов. Если у вас ECU использует 512 чипы то нужно сохранять одним файлом.

После прихода некоторых спеков напишу про более подробное написание прошивки с расширением топливных карт и прочими интересными вещами.

Источник: www.drive2.ru

Как настроить биндер (AHK) + примеры отыгровок

AutoHotkey — сценарный язык программирования, который существенно упрощает процесс PR отыгровок посредством автоматического ввода в игровой чат ряда подготовленных фраз.

AHK по большей части нужен тем игрокам, которые работают в силовых структурах (таких как LSPD, FIB и др.), ведь именно там высокая концентрация коммуникативных действий, где при нажатии нескольких клавиш вы в считанные секунды можете воспроизводить объемные отыгровки с использованием /do, /me, /try и т.д. (например, при проверке гос. сотрудником угнанной машины на предмет взлома).

В crime фракциях отыгровки понадобятся при ограблении гражданских или похитках.

Настройка AHK и примеры отыгровок

Установка языка

Установка AHK не занимает много времени и не требует специальных знаний, нужно лишь скачать файл с официального сайта и установить языковой пакет на свой компьютер.

Ссылка на скачивание с оф. сайта (v1.1): www.autohotkey.com

Настройка AHK и примеры отыгровок

Настройка AHK и примеры отыгровок

Создание файла

Установив AutoHotkey, открываем контекстное меню нажатием правой кнопки мыши на рабочем столе, создаем файл скрипта, выбрав пункт «Создать › AutoHotkey Script», и открываем его любым доступным редактором (например, Блокнот).

Настройка AHK и примеры отыгровок

Написание отыгровок

Разберем принцип написания кода на примере простой отыгровки.

Numpad7 ::
<
Sendinput ,
Sleep , 200
Sendinput /do Ключ-карта находится на поясе.
Sleep , 2200
Sendinput ,
Sleep , 200
Sendinput /me снял ключ-карту с пояса, открыл КПЗ и провел туда задержанного
Sleep , 2200
Sendinput ,
Sleep , 200
Sendinput /me закрыл КПЗ и повесил ключ-карту на пояс
Return
>

Numpad7 :: — клавиша (7 на цифровом блоке клавиатуры), по нажатию которой будет воспроизводиться сценарий в синих скобках.

Сокращение клавиш: # — Win, ! — Alt, ^ — Ctrl, + — Shift (например, !6 :: — среагирует на нажатие сочетания клавиш Alt + 6 )

Sendinput , — нажимает клавишу F6 , которая открывает форму ввода в игровой чат.

Sleep , 200 — ожидание/задержка в ms после открытия формы ввода в чат.

Sleep , 2200 — ожидание/задержка в ms после отправки текста/отыгровки в игровой чат.

Sleep необходимо указывать между каждым действием, например, нажали F6 — подождали, ввели текст в поле и отправили в чат — подождали

Если код будет сбоить, можете увеличить задержку на 10-20%.

Sendinput … — вводит в поле заданный текст/отыгровку и нажимает клавишу Enter .

При необходимости ввести символ # ! ^ + , заключите его в фигурные скобки —

Return — оператор, который возвращает результат воспроизведения/выполнения функции (перед Return не нужно указывать Sleep ).

Скачать файл с примерами отыгровок: TEST_AHK.rar (Яндекс Диск)

Настройка AHK и примеры отыгровок

Работа скрипта

Наполнив файл нужными отыгровками, сохраняем его и запускаем, кликнув на значок правой кнопкой мыши и выбрав пункт «Run Script». Если вы все сделали правильно, то на панели задач появится зеленая иконка с буквой «H». Теперь, находясь в игре, при каждом нажатии ранее заданных клавиш будут проигрываться относящиеся к ним сценарии.

Выбрав «Exit» в контекстном меню на иконке в трее, вы завершите работу скрипта.

Источник: gta5rp.info

Написание Hello World драйвера Windows (KMDF)

В этой статье описывается, как написать небольшой универсальный драйвер Windows с помощью Kernel-Mode Driver Framework (KMDF), а затем развернуть и установить драйвер на отдельном компьютере.

Чтобы приступить к работе, убедитесь, что у вас установлены Microsoft Visual Studio, windows SDK и комплект драйверов Windows (WDK).

Создание и сборка драйвера

Снимок экрана: диалоговое окно создания проекта Visual Studio с выбранным драйвером режима ядра.

  1. Откройте среду Microsoft Visual Studio. В меню Файл выберите Пункт Создать > проект.
  2. В диалоговом окне Создание проекта выберите C++ в раскрывающемся списке слева, в среднем раскрывающемся списке выберите Windows , а в раскрывающемся списке справа выберите Драйвер .
  3. Выберите Драйвер режима ядра, пустой (KMDF) из списка типов проектов. Выберите Далее.
  4. В диалоговом окне Настройка нового проекта введите «KmdfHelloWorld» в поле Имя проекта .

Примечание При создании нового драйвера KMDF или UMDF необходимо выбрать имя драйвера, которое содержит не более 32 символов. Это ограничение длины определяется в wdfglobals.h.

  • В поле Расположение введите каталог, в котором вы хотите создать проект.
  • Установите флажок Разместить решение и проект в одном каталоге и выберите Создать. Снимок экрана: диалоговое окно настройки новой конфигурации проекта в Visual Studio. Выделена кнопка Создать.Visual Studio создает один проект и решение. Вы можете просмотреть их в обозревателе решений. (Если окно Обозреватель решений не отображается, выберите Обозреватель решений в меню Вид.) Решение содержит проект драйвера с именем KmdfHelloWorld. Снимок экрана: окно обозревателя решений Visual Studio, показывающее решение и пустой проект драйвера KmdfHelloWorld.
  • В окне Обозреватель решений выберите и удерживайте (или щелкните правой кнопкой мыши) проект KmdfHelloWorld и выберите Configuration Manager. Выберите конфигурацию и платформу для проекта драйвера. Например, выберите Отладка и x64.
  • В окне Обозреватель решений снова выберите и удерживайте (или щелкните правой кнопкой мыши) проект KmdfHelloWorld, выберите Добавить, а затем — Новый элемент.
  • В диалоговом окне Добавление нового элемента выберите Файл C++. В поле Имя введите Driver.c.
  • Примечание Расширение имени файла — .c, а не .cpp.

    Снимок экрана: окно обозревателя решений Visual Studio с файлом driver.c, добавленным в проект драйвера.

    Выберите Добавить. Файл Driver.c будет добавлен в раздел Исходные файлы, как показано здесь.

    Написание первого кода драйвера

    Теперь, когда вы создали пустой проект Hello World и добавили исходный файл Driver.c, вы напишете самый простой код, необходимый для запуска драйвера, реализовав две основные функции обратного вызова событий.

      В Driver.c начните с включения следующих заголовков:
    Читайте также:
    Ncstudio не запускается программа

    #include #include

    Совет Если вы не можете добавить Ntddk.h , откройте раздел Конфигурация —> C/C++ —> Общие —> Дополнительные каталоги включения и добавьте C:Program Files (x86)Windows Kits10Include\km , заменив соответствующим каталогом в установке WDK.

    DRIVER_INITIALIZE DriverEntry; EVT_WDF_DRIVER_DEVICE_ADD KmdfHelloWorldEvtDeviceAdd;
    NTSTATUS DriverEntry( _In_ PDRIVER_OBJECT DriverObject, _In_ PUNICODE_STRING RegistryPath ) < // NTSTATUS variable to record success or failure NTSTATUS status = STATUS_SUCCESS; // Allocate the driver configuration object WDF_DRIVER_CONFIG config; // Print «Hello World» for DriverEntry KdPrintEx(( DPFLTR_IHVDRIVER_ID, DPFLTR_INFO_LEVEL, «KmdfHelloWorld: DriverEntryn» )); // Initialize the driver configuration object to register the // entry point for the EvtDeviceAdd callback, KmdfHelloWorldEvtDeviceAdd WDF_DRIVER_CONFIG_INIT( // Finally, create the driver object status = WdfDriverCreate(DriverObject, RegistryPath, WDF_NO_OBJECT_ATTRIBUTES, return status; >

    DriverEntry — это точка входа для всех драйверов, как Main() и для многих приложений в пользовательском режиме. Задача DriverEntry — инициализировать структуры и ресурсы на уровне драйвера. В этом примере вы напечатали «Hello World» для DriverEntry, настроили объект driver для регистрации точки обратного вызова EvtDeviceAdd, а затем создали объект драйвера и вернули его. Объект драйвера выступает в качестве родительского объекта для всех других объектов платформы, которые можно создать в драйвере, включая объекты устройств, очереди ввода-вывода, таймеры, спин-блокировки и многое другое. Дополнительные сведения об объектах платформы см. в статье Общие сведения об объектах платформы.

    Совет Для DriverEntry настоятельно рекомендуется оставить имя DriverEntry, чтобы упростить анализ кода и отладку.

    NTSTATUS KmdfHelloWorldEvtDeviceAdd( _In_ WDFDRIVER Driver, _Inout_ PWDFDEVICE_INIT DeviceInit ) < // We’re not using the driver object, // so we need to mark it as unreferenced UNREFERENCED_PARAMETER(Driver); NTSTATUS status; // Allocate the device object WDFDEVICE hDevice; // Print «Hello World» KdPrintEx(( DPFLTR_IHVDRIVER_ID, DPFLTR_INFO_LEVEL, «KmdfHelloWorld: KmdfHelloWorldEvtDeviceAddn» )); // Create the device object status = WdfDeviceCreate(hDevice ); return status; >

    Функция EvtDeviceAdd вызывается системой, когда обнаруживает, что устройство прибыло. Его задача заключается в инициализации структур и ресурсов для этого устройства. В этом примере вы просто распечатали сообщение «Hello World» для EvtDeviceAdd, создали объект устройства и вернули его. В других записываемых вами драйверах можно создавать очереди ввода-вывода для оборудования, настраивать хранилище контекста устройства для сведений, относящихся к устройству, или выполнять другие задачи, необходимые для подготовки устройства.

    Совет Чтобы добавить обратный вызов устройства, обратите внимание, как вы назвали его с именем драйвера в качестве префикса (KmdfHelloWorldEvtDeviceAdd). Как правило, рекомендуется именовать функции драйвера таким образом, чтобы отличать их от функций других драйверов. DriverEntry — это единственное имя.

    #include #include DRIVER_INITIALIZE DriverEntry; EVT_WDF_DRIVER_DEVICE_ADD KmdfHelloWorldEvtDeviceAdd; NTSTATUS DriverEntry( _In_ PDRIVER_OBJECT DriverObject, _In_ PUNICODE_STRING RegistryPath ) < // NTSTATUS variable to record success or failure NTSTATUS status = STATUS_SUCCESS; // Allocate the driver configuration object WDF_DRIVER_CONFIG config; // Print «Hello World» for DriverEntry KdPrintEx(( DPFLTR_IHVDRIVER_ID, DPFLTR_INFO_LEVEL, «KmdfHelloWorld: DriverEntryn» )); // Initialize the driver configuration object to register the // entry point for the EvtDeviceAdd callback, KmdfHelloWorldEvtDeviceAdd WDF_DRIVER_CONFIG_INIT( // Finally, create the driver object status = WdfDriverCreate(DriverObject, RegistryPath, WDF_NO_OBJECT_ATTRIBUTES, return status; >NTSTATUS KmdfHelloWorldEvtDeviceAdd( _In_ WDFDRIVER Driver, _Inout_ PWDFDEVICE_INIT DeviceInit ) < // We’re not using the driver object, // so we need to mark it as unreferenced UNREFERENCED_PARAMETER(Driver); NTSTATUS status; // Allocate the device object WDFDEVICE hDevice; // Print «Hello World» KdPrintEx(( DPFLTR_IHVDRIVER_ID, DPFLTR_INFO_LEVEL, «KmdfHelloWorld: KmdfHelloWorldEvtDeviceAddn» )); // Create the device object status = WdfDeviceCreate(hDevice ); return status; >

    В этом примере показана основная концепция драйверов: это «коллекция обратных вызовов», которые после инициализации находятся и ожидают, пока система вызовет их, когда ей что-то нужно. Системный вызов может быть событием поступления нового устройства, запросом ввода-вывода из приложения пользовательского режима, событием выключения системы питания, запросом от другого драйвера или событием неожиданного удаления, когда пользователь неожиданно отключает устройство. К счастью, чтобы сказать «Hello World», вам нужно только беспокоиться о создании драйвера и устройства.

    Далее вы создадите драйвер.

    Сборка драйвера

    1. В окне Обозреватель решений выберите и удерживайте (или щелкните правой кнопкой мыши) Решение «KmdfHelloWorld» (1 проект) и выберите Configuration Manager. Выберите конфигурацию и платформу для проекта драйвера. Для этого упражнения мы выбираем Отладка и x64.
    2. В окне Обозреватель решений выберите и удерживайте (или щелкните правой кнопкой мыши) KmdfHelloWorld и выберите Свойства. В разделе Параметры трассировки > Wpp установите для параметра Запустить трассировку Wpp значение Нет. Нажмите кнопку Apply (Применить), а затем — ОК.
    3. Чтобы выполнить сборку драйвера, выберите в меню Сборкапункт Сборка решения. Visual Studio отображает ход выполнения сборки в окне Вывода . (Если окно Вывод не отображается, выберите Вывод в меню Вид .) Убедився, что решение успешно создано, можно закрыть Visual Studio.
    4. Чтобы просмотреть встроенный драйвер, в проводник перейдите в папку KmdfHelloWorld, а затем в папку x64DebugKmdfHelloWorld. В папку входят:
      • KmdfHelloWorld.sys — файл драйвера в режиме ядра.
      • KmdfHelloWorld.inf — информационный файл, который Windows использует при установке драйвера.
      • KmdfHelloWorld.cat — файл каталога, используемый установщиком для проверки тестовой сигнатуры драйвера.

      Если вы видите DriverVer set to a date in the future при сборке драйвера, измените параметры проекта драйвера, чтобы Inf2Cat установил . /uselocaltime Для этого используйте свойства конфигурации-Inf2Cat-General-Use>>> Local Time. Теперь и Stampinf , и Inf2Cat используют местное время.

      Читайте также:
      Программа перспектива или планета знаний

      Развертывание драйвера

      Обычно при тестировании и отладке драйвера отладчик и драйвер выполняются на разных компьютерах. Компьютер, на котором выполняется отладчик, называется главным компьютером, а компьютер, на котором выполняется драйвер, — конечным компьютером. Целевой компьютер также называется тестовый компьютер.

      До сих пор вы использовали Visual Studio для создания драйвера на хост-компьютере. Теперь необходимо настроить целевой компьютер.

      Совет При выполнении действий по автоматической подготовке целевого компьютера с помощью сетевого кабеля запишите порт и ключ. Они будут использоваться позже на этапе отладки. В этом примере мы будем использовать 50000 в качестве порта и 1.2.3.4 в качестве ключа. В сценариях отладки реальных драйверов рекомендуется использовать ключ, созданный KDNET. Дополнительные сведения об использовании KDNET для создания случайного ключа см. в разделе Пошаговая лабораторная работа драйверов отладки (режим ядра Sysvad).

      Снимок экрана: окно страниц свойств kmdfhelloworld с выбранной установкой драйвера развертывания.

    5. На хост-компьютере откройте решение в Visual Studio. Вы можете дважды щелкнуть файл решения KmdfHelloWorld.sln в папке KmdfHelloWorld.
    6. В окне Обозреватель решений выберите и удерживайте (или щелкните правой кнопкой мыши) проект KmdfHelloWorld, а затем выберите Свойства.
    7. В окне Страницы свойств KmdfHelloWorld перейдите к разделу Свойства > конфигурации Драйвер Установка > развертывания, как показано ниже.
    8. Установите флажок Удалить предыдущие версии драйверов перед развертыванием.
    9. В поле Имя целевого устройства выберите имя компьютера, настроенного для тестирования и отладки. В этом упражнении используется компьютер с именем MyTestComputer.
    10. Выберите Hardware ID Driver Update (Обновление драйвера) и введите идентификатор оборудования для драйвера. В этом упражнении используется идентификатор оборудования RootKmdfHelloWorld. Щелкните ОК.
    11. Примечание В этом упражнении идентификатор оборудования не идентифицирует реальную часть оборудования. Он определяет мнимое устройство, которому будет предоставлено место в дереве устройств в качестве дочернего по отношению к корневому узлу.

      Для реального оборудования не выбирайте Обновление драйвера идентификатора оборудования; Вместо этого выберите Установить и проверить. Вы увидите идентификатор оборудования в файле сведений о драйвере (INF). В окне Обозреватель решений перейдите в раздел Файлы драйвера KmdfHelloWorld >и дважды щелкните KmdfHelloWorld.inf. Идентификатор оборудования находится в разделе [Standard.NT$ARCH$].

      [Standard.NT$ARCH$] %KmdfHelloWorld.DeviceDesc%=KmdfHelloWorld_Device, RootKmdfHelloWorld

      Установка драйвера

      Теперь, когда драйвер Hello World развернут на целевом компьютере, вы установите драйвер. Когда вы ранее подготовили целевой компьютер с помощью Visual Studio с помощью параметра «Автоматически «, Visual Studio настраивает целевой компьютер для запуска тестовых драйверов с подписанным знаком в рамках процесса подготовки. Теперь достаточно установить драйвер с помощью средства DevCon.

      Снимок экрана: предупреждение об установке драйвера.

      1. На хост-компьютере перейдите в папку Сервис в установке WDK и найдите средство DevCon. Например, найдите следующую папку: C:Program Files (x86)Windows Kits10Toolsx64devcon.exe Скопируйте средство DevCon на удаленный компьютер.
      2. На целевом компьютере установите драйвер, перейдя в папку с файлами драйверов, а затем запустив средство DevCon.
      1. Ниже приведен общий синтаксис средства devcon, который будет использоваться для установки драйвера: Devcon install Inf-файл, необходимый для установки этого драйвера, — KmdfHelloWorld.inf. INF-файл содержит идентификатор оборудования для установки двоичного файла драйвера ,KmdfHelloWorld.sys. Напомним, что идентификатор оборудования, расположенный в INF-файле, имеет значение RootKmdfHelloWorld.
      2. Откройте окно командной строки от имени администратора. Перейдите в папку, содержащую файл .sys встроенного драйвера, и введите следующую команду: devcon install kmdfhelloworld.inf rootkmdfhelloworld Если появляется сообщение об ошибке о том, что devcon не распознается, попробуйте добавить путь к средству devcon . Например, если вы скопировали его в папку на целевом компьютере с именем C:Tools, попробуйте использовать следующую команду: c:toolsdevcon install kmdfhelloworld.inf rootkmdfhelloworld Появится диалоговое окно, указывающее, что тестовый драйвер является драйвером без знака. Выберите Установить этот драйвер в любом случае , чтобы продолжить.

      Отладка драйвера

      Теперь, когда вы установили драйвер KmdfHelloWorld на целевом компьютере, вы подключите отладчик удаленно с главного компьютера.

      1. На хост-компьютере откройте окно командной строки с правами администратора. Перейдите в каталог WinDbg.exe. Мы будем использовать x64version WinDbg.exe из комплекта драйверов Windows (WDK), который был установлен в рамках установки комплекта Windows. Ниже приведен путь по умолчанию для WinDbg.exe: C:Program Files (x86)Windows Kits10Debuggersx64
      2. Запустите WinDbg, чтобы подключиться к сеансу отладки ядра на целевом компьютере с помощью следующей команды. Значения порта и ключа должны совпадать с значениями, которые использовались для подготовки целевого компьютера. Мы будем использовать 50000 для порта и 1.2.3.4 для ключа, значения, которые мы использовали на этапе развертывания. Флаг k указывает, что это сеанс отладки ядра. WinDbg -k net_port=50000,key=1.2.3.4
      3. В меню Отладка выберите Пункт Прервать. Отладчик на хост-компьютере войдет в целевой компьютер. В окне Команда отладчика отображается командная строка отладки ядра: kd>.
      4. На этом этапе можно поэкспериментировать с отладчиком, введя команды в командной строке kd> . Например, можно попробовать следующие команды:
        • Lm
        • .sympath
        • .Перезагрузить
        • x KmdfHelloWorld!*
        • Чтобы снова запустить целевой компьютер, выберите Перейти в меню Отладка или нажмите клавишу «g», а затем нажмите клавишу «ВВОД».
        • Чтобы остановить сеанс отладки, выберите Пункт Отсоединить отладчика в меню Отладка .

        Важно! Убедитесь, что вы используете команду go, чтобы позволить целевому компьютеру снова запуститься перед выходом из отладчика, иначе целевой компьютер не будет отвечать на ввод с помощью мыши и клавиатуры, так как он по-прежнему разговаривает с отладчиком.

        Подробные пошаговые инструкции по отладке драйверов см. в разделе Отладка универсальных драйверов — пошаговое задание (Режим ядра Echo).

        Дополнительные сведения об удаленной отладке см. в статье Удаленная отладка с помощью WinDbg.

        Источник: learn.microsoft.com

        Рейтинг
        ( Пока оценок нет )
        Загрузка ...
        EFT-Soft.ru