2012年5月14日月曜日

64 ビット システムのための INF ファイルの要件


最終更新日: 2007年 7月 31日

Windows Server 2003 SP1 以降のバージョンの Windows では、x64 ベース システムには、Un-Decorated INF セクションがあるドライバ パッケージはインストールされません。Intel Itanium システムでは、互換性を維持するため、Windows Server 2003 SP1 は、Un-Decorated INF セクションしかないドライバ パッケージをインストールします。ただし、INF デコレーションがハードウェアの Windows ロゴ プログラムの要件となっているため、Un-Decorated INF セクションしかないドライバ パッケージはロゴの資格認定を得ることができません。

このペーパーは、非 x86 ベースの 64 ビット システム (Intel Itanium および AMD64) へのデバイスのインストールに影響を与える INF の仕様変更を説明します。このペーパーでは、x64 とは、AMD64 と Intel Extended Memory 64 Technology システムで使われている 64 ビット アーキテクチャを指します。

目次

 はじめに
 INF のデコレーションがドライバ パッケージのインストールに与える影響
 複数のプラットフォームを対象とする INF ファイル
 x64 ベース システムで Un-Decorated INF をインストールする
 チェックリスト: ドライバ開発者のための行動指針


はじめに

Windows XP において、INF ファイルの [Models] セクション名に TargetOsVersion デコレーションを指定する機能を導入しました。しかし、そのデコレーションは必須とはされていませんでした。これは、32 ビットと 64 ビットの両方のシステムへのデバイス ドライバのインストールをサポートするための機能で、Intel Itanium プラットフォームを対象としていました。

Windows Server 2003 以前のバージョンの Windows では、INF の構文規則上、Un-decorated のセクションをすべてのプラットフォームにインストールすることが認められていましたので、ユーザーが Itanium ベースのシステムに Un-Decorated INF ファイルを持つドライバ パッケージをインストールしようとしても、プラグ アンド プレイはその操作を認めてきました。そこで、サービス バイナリにプラットフォームの不一致が検出されると、インストールは不可解なエラーを起こしていました。そのため、ユーザーには、なぜ失敗したのかがわかりにくくなっていました

ユーザーは、必ずしも 32 ビット Windows と 64 ビット Windows の違いや、x64 ベース、Itanium ベース、x86 ベース アーキテクチャの間の違いを理解しているとは限りません。


なぜ私のコンピュータはシャットダウンに時間がかかるん。

誤ったシステム プラットフォームに INF ベース デバイス ドライバ パッケージをインストールしようとするユーザーを保護し、これに関連するメーカーのサポート コストを削減するために、Windows Server 2003 SP1 では、INF の構文規則を次のように変更しました。

Windows Server 2003 SP1 以降の Windows では、ドライバの INF ファイルは、非 x86 システムのオペレーティング システム バージョンを指定するために、[Manufacturer] セクションおよび [Models] セクション名のエントリに、適宜、.ntia64 または .ntamd64 というデコレーションを付けなければなりません。この変更は、x86 ベース システムの INF または非 PnP ドライバの INF ファイル (x64 ベース アーキテクチャ用ファイル システム ドライバの INF ファイルを含む) に影響を与えません。

重要: x64 バージョンの Windows Server 2003 SP1 Release Candidate 1 以降では、この変更がオペレーティング システムによって強制されます。メーカー各社は、このペーパーに従って、すべての 64 ビット プラットフォーム (x64 および Intel Itanium) 用の Un-Decorated INF ファイルを更新するようにしてください。

INF のデコレーションがドライバ パッケージのインストールに与える影響

INF ファイルのセクションは、特定のプラットフォームないしオペレーティング システムを識別する TargetOSVersion サフィックスが名前に含まれていれば、デコレーション付きとみなされます。デコレーション付きセクションには、TargetOSVersion によって指定されたプラットフォームとオペレーティング システムのみに関係のあるインストール情報が格納されます。

Windows Server 2003 までのインストールの動作

このセクションでは、Microsoft Windows Server 2003 のオリジナル リリース、およびそれ以前の Windows において、オペレーティング システムが限定付きと無限定の INF をどのように扱っていたかを説明します。デバイス ドライバ パッケージの INF ファイルに含まれている無限定の [Manufacturer] セクションおよび [Models] セクション名は、一般的に次のような形になっています。

[Manufacturer] %mycompany% = MyCompanyModels  [MyCompanyModels] %MyDev% = mydevInstall,mydevHwid

この例は、TargetOsVersion デコレーションを使っていません。Windows Server 2003 以前の Windows のデバイス照合構文規則では、すべてのプラットフォームへのインストールという意味でこのような構文が認められていました。パッケージに正しいバイナリ ファイルが含まれていることが確実でない限り、このデバイス パッケージはインストールされないようにすべきところですが、この INF ファイルでは、誤ったインストールを避けられません。

次の例は、x64 システムを指定する TargetOSVersion デコレーションが付けられた同じ [Manufacturer] セクションおよび [Models] セクション名を示したものです。ここで、"x64" とは、AMD64 および Intel Extended Memory 64 Technology で使われている 64 ビット アーキテクチャのことです。INF ファイル内の .ntamd64 デコレーションは、すべての x64 システムを指します。


