デバイス ドライバーの選ばれ方
久方ぶりです。まさかたです。
今回は、Windows がどのようにインストールするドライバーを選んでいるのかについて、特に Windows 7 で変わった点にフォーカスして、お話したいと思います。
まず、PC に新しいデバイスが接続されると、PnP が発生してドライバーのインストールが行われるわけですが、その背後で Windows はさまざまな場所からドライバーを検索して、できるだけ最適なドライバーをインストールしようとします。
この時のドライバーを探してくる場所とその優先順位や、その中からどのドライバーが最適であるかを判断する基準となる ”ランキング” の決め方などは、Windows のバージョンアップとともに少しずつ改善が加えられてきました。
例えば、ドライバーを検索してくる場所と優先順位という点では、Windows 7 と Windows Vista を比較すると、以下のような違いがあります。
² Windows Vista の場合
1. Driver Store
2. Device Path
3. Windows Update
4. Prompt for Media
² Windows 7 の場合
1. Windows Update
2. Device Path
3. Driver Store
- Where Setup Searches for Drivers
https://msdn.microsoft.com/en-us/library/ff553973(v=VS.85).aspx
Windows 7 では、ドライバーの検索を行うとき、より確実に最新のドライバーを見つけられるようにと、まず Windows Update を見に行くようになりましたし、また、Driver Store より先に、Device Path の方を検索します。
さらに、こうやって検索されたドライバーに対して、ターゲットのデバイスにどれだけ適しているかを、Hardware ID や Compatible ID のほかに、ドライバーのデジタル署名、さらに Windows Vista 以降では INF の FeatureScore などを使って、ランク付けして判断します。
このランキングも、Windows のバージョン間で差異がありますが、詳細は以下の技術情報を見てみてください。
- How Setup Selects Drivers
https://msdn.microsoft.com/en-us/library/ff546228(VS.85).aspx
- How Setup Ranks Drivers (Windows Server 2003, Windows XP, and Windows 2000)
https://msdn.microsoft.com/en-us/library/ff546221(V=VS.85).aspx
- How Setup Ranks Drivers (Windows Vista and Later)
https://msdn.microsoft.com/en-us/library/ff546225(v=VS.85).aspx
また、Windows では、ランキングの高いドライバーを優先してインストールしますが、この時、一定以上のランキングを持つドライバーがある場合にのみ、ハードウェアの検出ウィザードなどのユーザーに操作を求めるダイアログを表示せず、サイレントでインストールを行います。
逆に、そのようなランキングの高いドライバーが見つからなかった場合、Windows XP や Vista では、ランキングの低いドライバーのインストール処理のために、ハードウェアの検出ウィザードなどで、ダイアログを表示していました。これが、Windows Vista のドライバーの検索場所の 「4. Prompt for Media」に当たります。
ただし、Windows 7 では、このような場合には、ハードウェアの検出ウィザードは表示せず、インストールに失敗したものとするようになりました。
これは、ユーザーのマウスクリックの操作を減らす目的のほか、ユーザーが誤って適切でないドライバーを選択して、デバイスが正しく動作しなくなるなどの可能性をできるだけなくすためという意図もあります。
なお、Windows 7 では、上記の検索場所の優先順位は、グループポリシーを使って変更することができます。これも、新たに追加された機能です。
具体的には、以下のグループポリシーを使って変更することができます。
Ø ローカル コンピューター ポリシー
Ø コンピューターの構成
Ø 管理用テンプレート
Ø システム
Ø デバイスのインストール
Ø デバイス ドライバーを検索する場所の順序を指定する
(画像をクリックすると拡大)
ちなみに、上記のグループポリシーは、デフォルトでは 「未構成」となっていますが、これがデフォルトのまま「未構成」、もしくは「無効」となっている場合には、下記の「デバイスのインストール設定」のダイアログから、同様の設定を行うことが可能です。
(画像をクリックすると拡大)
このダイアログは、「コントロール パネル > システムとセキュリティ > システム」から、「システムの詳細設定」をクリックし、「システムのプロパティ」ダイアログの「ハードウェア」タブの「デバイスのインストール設定」ボタンから表示させることができます。
(画像をクリックすると拡大)
上記以外にも、ドライバーのインストールに関わるグループポリシーが存在しますが、特に Windows Vista から増えました。また、Windows 7 で新たに追加されたものもいくつかあります。
Ø ローカル コンピューター ポリシー
Ø コンピューターの構成
Ø 管理用テンプレート
Ø システム
Ø デバイスのインストール ・・・ ①
Ø デバイスのインストールの制限 ・・・ ②
Ø ドライバーのインストール ・・・ ③
① デバイスのインストール
No |
ポリシー名 |
サポートしている OS |
1 |
デジタル署名されたすべてのドライバーの優先順位をドライバー ランキングおよび選択プロセスで同じにする |
Windows Vista 以降 ※ |
2 |
デバイスインストール中の “新しいハードウェアが見つかりました” バルーンをオフにする |
Windows Vista 以降 |
3 |
デバイスに汎用ドライバーがインストールされている場合、Windows エラー報告を送信しない |
Windows Vista 以降 |
4 |
デバイス インストールのタイムアウトを構成する |
Windows Vista 以降 |
5 |
デバイス ドライバーのインストール時に追加のソフトウェアが要求されてもエラー報告が送信されないようにする |
Windows 7 以降 |
6 |
通常は復元ポイントの作成が要求されるデバイス操作の際にシステムの復元ポイントが作成されないようにする |
Windows Vista 以降 |
7 |
プラグ アンド プレイ インターフェースへのリモート アクセスを許可する |
Windows Vista 以降 |
8 |
デバイス メタデータをインターネットから取得しない |
Windows 7 以降 |
9 |
デバイス ドライバーを検索する場所の順序を指定する |
Windows 7 以降 |
② デバイスのインストールの制限
No |
ポリシー名 |
サポートしている OS |
1 |
管理者によるデバイスのインストールの制限ポリシーの上書きを許可する |
Windows Vista 以降 |
2 |
これらのデバイスセットアップクラスと一致するドライバーを使用したデバイスのインストールを許可する |
Windows Vista 以降 |
3 |
これらのデバイスセットアップクラスと一致するドライバーを使用したデバイスのインストールを禁止する |
Windows Vista 以降 |
4 |
インストールがポリシー設定によって禁止されている場合にカスタム メッセージを表示する |
Windows Vista 以降 |
5 |
デバイスのインストールがポリシー設定によって禁止されている場合にカスタム メッセージ タイトルを表示する |
Windows Vista 以降 |
6 |
これらのデバイス ID と一致するデバイスのインストールを許可する |
Windows Vista 以降 |
7 |
これらのデバイス ID と一致するデバイスのインストールを禁止する |
Windows Vista 以降 |
8 |
ポリシーの変更を有効にするために必要な場合に強制的に再起動するまでの時間(秒) |
Windows 7 以降 |
9 |
リムーバブル デバイスのインストールを禁止する |
Windows Vista 以降 |
10 |
他のポリシー設定で記述されていないデバイスのインストールを禁止する |
Windows Vista 以降 |
③ ドライバーのインストール
No |
ポリシー名 |
サポートしている OS |
1 |
非管理者によるこれらのデバイスセットアップクラスのドライバーのインストールを許可する |
Windows Vista 以降 |
2 |
Windows Update でのデバイス ドライバーの検索のプロンプトをオフにする |
Windows Vista 以降 |
なお、 ※ 印の「デジタル署名されたすべてのドライバーの優先順位をドライバーランキングおよび選択プロセスで同じにする」については、既定の設定値が Windows Vista から変更されています。
このポリシーは、Windows Vista より導入されたものですが、Windows Vista では、Default で Disable となっているのに対し、Windows 7 では、Default で Enable となっています。
これは、デジタル署名されたすべてのドライバーを、署名の種類を問わず同じランキングとして扱うというもので、例えば Authenticode 署名を持つドライバーと WHQL 署名や、さらには INBOX のドライバーの署名のランキングを同等に扱います。
- AllSignersEqual Group Policy (Windows Vista and Later)
https://msdn.microsoft.com/en-us/library/ff537759(VS.85).aspx
以上、ご参考になればと思います。
それではまた。
【参考】
- デバイス管理とインストールの新機能
https://technet.microsoft.com/ja-jp/library/dd701203(WS.10).aspx
- Plug and Play Key Concepts