Driver injection что это

Обновлено: 04.07.2024

Offline Driver Injection

The scripts in this repository can help you to deploy device drivers to an offline Windows installation while the device is booted to Windows PE.

Many methods of installing drivers exist, however, most will require you to specify which driver to install. This is fine if you are deploying to the same model of PC, over and over. But what if you have to install to a wide variety of hardware? Either you have to build the device drivers in to many different images or install them at deployment time manually.

This simple solution will enable you to dynamically inject device drivers into an offline Windows installation, based on device manufacturer and model values which are written into the device firmware (BIOS or UEFI).

To accomplish this, simply collect all of the required device drivers for a particular model of PC you need to image, and stage them in a folder which is named after the device manufacturer and model values, as written to the firmware. This way, you can deploy a 'generic image' - one which does not contain out-of-box device drivers, and dynamically query and inject device drivers at deployment time by performing a lookup for these manufacturer and model values and then injecting the drivers saved to the staged folder containing those drivers.

The main action part of the script is leveraging the DISM (Deployment Image Servicing and Management) command after checking that a path exists which matches the firmware values for the device. DISM is part of Windows PE and included in the Windows ADK. The Windows ADK is not required however, since DISM is built into every version of Windows 10.

The process flow for offline driver injection is described in 2 steps;

Preproduction Phase: where machine info is discovered and drivers are staged to a folder

Production Use: where staged drivers are injected into a device installation, during Windows PE, as follows;

Create a folder named after the values found in step 1. The drivers must be saved to this location, in INF format.

Obtain the device drivers which match the device and copy them to the folder amd64 folder (for 64-bit) or x86 (for 32-bit). These drivers must be in INF format. Executable device drivers will not be injected and are unsupported by DISM.

Tip: If you can boot the device into Windows, you can extract the drivers (best practice is to update them prior to extracting them) from the current installation, and then save them for reuse on other systems which match.

Extract the currently installed Windows device drivers using DISM by opening an elevated command prompt and type the following commands;

When you press enter, DISM will extract all out-of-box drivers to the C:\Drivers folder. You can then place these drivers into the appropriately named folders in your repository as described in steps 1-3 above. This extraction phase should be performed one time per PC model and then you will not need to repeat this step unless you encounter a new device configuration or when you want to update a particular PC model in your driver repository.

  1. Deploy Windows to a device, using Windows PE or a script run during Windows PE.
  1. With the device still booted to Windows PE, and after Windows has been applied to the disk, the drive letters should have temporary letters assigned to them.
  • System Drive = S
  • Windows Drive = W
  • Recovery Driver = R

(UEFI systems will contain additional partitions for MSR and EFI)

While still in Windows PE, connect to the network share where you staged drivers in the preproduction phase, or connect the USB drive (if not using the network method). You can use the NET USE command.

Run the offline-di.cmd script which matches your deployment method (OfflineDI-Net.cmd for network or OfflineDI-USB for USB method) and verify the script successfully connected to the staging folder and injected any drivers found (You will verify they successfully installed during OOBE).

Type Exit , in the Windows PE command prompt, to reboot the computer

The device should boot to OOBE. Press Shift + F10 keys to bring up a command prompt.

Type devmgmt.msc to invoke Device Manager and verify all device drivers are supported. If you still have devices which are unsupported, you should troubleshoot this and retry the deployment and driver injection. Some causes for missed drivers can include;

  • Missing drivers in the staged driver location
  • Missing firmware values for manufacturer or model (in this case, you must manage device drivers using a different method)
  • Improper driver staging (check to be sure you put the drivers into the right location)
  • Drivers added to staging do not match the devices present

Shutdown the device using the Shutdown command. Example; SHUTDOWN -s -t 0

Prepare the device for shipment. Put it into inventory, ship it, or deliver it to the end-user.


Доброе время суток!
Близится тот час когда будим пробовать оживлять "спящую силу". Думаю это произойдёт в ближайшие пару дней!
Однако, как показал первый опыт настройки такого мотора, остались белые пятна, а именно достаточно большая проблема на настройкой нормальной работы на ХХ мои маленьких высокоомных форсунок (2000cc x 4).
Конечно подозрения на эту проблему были, но решил попробовать. Практика показала что НЕТ!
Что именно нет, а то, что даже такой спорт мозг как AEM II не может корректно управлять такими огромными инжекторами. Так устанавливая самые малые задержки все равно очень не стабильная и богатая смесь. Машина очень тяжело заводится ну и куча других сопутствующих косяков…
Решением данной "траблы" является установка так называемого Peak & Hold Injector Driver от компании AEM (как вариант).


