最新WDKと24H2
最新WDKと24H2
WDK配布サイトで公開の最新バージョンは、10.0.26100.2454 だがリリース ノート
https://learn.microsoft.com/en-us/windows-hardware/drivers/wdk-release-n... には以下が掲載されていて、20204年の秋以降何回か入れ替えたので、段階的に機能追加されている。
Released March 14, 2025.
Version 10.0.26100.2161
Version 10.0.26100.1882
Version 10.0.26100.1591
一方でこれまでは、事前評価版の配布もとである、Preview Windows Insider での配布内容は、DevもCanary も、10.0.26100.1 と古すぎて、役に立たない。
ということで以降は2024年 11月末時点で最新版の 10.0.26100.2454 を対象として紹介するが、10.0.26100.* シリーズは過去何回か更新されて来たので、今後も更新される可能性がある。
Windows Update で Windows ビルド番号がときどき更新される様に、今後もWDK、SDKのバージョン番号も随時更新される可能性がある。
ちゅういされたい。
配布先は、「WDK」検索ですぐに見つかる以下である。前述の通りWDKのバージョン変更に備えてなのかが不明であるが、WDKのダウンロード先は固定リンクではない。
https://learn.microsoft.com/windows-hardware/drivers/download-the-wdk
今回というか、24H2世代における大きな変更点は、Visual Studioへのドライバー開発環境とテンプレートをインストールするVSIXが Vosual Stuio のオプションコンポーネントに移動したことである。
Windows Driver Kit の名目でオプション選択するこのコンポーネントを未インストールの環境に WDK をインストールしようとすると次の警告メッセージが出力されて、WDK インストールが失敗する。
主な変更内容
https://learn.microsoft.com/windows-hardware/drivers/wdk-release-notes
release-notesによる主な変更内容は次の通りである。
- KASAN のサポート
- Azure File Sync
- WDK MSI の更新
- WDK VSIX は、VS 17.11 リリース以降の Visual Studio の個々のコンポーネントとして追加
- オーディオ ヘッダー
- 静的ツール のロゴ - ドライバー検証ログの作成(VDL)
- 静的ツール のロゴ - CodeQL SARIF ファイルの配置要件
- UMDF WiFiCX ドライバー
- デバイスの基礎と WDTF テスト フレームワークのバグ修正
WDK MSI の更新も含む、前述の WDK VSIX 別コンポーネント化以外の主な更新を簡単に説明する。
KASAN のサポート
Windows ドライバーでサポートされている無効なメモリ アクセス検出のバグ検出テクノロジ Kernel Address Sanitizer (KASAN) のサポート
詳細は[カーネル アドレスサニタイザー (KASAN)参照](https://learn.microsoft.com/ja-jp/windows-hardware/drivers/devtest/kasan)
Azure File Sync
Azure ファイル同期の再解析タグ定義の更新
[詳細はAzure File Sync エージェント v18.2 リリース – 2024 年 7 月参照](https://support.microsoft.com/ja-jp/topic/azure-file-sync-agent-v18-2-re...)
参照:
[修正された機能強化と問題](https://support.microsoft.com/ja-jp/topic/azure-file-sync-agent-v18-2-re...)
オーディオ ヘッダー
audioAggregation. hとaudioSensors.hを追加し、SoundWire Device Class for Audio (SDCA) スピーカーアグリゲーションと超音波サポートを有効化
静的ツール のロゴ - ドライバー検証ログの作成機能追加
[ドライバー検証ログの作成方法](https://learn.microsoft.com/ja-jp/windows-hardware/drivers/develop/creat...)
静的ツール のロゴ - CodeQL SARIF ファイルの配置要件
[静的ツール のロゴ - GutHub CodeQL SARIF ファイルの配置要件緩和](https://learn.microsoft.com/ja-jp/windows-hardware/drivers/wdk-release-n...)
参照:
[SARIF ファイルを GitHub にアップロードする](https://docs.github.com/ja/code-security/code-scanning/integrating-with-...)
UMDF WiFiCX ドライバー
UMDF WiFiCX ドライバーをサポートするために、UMDF パブリック ヘッダーとライブラリのサポートが追加により、WiFiCX ドライバーがこれまでのKMDFに加えて、UMDF でも開発可能になる。
参照:
[Wi-Fi WDF クラス拡張機能 (WiFiCx) の概要](https://learn.microsoft.com/ja-jp/windows-hardware/drivers/netcx/wifi-wd...)
インストール手順
Visual Studio 2022インストールし、個別オプションを設定した以降のインストール手順を説明する。
手順 2: SDK のインストール
[Windows Driver Kit (WDK) のダウンロード](https://learn.microsoft.com/ja-jp/windows-hardware/drivers/download-the-wdk) 掲載のインストール手順では、「手順 2: SDK のインストール」として、[Windows SDK 10.0.26100.1742 のダウンロード](https://developer.microsoft.com/en-us/windows/downloads/windows-sdk/) からのインストールを進めてる。
しかし実験したところ、ドライバー開発が中心の場合はこのSDKを別途インストールしなくても、Visual Studio のオプションでインストールしたもので代用が可能である。
アプリケーションの動作にトラブルを起こす可能性があるが、ドライバー開発が中心で、同様のドライバー開発環境を複数運用している場合には、SDK更新のメンテナンスの煩雑さを考慮すると、常時全ての開発環境において、SDKをインストールする必要は無い。しかし重要な製品開発時など、最新のSDKやWDKをインストールするためには、各ダウンロードサイトに注意しておいては、必要に応じてダウンロード、上書きインストール再インストールをお勧めする。
手順 3: WDK のインストール
前述のWDKダウンロードサイトからダウウンロードしてインストールする。
SDKの場合とは異なり、異なるバージョンの上書きインストールが可能である。
SDKはメインバージョン(最後の小数点一桁)が異なるバージョンはインストールできないため、新しいSDKインストールの際は、古いSDKを一旦アンインストールしておく必要がある。
ビルドオプション
WDK のインストールが完了すれば、ドライバー開発は可能であるが、オプション設定の注意が以下の2項ある。
1. UMDF2Driver1のプロパティ
Inf2Cat → Use Local Time → はい
2. UMDF2Driver1のプロパティ
Driver Signing → Sign Mode → Off
ドライバー署名の強制を無効
テンプレートやGitHub の Windows Driver Samples を利用することで、すぐにドライバーをビルド出来る。
GitHub の Windows Driver Samples の多くは、テスト用もアプリケーションのプロジェクトのソースも付属していて、ドライバーと同時にビルド出来る。
ドライバーを実行してテストするためには、一時的に実行環境の「ドライバー署名の強制を無効」に設定する点に注意が必要である。
これは一般的には、Shiftキー再起動 → ドライバー署名の強制を無効に設定して、再起動することで実行するが、裏技としては、セキュアブートを無効化した上で管理者権限で次のコマンド実行でエントリーを「 Debug」名を付けてコピー。
bcdedit /copy {current} /d "Windows 11 Debug"
コピー完了後は、**msconfig** コマンド で Debug エントリーの設定変更後、作成した「 Debug」エントリーで再起動。
再起動後は、次の **testsigning on** オプションを「 Debug」エントリーに付加することで、デバッグ時は常時「ドライバー署名の強制を無効」状態となる。
bcdedit /set {current} testsigning on
BCDEdit でデフォルトのブートエントリーを設定し治すだけで、いつでも正常運用状態に復帰可能。
以上。
- Atomu Hidakaさんのブログ
- ログインしてコメントを投稿