Skip navigation.
ホーム
BLOG-ROMMER 日高のブログ

Windows ドライバーはついに64bit 専用に!

つい最近、新しい WDK (Windows Driver Kit) について、次の驚くべきことに気づいた。

  • Windows 10 より前のドライバー開発をサポートしない。

  • 32 bit ドライバーの開発をサポートしない。

インターフェース誌 Windows 11 時代のデバイスドライバ開発連載開始 記事で記載の通り、久しぶりに Windows ドライバー開発の記事を連載形式で書いている。そもそもの依頼は去年、2022年のことだったので、対象はWindows 11 21H2で Visual Studio 2019を使用して、サポート対象の全てのアーキテクチャ用のドライバーが開発出来る前提で、元の記事を書いていた。諸般の事情で、連載開始が延び延びになり、対象がWindows 11 22H2に変わり、Visual Studio 2022を使うことにしたのだが、自分が去年書いた記事を確認すると、様子がいろいろと違い、おかしいことに気づいた。

そして Windows ドライバー開発で著名な米国OSR社のページで、以下の記述を発見した。

https://www.osr.com/blog/2022/09/21/the-windows-driver-kit-and-visual-studio-2022/

そのそもこれまで、Windows のドライバー開発環境はしつこいぐらいの後方互換性の塊だった。例えばWindows Vista で新しい WDK アーキテクチャを公開、実装した時にはわざわざ、KMDF 1.5を Windows 2000 にバックポートして動作させたり、つい去年までは 最新のWDKで、サポートが切れた Windows 7 用のドライバーを開発が正式サポートされていた。Obsolete になった後の古いカーネルコールはその後、10年以上使うことが出来ていた。

64bit化されたVisual Studio 2022も、動作環境であるWindows 11が32bitアプリをこれまでと同様にサポートする様に、普通に32bitアプリをビルドして動作させることが出来る。そしてそのアプリは多くの場合、恐らくは過去のWindows 8.1, 8, 7等で正常に動作するはずである。

しかしながら今回の新しい WDK では、過去とのしがらみを切って、Windows 10以降の64bit用開発だけをサポートすることにした。恐らく、新しい WDK のインストール対象である 64bit版 Visual Studioが32bit OS上では動作しないのと、ここに来て急速にARMがARM64にシフトしたことが大きな要因ではあると思う。恐らくARMのサポートが必要無ければ、今でもx86 32bitドライバー開発がサポートされたのかも知れないと思う。

勿論 32bit版最後の、Visual Studio 2019とWDK Windows 11 21H2を使用すれば、今でもWindows 11上で、32bitドライバーのクロス開発は可能である。何となくではあるが、最後の32bitドライバー開発環境の Windows 10と Visual Studio 2019と WDK Windows 11 21H2の組み合わせは、今後10年ぐらいは残るのではないかと、今のうちから想像している。