Обновление драйверов UMDF во время разработки

StackOverflow https://stackoverflow.com/questions/1993838

  •  22-09-2019
  •  | 
  •  

Вопрос

У меня возникают проблемы с обновлением драйверов UMDF с использованием «DevCon» во время стандартного цикла кода-деплоя-депутата.Проблема в том, что «Обновление Devcon» на самом деле ничего не обновляет, если номер версии или дата файла DLL и файла INF не изменился из того, что хранится в папке кеша драйверов системы.После смягчающей серии экспериментов я обнаружил, что один из способов заставить вещь использовать последние файлы, - выполнить следующее:

  1. Измените параметры, передаваемые на «StampInf.exe» в «makefile.inc», явно установив версию с опцией «-v».
  2. Изменить файл скрипта ресурса ("Driver_name.rc"), чтобы сначала определить VER_USE_OTHER_MAJOR_MINOR_VERпрежде чем включать "ntverp.h"А потом явно определите VER_PRODUCTMAJORVERSION и VER_PRODUCTMINORVERSION.Вы заметите, что эта система не позволяет нам изменить сборку и числа ревизий.На Win7 это, кажется, исправлено в 7600 и 16385 в "ntverp.h".Это задумано?

Итак, я сначала изменяю «makefile.inc» и установил опцию «-v» на что-то вроде «1.1.7600.16385» вручную, увеличивая незначительную версию для каждой отдельной сборки, а затем изменить файл RC и обновление VER_PRODUCTMINORVERSION с тем же номером.

В качестве альтернативы, если я запускаю командную строку в рамках системной учетной записи, иду и удаляю папку кеша драйвера в «C: Windows System32 Drivestore FileRepository Driver Palper» перед запуском «DevCon», тогда это тоже работает.

Теперь я думаю, что здесь не хватает чего -то довольно простого, так как это кажется довольно болезненным способом сделать это.Пожалуйста помоги!Спасибо!

Это было полезно?

Решение

Почему нельзя просто отключить устройство и заменить выгруженную DLL?Драйвер переустанавливать не нужно, достаточно заменить модуль.Обратите внимание, что вам не следует делать этого во время производства или чего-либо, связанного с клиентами, но если вы пишете драйвер, просто вставьте новый модуль с тем же номером версии.

В Win7 это, кажется, исправлено на 7600 и 16385 в «ntverp.h».Это задумано?

Да, по крайней мере до следующего пакета обновлений.

Другие советы

Как предположил выше Пол Беттс, кажется, что можно просто заменить DLL UMDF непосредственно в папке драйвера (например, c:\windows\system32\drivers\umdf\) после отключения устройства либо в диспетчере устройств, либо с помощью «devcon».Я задал этот вопрос в группе новостей Microsoft по драйверам устройств, прежде чем опубликовать здесь, но не получил удовлетворительного ответа, но некоторые люди в конечном итоге ответили там. после Я разместил здесь!Поэтому я тоже дам ссылку на этот пост:

http://bit.ly/6PDxKT

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top