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がサービステクノロジーでアップデートされることになった理由なのである。

この連載の記事
-
第471回
PC
Windowsのコマンドラインでエイリアスを使う -
第470回
PC
Windows用のパッケージマネージャー「Winget」 プレビュー版で機能が充実してきた -
第469回
PC
Windows Updateの27年 悪役だった頃から改良が進んで、徐々に目立たない存在に -
第468回
PC
2025年のWindowsどうなる!? Windows Insider Programの状況をあらためて見る -
第467回
PC
Copilot+ PCのNPUでカメラを処理する「Windows Studio Effects」 その内容や効果は? -
第466回
PC
PowerToysの最近の新機能には、複数アプリを指定位置に起動する「ワークスペース」や新規作成のカスタマイズがある -
第465回
PC
WindowsのPowerShellからBluetoothデバイスを調べる -
第464回
PC
Windows 10のサポート切れまで1年を切った さてWindows 10マシンをどうする? -
第463回
PC
Windows Terminal Preview版でSixelグラフィックスを実際に表示させてみる -
第462回
PC
Windows Terminal Preview版でSixelグラフィックスを扱う -
第461回
PC
Copilot+ PCを買ってみたが、「今焦って買う必要はない」のかもしれない - この連載の一覧へ