Драйвер устройства не устанавливается ни на какие устройства, используйте примитивный драйвер, если это предусмотрено в Visual Studio 2019?

#visual-studio #visual-studio-2019 #wdk #windows-kernel #inf

#visual-studio #visual-studio-2019 #wdk #windows-ядро #inf

Вопрос:

Я обновил свою Visual Studio с 2017 по 2019 год, и, похоже, они внесли некоторые фантастические изменения в Visual Studio в последней версии, потому что у меня не было этой проблемы в VS 2017, даже компиляция простых драйверов hello world, которые вы можете найти где угодно, больше не компилируется, и они выдают следующую ошибку:

 Device driver does not install on any devices, use primitive driver if this is intended
  

Похоже, что это связано с INF-файлом по умолчанию :

https://github.com/MicrosoftDocs/windows-driver-docs/issues/2067

но ответы там были бесполезными, и не помогли изменения, упомянутые для INF-файла, это мой INF-файл, который является INF по умолчанию в VS 2019 :

 ;
; HelloWorld.inf
;

[Version]
Signature="$WINDOWS NT$"
Class=System
ClassGuid={4d36e97d-e325-11ce-bfc1-08002be10318}
Provider=%ManufacturerName%
DriverVer=
CatalogFile=HelloWorld.cat
PnpLockDown=1

[DestinationDirs]
DefaultDestDir = 12


[SourceDisksNames]
1 = %DiskName%,,,""

[SourceDisksFiles]


[Manufacturer]
%ManufacturerName%=Standard,NT$ARCH$

[Standard.NT$ARCH$]


[Strings]
ManufacturerName="<Your manufacturer name>" ;TODO: Replace with your manufacturer name
ClassName=""
DiskName="HelloWorld Source Disk"
  

Как я должен его изменить?

Ответ №1:

чтобы решить эту проблему, просто удалите inf файл из Visual Studio и перекомпилируйте, и тогда он будет работать.

Ответ №2:

Это вызвано новой концепцией «Примитивных драйверов» в Windows 10 1903. Цель состоит в том, чтобы явно моделировать драйверы, которые на самом деле не связаны с устройством. Подробности см. В документации Microsoft по примитивным драйверам.

Ваш inf не содержит ни одного из разделов, для которых есть инструкции по миграции, но в нем есть Manufacturer раздел, который не разрешен для примитивных драйверов. Удалите его, и проверка может завершиться успешно.