DOSからWindows XPにアップグレードする方法
[Manufacturer] %mycompany% = MyCompanyModels,NTamd64  [MyCompanyModels.NTamd64] %MyDev% = mydevInstall,mydevHwid

このドライバ パッケージをインストールしようとすると、INF パーサは、デコレーションを含むセクション名を組み立て、セクション名とターゲット プラットフォームが一致するかどうかをチェックします。一致するなら、INF パーサは INF ファイル内のセクション名を探し、あればそのセクションを使います。

Windows Server 2003 以前の Windows では、INF パーサは、デコレーション付きのセクションがなければ、Un-Decorated のセクションを探していました。これらのデコレーションは広く使われてはいませんので、プラグ アンド プレイは、Un-Decorated のデバイスを見つけると、誤ったプラットフォームにドライバをインストールしようとしていました。

Windows Server 2003 SP1 以降の非 x86 の 64 ビット プラットフォームでのインストールの動作

Windows XP および Windows Server 2003 の元のリリースでは、INF パーサーは、デコレーション付きのセクションの名前が指定されている場合、デコレーション付きのセクションを使用します。そうでない場合、Un-Decorated のセクションを使用します。ただし、Windows Server 2003 SP1 およびそれ以降のバージョンでは、INF パーサーは、x64 ベースのプラットフォームで、Un-Decorated のセクション名を検索しません。

Windows Server 2003 SP1 以降の非 x86 ベース プラットフォームでは、[Models] セクション名に TargetOsVersion デコレーションを付ける必要があります。たとえば、ユーザーが x64 システムで Un-Decorated のドライバ パッケージをインストールしようとしても、PnP はデコレーション付きの [Models] セクション名が見つからないため、デバイス ID の照合をしません。

注: Un-Decorated INF を使用するストレージ ドライバは、最初に F6 を使用して読み込まれますが、GUI Mode セットアップ後にシステムが最後に再起動するときにバグ チェック 7B を生成します。これは、F6 機構がストレージ ドライバの読み込みに SetupAPI ロジックを使用しないためです。このドライバをインストールするには、64 ビット INF デコレーションを使用する新しいバージョンのドライバを入手するか、この記事の後の「x64 ベース システムで Un-Decorated INF をインストールする」の説明に従って手動で INF にデコレーションを付けます。バグチェック 7B から回復することはできません。代わりに、説明に従ってストレージ ドライバを更新し、F6 を使用してセットアップ プロセスを再開する必要があります。

Windows プラットフォームごとのインストール動作のまとめ

次の表は、さまざまなプラットフォームおよび Windows バージョンでデコレーション付き、Un-Decorated の INF ファイルがどのように動作するかをまとめたものです。

表 1. プラットフォームとオペレーティング システムのバージョンごとのデコレーションとインストールの動作

 Un-Decoratedx86 用のデコレーションItanium 用のデコレーションx64 用のデコレーション

Windows 2000
x86 ベース プラットフォーム


checkdiscを実行する方法
XN/AN/A

Windows XP
x86 ベース プラットフォーム

XN/A

Windows Server 2003 SP1
x86 ベース プラットフォーム

XX

Windows Server 2003 SP1
Itanium ベース プラットフォーム

•/X*XX

Windows Server 2003 SP1
x64 ベース プラットフォーム

XXX

• 対応する INF セクション内のデバイス モデルが、検出されてインストールされます。

X 対応する INF ファイル内のデバイス モデルは検出されず、インストールは行われません。

* リリースされているドライバ パッケージが使えなくなるのを避けるために、Intanium プラットフォームで Un-Decorated の INF ファイルを使うことができます。Itanium ベース プラットフォーム用の新しいドライバ パッケージでは、デコレーション付きのセクションを使用して "Designed for Windows" ロゴの資格認定を得る必要があります。

複数のプラットフォームを対象とする INF ファイル

x64、Itanium ベース システムのためのデコレーション付きセクションと、x86 ベース システムのための Un-Decorated または ntx86 デコレーション付きセクションを用意すれば、マルチプラットフォーム INF を作ることができます。

注: デコレーション付き INF ファイルを持つドライバ パッケージは、Windows 2000 にはインストールできません。デコレーション機能が初めて実装されたのは、Windows XP です。

複数のプラットフォームを対象とするドライバ パッケージをサポートするための方法としては、次の 2 種類が考えられます。

  • 方法 1: プラットフォームごとに別々の INF ファイルを用意

  • 方法 2: すべてのサポート プラットフォームのために単一のマルチプラットフォーム INF ファイルを用意

最小要件では、[Models] セクション名に対する単一のデコレーションのみが必要なので、方法 1 が優先されます。方法 2 で、INF パーサーは、さまざまなセクションをデコレーションして単一の INF を作成するため、利用可能な構文を提供します。もっとも、このようにして作った INF ファイルは複雑になり、保守しにくくなります。

