ドライバーへの署名

64 ビットバージョンの Windows で実行されるすべてのドライバーは、Windows がドライバーをロードする前に署名する必要があります。 ただし、32 ビットバージョンの Windows ではドライバーの署名は必要ありません。

ドライバーに署名するには、証明書が必要です。 開発およびテスト中にドライバーに署名するための独自の証明書を作成できます。 ただし、パブリックリリースの場合は、信頼されたルート認証局によって発行された証明書を使用してドライバーに署名する必要があります。

"ドライバー パッケージ プロジェクト" では、他のプロジェクトの出力をパッケージ化できます。 ドライバー パッケージ プロジェクトをビルドすると、Microsoft Visual Studio は依存関係のある他のプロジェクトをビルドします。 ドライバーパッケージ プロジェクトには、他の依存プロジェクトとは別の独自のドライバー署名プロパティがあり、そのドライバー署名プロパティは、ドライバーパッケージプロジェクトによって作成されたカタログ (存在する場合) にのみ適用されます。 つまり、ドライバーパッケージ プロジェクトは、他のプロジェクトで生成されたドライバーバイナリに埋め込み署名を自動的に追加しません。これは、他のドライバープロジェクトの署名に別の証明書 (テスト証明書など) が使用される可能性があるためであり、その場合の結果は次のとおりです。これは、バイナリが 1つの証明書で意図せず署名されている一方で、パッケージ カタログが別の証明書で署名されているドライバーパッケージです。 これにより、パフォーマンスが低下する可能性があります。 たとえば、ブートスタートドライバーバイナリの埋め込み署名が無効な場合、Windows は署名に使用された証明書を使用してバイナリを検証できません。 その代わりに、Windows はカタログの署名に対してバイナリを検証する必要があるため、起動時間が長くなります。

このセクションでは、Visual Studio を使用してドライバーパッケージに署名する方法について説明します。