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

上記では、バイナリへのパスに入力ミスがあり、Binary1.sys ではなく Binar1y.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.* の代わりに次のいずれかのセクション名を使用し、3 つのセクションのすべてで名前を置き換えます。

上位フィルター: MsHidKmdf_UpperFilter.NT 下位フィルター: MsHidKmdf_LowerFilter.NT

フィルター セクションを使用する場合は、次のパターンも含める必要があります。

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

上位フィルターとして WUDFRD をインストールするには MsHidKmdf_UpperFilter.NT.Filters を使用し、下位フィルターには MsHidKmdf_LowerFilter.NT を使用する必要があります。

引用符の欠落

サービス バイナリへのパスにスペースが含まれているのに引用符がない場合に、このエラーが表示されます。 たとえば、 にします。

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

パスにスペースがあるため、システムはこれを引数 Directory\Binary.dll を持つ %13%\Sub のバイナリ パスとして扱います。このエラーは、%13%\Sub が有効なバイナリではないために表示されます。 引用符を使用して、これが単一のバイナリ パスであることを示す必要があります。この場合、INF 構文では三重引用符が使用されます。 以下により、このエラーを解決します。

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