Вот собственно такая чудная штучка была приобретена (которая может управлять одновременно до 10-ю инжекторами).
Если коротко, то она делает следующее: когда ток нагрузки достигает 4.1A (AMPS), то модуль управления уменьшает ток нагрузки 1.1А и действует как источник постоянного тока. Это уменьшает рассеивание. В результате мы получаем нормальную работу форсунок и не рваную работу двигателя.
Если это все показать на визуальном примере, то это будет вот так:



На первой картинке (Рис.1) работа с драйвером форсунок (ток форсировки+ток удержания), на 2-й – (Рис.2) та же форсунка с баластным резистором (7 Ом). Белая вертикальная черта отмечает момент срабатывания, а величина «i1OutTime, мсек» (написанная белым) – время срабатывания. Что мы видим?

1. Время срабатывания с драйвером 0,59 мс, с балластом – 1,42 мс (т.е. на 0,83 мс больше). Это говорит о том, что чтобы обеспечить работу ЭМФ на линейном участке (а именно так и должно быть, всё остальное – это извращения от нехорошей жизни), мы можем сделать минимальную длительность импульса в 1-м случае 0,7-0,75 мс, во вторм – 1,5-1,55 мс. Т.е. минимальная подача топлива в случае драйвера в 2 раза меньше, чем в случае балласта.

2. Если мы посмотрим на ток удержания, то в случае драйвера он будет 0,7А, с балластом – 1,3А. Помимо очевидных вещей (больше потребление электроэнергии, больше нагрев катушки) мы имеем ещё и разные времена отпускания. На токовой диаграмме момента закрытия не видно (надо смотреть диаграмму напряжения), но из учебника физики понятно, что время отпускания с меньшего тока будет меньше. Это говорит о том, что максимальная длительность импульса при использовании драйвера будет больше, чем при использовании балласта (при одинаковом периоде импульсов).

3. Что мы имеем в итоге? Что отношение максимальной длительности импульса (т.е. максимальной цикловой подачи) к минимальной, которое называется кратностью форсунки, в случае использования драйвера будет существенно больше, может даже в разы. Т.е. драйвером вы сможете накормить на больших подачах оборотистый двигатель при сохранении нормально холостого хода там, где та же ЭМФ с балластом уже не справится.

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

Большинство стоковых машин работают в режиме Saturated либо с высокоомными форсунками, либо с низкоомными и резисторным блоком. В режиме Saturated в момент открытия форсунок ECU просто подает на них 12V с установленной длительностью. Когда же вы ставите резисторы, ток будет меньше и все настойки на форсунки вашего стокового компа полетят и вызовут массу глюков. В тюнинговых компах есть специальные настройки, которые позволяют бороться с этим, как то Injector Lag ( задержка после подачи сигнала перед началом впрыска), Minimum Injector Open Time ( минимальное время открытия форсунок, этот параметр используется также при инкременте пульса) и Battery Offset ( корректировка длительности пульса от напряжения).

Но никакие настройки никогда не победят механические ограничения!

Намного эффективнее работает режим Peak&Hold. В этом режиме компьютер ( или спец. устройство – Driver) не просто подает 12В, а плавно увеличивает его, пока не достигнет делаемого тока. Обычно для открытия форсунки этот ток составляет 4А. После открытия Driver уменьшает напряжение, пока ток не достигнет порядка 1.5А. Ведь на открытие форсунки требуется намного больше усилий, чем на удержание.
А если все время пропускать через них ток 4А, они перегреются.

Peak&Hold driver не требует наличие каких бы то ни было резисторов!

В стоковых ECU этот метод почти не применяется, я думаю, главным образом, из за дороговизны его применения. А также целесообразности, ведь стоят как правило небольшие по пропускной способности форсунки (550сс макс) и работают на небольшом пиковом давлении топлива ( 4 бара).


Ранее уже писал, ещё два года назад меня настигла ошибка Р1172 "Исправленный минимальный сигнал впрыска (MDP) для топливной форсунки №4 слишком короткий" (По факту 2-я форсунка, т.к на ховере они идут по порядку впрыска 1-3-4-2). После появления ошибки, машина ведёт себя без изменений, за исключением того, что появляется значительная задержка на старте при небольшой нагрузке на колёсах, назад может вообще не ехать, отключается эл педаль газа, при переводе в паркинг нормально набирает обороты, при переводе в драйв/реверс появляется задержка. Общий момент снижается примерно на 25% (оф. инф.). Ошибка сбрасывается только диагностическим прибором, в ЕЛМ её видит только прога Car Scanner. После сброса ошибки до её появления проезжаю 30-200 км, и опять в аварийный режим.
Суть данной ошибки в том:
Дело в том что в момент разгона в топливной рейке находится высокое давление, и в момент отпускания педали газа регулятор перекрывает подачу топлива в насос, именно перекрывает но не сбрасывает, блок управления видя что педаль переведена в нулевое положение закрывает подачу топлива к форсункам. Соответственно расход через форсунки падает до нуля. Давление в рейке будет снижаться только за счет не плотностей в магистрали или за счет статической обратки. И если давление при подходе двигателя к оборотам ХХ не успеет сбросится до нормы получим или звон при переходе на холостые или ошибку по превышению давления, и иные погрешности в работе ДВС.
Сброс давления только за счет статики устраивал не всех.
И в первую очередь с ней столкнулась конструктора из фирмы Делфи чьи форсунки имели маленькую статическую обратку.
Вышли они из положения следующим образом. Поскольку их форсунки обладают огромным быстродействием они в тестплан ввели новый параметр MDP .