次の例は、マルチプラットフォーム INF を示したものです。

[Manufacturer] %mycompany% = MyCompanyModels,NTx86,NTia64  [MyCompanyModels.NTx86] %MyDev% = mydevInstallx86,mydevHwid  [MyCompanyModels.NTia64] %MyDev% = mydevInstallia64,mydevHwid

INF にはまた、[Version] セクションにデコレートされた CatalogFile エントリを含めることができます。詳細については、Windows Driver Kit (WDK) ドキュメントで「Creating INF Files for Multiple Platforms and Operating Systems」を参照してください。

x64 ベース システムで Un-Decorated INF をインストールする

次の方法により、x64 ベース システムで Un-Decorated INF をインストールできます。これらの対処方法は、テスト システムでの使用のみを目的とし、製品ドライバ向けではありません。


方法 1: AMD 64 で Un-Decorated のモデルのチェックを無効にする。AMD64 ベース システムのみに対して Un-Decorated のモデルのチェックを無効にするには、次のようにゼロ以外の数値のレジストリ値を作成します。

 HKLM\Software\Microsoft\Windows\CurrentVersion\Setup: REG_DWORD: DisableDecoratedModelsRequirement 

このキーに 1 などのゼロ以外の値を設定してシステムを再起動し、ドライバをインストールします。

方法 2: INF を編集してデコレーションを追加する この記事の説明に従って、またはその他の 64 ビット ドライバ パッケージ用のデコレーション付き INF を参照して、手動でデコレーションを追加できます。これにより、署名済みドライバの署名が使えなくなりますが、ローカル コンピュータで署名済みドライバのポリシーが有効であることを条件として、ドライバをインストールできます。

チェックリスト: ドライバ開発者のための行動指針

x64 ベースのシステムにドライバ パッケージをインストールするには、INF の [Manufacturer] セクションのエントリと [Models] セクション名をデコレートする必要があります。また、Intel Itanium ベースのシステムでも、それらをデコレートする必要があります。これらのデコレーションは、Windows XP オリジナル リリース以降のすべての Windows でサポートされていますので、非 x86 プラットフォーム用のすべてのリリース済み NT ベース Windows で、この種のデコレーション付き INF ファイルは動作します。

Windows 2000 に対する互換性が必要であれば、INF セクションは Un-Decorated のままにしておかなければなりませんが、ドライバ インストール パッケージのターゲットが Windows XP 以降のシステムの場合は、デコレーションを付けることができます。

64 ビット Windows の INF ファイルに関するパートナーの皆様へのお願い

  • できるだけ早く、デコレーション付き [Manufacturer] セクションのエントリと [Models] セクション名を実装して、x64 ベース プラットフォームおよび Itanium ベース プラットフォーム用のドライバ インストールパッケージの INF ファイルを更新してください。

  • この記事や WDK を参照し、x64、Itanium システム用に開発されたドライバ、インストール ルーチンのために、64 ビット カーネル モード ドライバと 64 ビット クラス インストーラおよびコインストーラを準備してください。



    These are our most popular posts:

    64 ビット システムのための INF ファイルの要件

    2007年7月31日 ... Windows Server 2003 SP1 以降のバージョンの Windows では、x64 ベース システム には、Un-Decorated INF セクションがある ... Windows Server 2003 以前の Windows のデバイス照合構文規則では、すべてのプラットフォームへのインストール という意味でこのような構文が認められていました。 ... バージョンでデコレーション付き、 Un-Decorated の INF ファイルがどのように動作するかをまとめたものです。 read more

    IBM Systems Director 6.2 FAQ (2012年4月5日版)

    オペレーティングシステム」や「サーバー」などのタイプとは何ですか? ... サポートライン に問題報告をする際、どのような情報を用意しておくとよいですか? ..... (InfoCenter) サード・パーティーの x86 ベース・システムでサポートされるタスクおよびフィーチャー ..... 主にシステムボードに搭載されたシステム管理プロセッサー(統合管理モジュール・ ベースボード管理コントローラー・リモート管理アダプターII など)を意味し、Systems Director ... read more

    ×86 や ×64 と - Microsoft Answers

    Microsoft Answers では Windows や Office などの製品についての情報交換が行え ます。 ... ×86 や ×64 とはどういう意味ですか。 自分の ... パソコンの資料などでも わかるかもしれませんが、以下のような方法で調査できます。 ... 3) 画面右側の システムの種類に x86-ベース PC とあれば 32bit版、x64-ベース PC とあれば 64bit版 です。 read more

    一般的な内容に関する FAQ (Project jp.general faq) - XWiki

    2009年10月26日 ... OpenSolaris ソースコードにはどのようなライセンスが必要ですか。 ... 現時点では、 OpenSolaris ソースベースは、完全な システムとしてブートするのには、十分では ありませんが、開発者 ... の Solaris ソース・ベースをオープン・ソース化することは、 つまり、SPARC と x64/x86 両システムのコードを公開することを意味します。 read more

    Related Posts



0 コメント:

コメントを投稿