InfVerif Error 2084

Error Information

The following error message is generated by error code 2084:

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

This error occurs when a file specified in a service declaration is not included as part of the driver package. InfVerif verifies that there is a corresponding file copy operation for every service binary in the driver package.

The file may be omitted entirely from the CopyFiles directives of this INF, or it may be present for some architectures or OS versions but not all of them. Ensure that it is being copied for the architecture and OS version that the error occurs in.

Causes

Typo

A common cause is a typo in the service binary declaration or the CopyFiles section.

[MyCopyFiles]
Binary1.sys

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

In the above, there is a typo in the path to the binary, where Binar1y.sys is specified instead of Binary1.sys.

Inbox Binary

Some inbox binaries are used as the function or filter driver for a device. Historically those binaries could be used directly in a service declaration, but Windows 11 and newer require a proper reference to them using the Include and Needs directives.

For WUDFRd.sys, please see Specifying the Reflector in an INF File.

For mshidkmdf.sys, when using mshidkmdf.sys as the function driver,

[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

To use mshidkmdf.sys as a filter driver, follow the above pattern but use one of the below section names instead of MsHidKmdf.NT.*, replacing the name in all three sections:

Upper filter: MsHidKmdf_UpperFilter.NT Lower filter: MsHidKmdf_LowerFilter.NT

When using the filter sections, the following pattern must also be included:

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

Where MsHidKmdf_UpperFilter.NT.Filters should be used for to install WUDFRD as an upper filter, and MsHidKmdf_LowerFilter.NT for a lower filter.

Missing Quotation Marks

If the path to a service binary contains a space but there are no quotation marks around it, this error will appear. For example,

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

Because of the space in the path, the system treats this as a binary path of %13%\Sub with the arguments Directory\Binary.dll, and this error is shown because %13%\Sub is not a valid binary. Quotation marks should be used to indicate that this is a single binary path, where INF syntax uses triple quotation marks. The following resolves this error:

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