MDP — Minimun Drive Pulse
или если по русски минимальный управляющий импульс — импульс при котором начинается впрыск при заданном давлении, для каждой форсунки величина уникальная и прописанная в коде как и другие параметры подачи, компьютер проверяет только мдп так как проверить остальное возможности не имеет, если мдп не совпадает значит с кодом и форсункой проблема
Для чего появился этот параметр, в момент сброса газа для того чтоб сбросить избыточное давление блок управления подает на форсунку минимальный импульс который прописан в коде форсунки. А если просто то это импульсы при которых происходит открытие клапана но не успевает открываться распылитель. Таким образом происходит сброс лишнего давления.
Параметр MDP содержится в коде форсунке, который можно прочитать на самой форсунке, если она новая, или проведя на стенде тестплан форсы с присвоением нового кода.
Я перелопатил пол машины в поисках устранения ошибки: Отремонтировал все форсы, заменил форсу, датчики коленвала, расскоксовки, перебрал проводку, переводил мануалы по ховеру, заменил все драйвера в мозгах, и как итог заменил полностью мозги путём клонирования. Гонял по спец сервисам города Саратова, все берут бабки, но никто сделать не может, был у дилера Хавейл (Боливар), тот меня сразу отшил, даже в рем зону не пустил.
Кстати снимал осцилограмму работы форс, в момент когда ошибки нет, при резком сбросе газа, на форсу подаётся сигнал высокой частоты (пила) (происходит сброс давления через форсу, без открытия распылителя), а когда ошибка горит, ровная полоса, система исключает форсунку.
Меня это дело достало, и я просто снял датчик детонации, в дизеле он отвечает, только за коррекцию топлива, ошибка не появлялась, иногда на холостых только загорается ошибка по датчику детона, но она сама гасла при перезагрузке.
Но покоя мне это дело всё равно не давало. Решил повторно перепрописать форсы, но уже сам диктуя условия и необходимые данные. Прописывали сканматиком, правильно по порядку впрыска 1-3-4-2.
Коды вбивал старые на корпусе форсы новый тесплан я не делал.
Ну и как бы ВСЁ, пока конечно тестирую, но пять норм проехал, пока всё хорошо. Суть в том, что у нас нет сброса адаптаций, НО! при перезаписи, даже если Вы внесёте те же данные форсунок, происходит обнуление коррекций по MDP. Я понимаю так, система выбрала количество коррекций, и без обнуления, новые данные не принимала. И даже, когда поменял ЭБУ, путём клонирования, я перенёс ошибку на новый блок.
Обидно другое, об этом я представлял сразу, и за эту операцию платил деньги, причём неоднократно, (минимум 3 сервиса, по заявлению, эту процедуру выполняли), по итогу вылилось, очень в солидную сумму. .
Всем всего хорошего, не болейте)))


Решил попробовать изготовить приспособление, а точнее его электрическую часть, для промывки форсунок со снятием с двигателя.Промывку форсунок на жемчужинке без снятия уже производил, как приобрёл её.Настало время попробовать сделать это со снятием и визуальным контролем состояния работы форсунок.

Собственно сама схема управления обмоткой простейшая, на силовом полевом транзисторе, оптроне и нескольких резисторах.Покопавшись у себя в закромах, нашел необходимый оптрон РС817, транзистора указанного в схеме IRF740не оказалось в наличии, но исходя из обсуждения схемы на форуме, был заявлен как заменитель IRFZ46.Я нашел в запасах IRFZ40,который в принципе удовлетворяет требованиям со своими 125Вт мощности, 50В сток-исток и 51А прямой ток.Так же он имеет встроенный защитный диод, что благотворно скажется на подавлении тока самоиндукции обмотки форсунки.




И неспешно спаял для проверки работоспособности навесным монтажом(соплями;)


Принёс старенький ноутбук, аккумулятор 12В 7А от бесперебойника и адаптер USB-COM9


Адаптер нужен для эмуляции виртуального ком порта, так как программа INJECTOR написана для ком порта компьютера.
Подал питание на собранную схему, дыма нет, уже не плохое начало)
Подключил адаптер к схеме, к ноутбуку



Ну и краткое видео в ужасающем качестве(((

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