InfVerif 錯誤 2084
錯誤資訊
錯誤碼 2084 會產生下列錯誤訊息:
Service binary '<value>' should reference a CopyFiles destination file.
當服務宣告中指定的檔案不包含為驅動程式套件的一部分時,就會發生此錯誤。 InfVerif 會驗證驅動程式套件中每個服務二進位檔都有對應的檔案複製作業。
此檔案可能會完全從此 INF 的 CopyFiles 指示詞中省略,或某些架構或 OS 版本可能存在,但並非全部。 請確定它已針對發生錯誤的架構和OS版本進行複製。
原因
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
由於路徑中的空格,系統會將這個 視為具有 自變數Directory\Binary.dll
的%13%\Sub
二進位路徑,而且因為 不是因為有效的二進位檔,因此會顯示%13%\Sub
此錯誤。 引號應該用來指出這是單一二進位路徑,其中 INF 語法會使用三引號。 下列會解決此錯誤:
ServiceBinary="""%13%\Sub Directory\Binary.dll"""