20H1で導入されたWindows Driversという新ルール
20H1では、このDCHUドライバーに対して、Windows 10Xのために、さらに新しいルールが課せられた、「Windows Drivers」が導入された(カタカナ表記すると混乱するので英文表記のままとする)。
Windows 10Xでは、Windows Driversのみが利用できる。これに対して、従来の普通のWindows 10(正式にはWindows 10 Desktop)では、Windows Desktop DriversとWindows Driversが利用できる。簡単に言えば「Windows Desktop Drivers」は、従来型のドライバーで、「Windows Drivers」は、さらに強い制限を課し、WHCP(Windows Hardware Compatibility Program)により認証されたものだ。
この「Windows Drivers」が必要になるのは、Windows自体を仮想マシン内で動作させるために、ドライバーの自動組み込みなどが必要になるからと考えられる。Windowsのアップデートを90秒以内に終わらせるには、ドライバー組み込みを手作業やインストーラーに任せることはできない。すべてのドライバーは一定の手順で機械的に導入する必要がある。「Windows Drivers」はそのためのルールである。たとえば、ドライバーファイルの置き場所なども決まっているほか、利用できるAPIが決められ、また、HSAは必ずMicrosoftストアからインストールすることになっている。
Windows 10より前は、Windowsのデバイスドライバー開発は、ほとんど野放し状態で、インストーラーでどんなこともできた。ドライバープログラムの格納先や関連GUIアプリケーションの作り方、ドライバー内部構造など、Microsoftがただドキュメントとサンプルだけを提供していたため、どうにでも作ることが可能で、「動けば問題なし」という状態が長く続いた。しかし、これがデバイスドライバーに関わるさまざまなトラブルを招くことになる。
これを解決しようとしたのがユニバーサルドライバーであり、DCHU原則である。さらにこれを整備して、厳密にしたのがWindows Driversとなる。今後は、多くのボックスドライバー(Windowsの標準デバイスドライバー)はWindows Driversに置き換わっていくと考えられる。
サードパーティのドライバーなどに「DCHドライバー」という名称が付くのが、このWindows Driversに対応したものだ。たとえば、IntelのGPUドライバーの名称にDCHの文字が含まれている(過去にはDCHUを名称に含むドライバーもあった)。
DCHは「DCH原則」のことであり、これは「Declarative」(宣言的)、「Componentized」(コンポーネント化)、「Hardware Support App」(ハードウェア支援アプリケーション)の頭文字を組み合わせたもの。DCHUは、これに「Universal」のUをつなげている。
簡単に言えば、DはINFファイルの書き方などを、Cはドライバーのコンポーネント化を徹底すること、Hはドライバー設定のGUIアプリなどをUWP化することで、ドライバーを作る場合のルールである。
DCHUではルールを定めたが、Windows 10Xではそれをより厳しくし、Windows Updateなどで確実にドライバーのインストールやアップデートできるようにする。というのも、Windows 10Xのすべてのアプリケーションは仮想マシンで動作し、ホストWindows側にはまったくアクセスができない。このため、ドライバーのインストールなどはWindows 10X自身でする必要があるからだ。もっとも、現在のWindows 10ではほとんどのドライバーはボックスドライバーであり、Microsoftが用意している。それでも、CPU/SoC関連、GPUなどのドライバーは、今後も新しいデバイスが登場し、サードパーティドライバーが常に必要になるだろう。
最近のWindows Updateでは、ハードウェアドライバーなどの配布も可能になった。これは、DCHなどにより、一定の手順でドライバーを組み込むことが可能になったからだ。
20H1で「Windows Drivers」の準備は整えたものの、おそらく、その後のWindows 10Xの開発が遅れたのであろう。今回の春のアップデートでは、カーネルなどを大規模にアップデートするのには至らなかった。このため、アップデートを小規模なものとして、カーネルなどの変更が不要な機能のみを先行して提供することになった。それが21H1であり、21H1がサービステクノロジーでアップデートされることになった理由なのである。
この連載の記事
-
第458回
PC
Windows上でhostsファイルを活用する -
第457回
PC
IPv6アドレスは先頭を見ればどんな種類かわかる -
第456回
PC
あらためてIPv6基本のキ -
第455回
PC
Windowsで現在どのネットワークアダプタがインターネット接続に使われているかを調べる方法 -
第454回
PC
Windows 11 24H2では「デバイスの暗号化」の条件が変わり、より多くのPCでドライブが暗号化される -
第453回
PC
Windows 11 24H2の配布開始後もすぐにはやってこない Windows UpdateとSafeguard Holds -
第452回
PC
Windows 11 Ver.24H2が登場 Copilot+ PCとそうでないPCで実質Windowsが2つに分かれる -
第451回
PC
新しいWindowsサンドボックスではコマンドラインからの制御が可能に -
第450回
PC
ユニコードで文字数を数える方法 -
第449回
PC
WSLはプレビュー版でGUIでの設定が加わった! リリース2.3.xの新機能を見る -
第448回
PC
PowerShellで面倒なオブジェクトはPSCustomObjectに変換するのが早道 - この連載の一覧へ