デジタル署名されたカタログ ファイル (.cat) は、ファイルの任意のコレクションのデジタル署名として使用できます。 カタログ ファイルには、暗号ハッシュまたはサムプリントのコレクションが含まれています。 各サムプリントは、コレクションに含まれるファイルに対応します。
プラグ アンド プレイ (PnP) デバイスのインストールでは、ドライバー パッケージの署名付きカタログ ファイルをドライバー パッケージのデジタル署名として認識します。 カタログ ファイル内の各サムプリントは、ドライバー パッケージがインストールするファイルに対応します。 目的のオペレーティング システムに関係なく、暗号化テクノロジを使用してカタログ ファイルをデジタル署名します。
PnP デバイスのインストールでは、ドライバー パッケージの署名後にドライバー パッケージ内のいずれかのファイルが変更された場合、ドライバー パッケージのデジタル署名は無効と見なされます。 このようなファイルには、INF ファイル、カタログ ファイル、および INF CopyFiles ディレクティブによって コピーされるすべてのファイルが含まれます。 たとえば、スペルミスを修正するために 1 バイトの変更を行っても、デジタル署名は無効になります。 デジタル署名が無効な場合は、新しい署名を取得するために、ドライバー パッケージをWindows ハードウェア デベロッパー センターに再送信するか、ドライバー パッケージの新しい Authenticode 署名を生成する必要があります。
同様に、デバイスのハードウェアまたはファームウェアに変更があった場合は、システムが更新されたデバイスを検出して正しいドライバーをインストールできるように、デバイス ID の値を改訂する必要があります。 変更後のデバイス ID の値は INF ファイルに表示される必要があるため、新しい署名を取得するためにパッケージをWindows ハードウェア デベロッパー センターに再送信するか、ドライバー パッケージの新しい Authenticode 署名を生成する必要があります。 ドライバー バイナリが変更されない場合でも、新しいデバイス ID を取得する必要があります。
ドライバーの INF ファイルの INF Version セクション内の CatalogFile ディレクティブは、ドライバー パッケージのカタログ ファイルの名前を指定します。 ドライバーのインストール中、オペレーティング システムは CatalogFile ディレクティブを使用して、カタログ ファイルを識別して検証します。 システムは、カタログ ファイルを、GetSystemDirectory によって返されるシステム ディレクトリの下の CatRoot ディレクトリ (たとえば、%SystemRoot%\System32\CatRoot) にインストールします。 カタログ ファイルは、そのディレクトリに手動で追加したり、そのディレクトリから削除したりしないでください。 ドライバー パッケージの場合、ドライバー パッケージがドライバー ストアにステージングされると、カタログ ファイルが CatRoot に自動的にインストールされます。 ドライバー パッケージがドライバー ストアから削除されると、カタログ ファイルは CatRoot から自動的にアンインストールされます。 ドライバー パッケージ以外の理由でカタログ ファイルを CatRoot にインストールする必要がある場合は、「SignTool を使用したカタログ ファイルのインストール」と「CryptCATAdminAddCatalog を使用したカタログ ファイルのインストール」 を参照してください。
カタログ ファイルのガイドライン
Windows 2000 以降、ドライバー パッケージがすべてのバージョンの Windows に同じバイナリをインストールする場合、INF ファイルは単一の非修飾の CatalogFile ディレクティブを含むことができます。 ただし、パッケージが Windows のバージョンごとに異なるバイナリをインストールする場合、INF ファイルは修飾された CatalogFile ディレクティブを含む必要があります。 CatalogFile ディレクティブの詳細については、「INF Version セクション」を参照してください。
複数のドライバー パッケージがある場合は、ドライバー パッケージごとに個別のカタログ ファイルを作成し、各カタログ ファイルに一意のファイル名を付ける必要があります。 関連付けられていない 2 つのドライバー パッケージは、1 つのカタログ ファイルを共有できません。 ただし、複数のデバイスをサポートする 1 つのドライバー パッケージに必要なカタログ ファイルは 1 つだけです。