2012-03-09 10 views
14

私は2つの.infファイル(1つの標準と1つのミニポート)と.sysファイルで構成されるパススルーNDIS中間ドライバを持っています。 Windows  ドライバの署名要件が7つあるため、64ビットシステムにドライバをインストールするためにコード署名証明書を取得し、.sysファイルに署名する必要がありました。これはうまく動作し、多くの成功したWindows  インストールがあります。Windows 8のドライバ署名要件が変更されましたか?

ただし、Windows 8 Consumer Preview(64ビット)では同じインストーラが失敗します。 Windows Signature Enforcementを無効にして起動すると正しくインストールされるため、署名の問題は間違いありません。 Windows 7の間に追加された新しい要件は&です。ドライバをインストールするために必要なWindows 8はありますか?

+0

FWIW:グラフィックスドライバの.infファイルを自分のシステムで動作させるために使用しました。 Windows XPとWindows 7(32ビットと64ビットの両方)で正常に動作しましたが、Windows 8 64ビットは、署名の実施を無効にしたにもかかわらず、改ざんのためにインストールしないでください。 :(私は彼らが何をしたのか分かりませんが、迷惑なものです... – Mehrdad

+0

FWIW:.inf用の.catファイルを作成して、.catファイルに署名してWindows 8 Customerにインストールする必要がありましたX64のプレビューこれにより、リリース用に展開する唯一の方法では、認証局からのコード署名証明書が必要になると私は考えています。この.infは、Microsoftのusbser.sysドライバを使用するUSB​​ CDCデバイスをインストールするために使用されます。 –

+0

すべてのINFファイルをWindows 8の最終リリースで署名する必要があるかどうかについて、Microsoftから正式な言葉がありましたら、私が知りたいすべてのドライバーに署名するという手間を経る前に。 –

答えて

4

新しいWindows OSの署名要件に準拠するように、catファイルを再生成します。

例えば、私は私のinf2catコマンドに8_X86,8_X64を追加しなければならなかった私のビルドスクリプトに:Windowsの8.1の場合

inf2cat /driver:"%CD%" /os:XP_X86,XP_X64,Vista_X86,Vista_X64,7_X86,7_X64,8_X86,8_X64 

、あなたは、Windows Driver Kit(WDK)8.1に含まinf2catが必要になりますし、あなたのターゲットに応じて、/ os:WindowsVersionListに6_3_X646_3_X86、または6_3_ARMを追加します。

リファレンス、Inf2Cat

+0

私はcatファイルを一切使わずに帰ってきましたが、これを試してみます。 – jeffm

+0

これにより、ドライバをインストールするかどうかをユーザーに確認することができますが、この問題は解決しました。それは理想的ではありませんが、インストールしないほうがはるかに優れています。 – jeffm

+1

@jeffm:catファイルにも署名してください。 http://msdn.microsoft.com/en-us/library/windows/hardware/ff549830%28v=vs.85%29.aspx –

4

私は同じ問題を抱えていました。私はmakecatを使用して.catファイルを生成し、ファイル名をリストする.cdfファイル行の先頭には、 "<HASH>"を含めませんでした。それがここにmakecatのウェブサイトを参照してくださいWindows 7に働いたが、もはやWindowsの8と

:、

[CatalogHeader] 
Name=xxx.cat 
[CatalogFiles] 
xxx.sys=xxx.sys 

これは、Windows 7で働いていた:http://msdn.microsoft.com/en-us/library/windows/desktop/aa386967%28v=vs.85%29.aspx?ppud=4

を私はこのような.CDFファイルがありませんでしたではなくWindowsの8

と同様のWindows 8と、次の作品、プラスにもWindows 7の下に、インストールする際には、よりよいダイアログを与える:

[CatalogHeader] 
Name=xxx.cat 
[CatalogFiles] 
<hash>xxx.sys=xxx.sys 

「<ハッシュ>」というテキストを追加する必要があります(引用符は不要です)。これは何かのプレースホルダーではなく、実際には文字通りのテキストです。 makecatは後でそれを.catファイル内のファイルのハッシュに置き換えます。

さらに明確にするために、「xxx」を.catファイルとドライバの適切な名前に置き換える必要があります。 :)

+1

あなたの変更には「ハッシュ」とは何ですか? –

+0

プレーンテキスト ""(引用符)です。それは何かのためのプレースホルダーではなく、それは私の誤解でした。 – cxxl

関連する問題