共用方式為


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 和更新版本需要使用 IncludeNeeds 指示詞來適當參考它們

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