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