Error de InfVerif 2084
Información del error
El siguiente mensaje de error lo genera el código de error 2084:
Service binary '<value>' should reference a CopyFiles destination file.
Este error se produce cuando no se incluye un archivo especificado en una declaración de servicio como parte del paquete de controladores. InfVerif comprueba que hay una operación de copia de archivos correspondiente para cada archivo binario de servicio en el paquete de controladores.
El archivo se puede omitir por completo de las directivas CopyFiles de este INF, o puede estar presente para algunas arquitecturas o versiones del sistema operativo, pero no para todas ellas. Asegúrese de que se está copiando para la arquitectura y la versión del sistema operativo en que se produce el error.
Causas
Typo
Una causa común es un error tipográfico en la declaración binaria del servicio o en la sección CopyFiles.
[MyCopyFiles]
Binary1.sys
...
[MyServiceInstallSection]
ServiceBinary=%13%\Binar1y.sys
En lo anterior, hay un error tipográfico en la ruta de acceso al binario, donde Binar1y.sys
se especifica en lugar de Binary1.sys
.
Binario de bandeja de entrada
Algunos archivos binarios de bandeja de entrada se usan como función o controlador de filtro para un dispositivo. Históricamente, esos archivos binarios se podrían usar directamente en una declaración de servicio, pero Windows 11 y versiones posteriores requieren una referencia adecuada para ellos mediante las directivas Include y Needs .
Para WUDFRd.sys, consulte Especificación del reflector en un archivo INF.
Para mshidkmdf.sys, al usar mshidkmdf.sys como controlador de función,
[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
Para usar mshidkmdf.sys como controlador de filtro, siga el patrón anterior, pero use uno de los nombres de sección siguientes en lugar de MsHidKmdf.NT.*, sustituyendo el nombre en las tres secciones:
Filtro superior: MsHidKmdf_UpperFilter.NT Filtro inferior: MsHidKmdf_LowerFilter.NT
Al usar las secciones de filtro, también se debe incluir el siguiente patrón:
[DDInstall.Filters]
Include=MsHidKmdf.inf
Needs=MsHidKmdf_UpperFilter.NT.Filters
Donde se deben usar MsHidKmdf_UpperFilter.NT.Filters para instalar WUDFRD como filtro superior y MsHidKmdf_LowerFilter.NT para un filtro inferior.
Faltan comillas
Si la ruta de acceso a un binario de servicio contiene un espacio, pero no aparece entre comillas, aparecerá este error. Por ejemplo,
ServiceBinary=%13%\Sub Directory\Binary.dll
Debido al espacio en la ruta de acceso, el sistema lo trata como una ruta binaria de %13%\Sub
con los argumentos Directory\Binary.dll
y este error se muestra porque %13%\Sub
no es un binario válido. Las comillas deben usarse para indicar que se trata de una sola ruta de acceso binaria, donde la sintaxis INF usa comillas triples. Lo siguiente soluciona este error:
ServiceBinary="""%13%\Sub Directory\Binary.dll"""