Поделиться через


Ошибка InfVerif 2084

Сведения об ошибке

Следующее сообщение об ошибке создается кодом ошибки 2084:

Service binary '<value>' should reference a CopyFiles destination file.

Эта ошибка возникает, когда файл, указанный в объявлении службы, не входит в состав пакета драйвера. InfVerif проверяет наличие соответствующей операции копирования файлов для каждого двоичного файла в пакете драйвера.

Файл может быть опущен полностью из директив CopyFiles этого INF, или он может присутствовать для некоторых архитектур или версий ОС, но не все из них. Убедитесь, что он копируется для версии архитектуры и ОС, в которой возникает ошибка.

Причины

Typo

Распространенной причиной является опечатка в двоичном объявлении службы или разделе CopyFiles.

[MyCopyFiles]
Binary1.sys

...
[MyServiceInstallSection]
ServiceBinary=%13%\Binar1y.sys

В приведенном выше примере в пути к двоичному файлу имеется опечатка, где Binar1y.sys он указан вместо Binary1.sys.

Двоичный файл "Входящие"

Некоторые двоичные файлы в папке "Входящие" используются в качестве драйвера функции или фильтра для устройства. Исторически эти двоичные файлы можно использовать непосредственно в объявлении службы, но Для Windows 11 и более новой требуется правильная ссылка на них с помощью директив Include и Needs .

Сведения о WUDFRd.sys см. в разделе "Указание отражателя" в INF-файле.

Для mshidkmdf.sys при использовании mshidkmdf.sys в качестве драйвера функции

[DDInstall]
Include=MsHidKmdf.inf
Needs=MsHidKmdf.NT
; also include any existing DDInstall directives

[DDInstall.HW]
Include=MsHidKmdf.inf
Needs=MsHidKmdf.NT.HW
; also include any existing DDInstall.HW directives

[DDInstall.Services]
Include=MsHidKmdf.inf
Needs=MsHidKmdf.NT.Services
; also include any existing any DDInstall.Services directives

Чтобы использовать mshidkmdf.sys в качестве драйвера фильтра, следуйте приведенному выше шаблону, но используйте одно из приведенных ниже имен разделов вместо MsHidKmdf.NT.*, заменив имя во всех трех разделах:

Верхний фильтр: MsHidKmdf_UpperFilter.NT Нижний фильтр: MsHidKmdf_LowerFilter.NT

При использовании разделов фильтра необходимо также включить следующий шаблон:

[DDInstall.Filters]
Include=MsHidKmdf.inf
Needs=MsHidKmdf_UpperFilter.NT.Filters

Где MsHidKmdf_UpperFilter.NT.Filters следует использовать для установки WUDFRD в качестве верхнего фильтра и MsHidKmdf_LowerFilter.NT для нижнего фильтра.

Отсутствующие кавычки

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

ServiceBinary=%13%\Sub Directory\Binary.dll

Из-за пробела в пути система обрабатывает это как двоичный путь %13%\Sub с аргументами Directory\Binary.dll, и эта ошибка отображается, так как %13%\Sub не является допустимым двоичным файлом. Кавычки следует использовать для указания того, что это один двоичный путь, где синтаксис INF использует тройные кавычки. Ниже устранена эта ошибка:

ServiceBinary="""%13%\Sub Directory\Binary.dll"""