WindowsDriverTips

ドライバーのインストールとは?

DriverInstallation_j.md


ドライバーのインストールとは?

デバイスに必要なドライバーがマシンにインストールされていない場合、デバイスドライバー(以降ドライバー)をインストールする必要があります。 そのドライバーはどこから来て、どの様にインストールされるのでしょうか?

理解にはまず、ドライバーのインストールが何かとドライバーのインストールを構成する要素を知る必要があります。

ドライバーがインストールされていない状態
(ドライバーがインストールされていない状態)

ドライバーのインストールの正確な説明

Windowsドライバーのインストールは、アプリケーションプログラムとは少し異なり、正確には次の一連の動作を指します。

つまりドライバーのインストールとは、ドライバープログラムを起動して、一度以上初期化処理を完了したことです。 ドライバーのインストールは、プラグアンドプレイマネージャーによって対象デバイスが接続されるか電源が入った時、それに最適なドライバーパッケージを検索し、起動してインストールを行います。

Windowsの動作に必要なドライバーは、Windows インストール時に他のWindowsカーネルモジュールとともに C:\Windows 以下に事前準備されます。 一方でWindowsの動作状況や周辺デバイスの接続状態によって必要になるドライバーパッケージは、ドライバーストアに置かれます。

ドライバーパッケージ

ドライバーのインストールに必要なINFとドライバーバイナリー(.SYS, DLL, …) カタログファイルなどのファイルをまとめて、ドライバーパッケージと呼びます。 ドライバーパッケージはインストールに必要なファイルを全てまとめたものです。

各種条件により、ドライバーバイナリーとセキュリティーカタログを省略することは可能ですが、INFは省略出来ません。ドライバーパッケージに含まれる全ファイル名はINFに記述します。 カタログ(.CAT)ファイルは、INFとINF記載のドライバーパッケージ全ファイルが作成時から改変されていないという正当性を示します。SHA256署名が必要です。 すなわちINFを含めてドライバーパッケージに含まれる何かが変更されると、そのドライバーパッケージは署名が無効になり、ドライバーとして使えなくなります。

シンプルなドライバーパッケージの例
(シンプルなドライバーパッケージの例)

CATファイルには SHA256署名が必須
(CATファイルには SHA256署名が必須)

ドライバーストア

後述のプレインストールを含めた、そのマシンが使用する全ドライバーパッケージの保管場所です。C:\Windows\System32\DriverStore にあります。つまりこのディレクトリを全て保存(バックアップ)しておけば、トラブル発生時やディスク交換後などの再インストールなどで、以前のマシンと全く同じドライバー環境を再現することが出来ます。メーカー製Windows インストール済マシンの様に、独自ドライバーを持つマシンもこの場所に全てのドライバーパッケージがあります。

ドライバーストア内 FileRepository フォルダーの内容例
(ドライバーストア内 FileRepository フォルダーの内容例)

ディスクトラブルや誤操作等で、最初から入っていた固有ドライバーを削除した話を時々聞きますが、ドライバーストアがバックアップしてあれば復元出来ます。 またドライバーストアは、同一デバイス用の異なるバージョンのドライバーを保管するため、削除しない限りは任意の古いドライバーパッケージを復旧できます。

一般に「ドライバーのインストール」と呼ばれるユーザーのメディアからのドライバーパッケージのコピー操作の多くは、実際はドライバーパッケージのドライバーストアへのコピー、即ちプレインストールです。 ですが用語をわかり易くするため、以降の説明では、前述の正確なインストール動作も含めたプレインストール操作をまとめてインストールと呼びます。

Windows Updateでのインストール

Windows Update はプラグアンドプレイマネージャーにより対象マシンの全デバイス情報を調べて、最新または未インストールのドライバーがあるデバイス用のドライバーをダウンロードしてドライバーストアにコピーする機能があります。 デバイスマネージャーでドライバーの検索時、「Windows Updateで更新されたドライバーを検索する」のオプションはこの動作を行います。

Windows Updateで検索できるようにするためには、デバイスやドライバーの製造元が該当ドライバーをWindows Updateに登録して、適用対象PC向けに公開している必要があります。 従って Windows Update からは、特定の登録済ドライバーしかインストールできません。

インストールログファイル

ドライバーのインストールに関するログは全て、C:\Windows\INF\setupapi.dev.log に SetupAPI テキスト ログ 形式 で保管されます。