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"""