この記事では、WDK に関する既知の問題について詳しく説明します。
Windows 11 バージョン 24H2 用 WDK
x86 カーネル モード ドライバーの開発
Windows 11 バージョン 24H2 以降、WDK は x86 カーネル モード ドライバー開発をサポートしなくなりました。 x86 カーネル モード ドライバーを開発する必要がある場合は、WDK バージョン 23H2 を使用します
プロビジョニング後の再起動
プロビジョニングとデプロイが完了した後、デプロイ手順の後でターゲット マシンの再起動に失敗します。
ARM64 WDK ドライバー SxS サポート
Windows 11 バージョン 24H2 キットと Windows 11 バージョン 22H2 キットの両方が ARM64 コンピューターにインストールされている場合、 TargetPlatformVersion が Windows 11 に設定された ARM64 のカーネル モード ドライバー フレームワーク (KMDF) ドライバーをビルドすると、バージョン 22H2 は WdfDriverEntry.lib(stub.obj) : error LNK2001: unresolved external symbol
で失敗します。
WDK 拡張機能のインストールに失敗する
Visual Studio バージョン 17.11.0 以降を使用している場合は、WDK インストールの [拡張機能のインストール] チェック ボックスをオフにします。
Windows 11 バージョン 22H2 用 WDK
起動時のサービス エラー
2022 年 5 月から 8 月の間に元の Windows 11 バージョン 22H2 WDK (バージョン 10.0.22621.1) をインストールした場合、WDK で Visual Studio を起動すると、次のエラー メッセージが表示されることがあります。
Microsoft.Windows.Tools.WinIDE.Debugger.DebuggerPackage, DebuggerPackage, Version=10.0.0.0, Culture=neutral, PublicKeyToken=null
パッケージが正しく読み込まれませんでした。
この問題は WDKl バージョン 10.0.22621.382 で修正されました。 WDK をアンインストールし、「Windows Driver Kit のダウンロード」の手順に従って、最新の WDK を再インストールできます。
Visual Studio 内のデバッガーが機能しない
Windows 11 バージョン 22H2 WDK (10.0.22621.382) で Visual Studio 2022 バージョン 17.2.0 および 17.3 を使用している場合、Visual Studio インターフェイス内でドライバーをデバッグすることはできません。 この問題を回避するには、次のいずれかの操作を行います。Visual Studio を 17.4.1 以降に更新するか、WinDbg でデバッグするか、17.2.0 より前のバージョンの Visual Studio を使用します。 次のエラー メッセージは、この問題に関連しています。
UI で QueryBuildManagerBusyEx を呼び出す必要があります。
Windows Driver Framework (WDF) 再頒布可能パッケージの共同インストーラーが機能しない
WDF 再頒布可能パッケージ共同インストーラーはサポートされなくなりました。 これにより、Windows 11 バージョン 22H2 WDK と以前の WDK の両方がインストールされているコンピューターで問題が発生します。 このようなシステムで WDF 1.11 ドライバーをビルドしようとすると、msbuild が失敗します。 msbuild で WDF 共同インストーラーが見つからないため、ビルドが失敗します。
この問題を解決するには、Windows 11 バージョン 22H2 WDK をインストールする前に、\Program files (x86)\windows kit\10\redist\wdf
フォルダーをバックアップし、後で復元します。 または、Windows 11 バージョン 22H2 WDK をインストールした場合は、別のコンピューターの WDK 8 再頒布可能コンポーネント に MSI ファイルをインストールし、 redist
フォルダーを \Program files (x86)\windows kit\10\redist\wdf
フォルダーにコピーします。 詳しくは、「再配布可能な Framework コンポーネント」をご覧ください。
WDK for Windows 10 バージョン 2004
ExAllocatePoolZero、ExAllocatePoolQuotaZero、および ExAllocatePoolPriorityZero 関数の問題 FIXED
2020 年 5 月、 OSR はプール割り当ての自動ゼロ化に関する新しい下位レベルのサポートに関する問題を検出しました。 この問題により、Windows 10 バージョン 1909 を実行しているシステムで割り当てがゼロ初期化されない可能性があります。 これは、12 月 16 日に Windows 10 バージョン 2004 の WDK と Windows 10 バージョン 2004 の Enterprise WDK (EWDK) のセキュリティ更新で修正されました。 Microsoft では、セキュリティ更新を利用し、Visual Studio ビルド ツール 16.7 を含むように EWDK を更新しました。 Microsoft では、すべてのドライバー開発者が元の SDK と WDK (バージョン 2004) をアンインストールし、更新 SDK と WDK または EWDK をインストールすることをお勧めします。
完全なセキュリティ ソリューションを確実に実施するために、11 月に Windows 10 バージョン 1909 の OS 修正プログラムがリリースされたため、セキュリティの問題で作成されたドライバーがあった場合、OS はそこから保護されます。
更新された WDK/EWDK をダウンロードすることに加えて、Microsoft では、すべてのドライバーがすべてのカーネル割り当てを切り替えて、既定でゼロメモリを返す新しいプールゼロ DDI を使用することをお勧めします。 これにより、ドライバーのセキュリティと信頼性が向上します。 この移行を支援するために、Microsoft は Windows 10 WDK バージョン 20236 以降のプレビューで使用できる静的ドライバー検証ツール規則を作成しました。 この規則は、古いプール割り当て DDI が使用されているドライバーのソース コード内のすべてのインスタンスを識別し、新しい安全な同等の DDI に置き換えることをお勧めします。 この規則は、WDM、WDF、および NDIS ベースのドライバーに適用されます。
WDK をインストールすると、WDK 1903 で見られるように、すべての C++ プロジェクトで Spectre の軽減策が有効ではなくなりました
WDK インストールでは、すべてのドライバーに対して Spectre の軽減策が既定で有効になりますが、すべての C++ プロジェクトで有効にすることはなくなりました。
ターゲット '10.0.19041.0' に対応する WDK が見つかりませんでした。
WDK 10.0.19041.0 で [Windows SDK バージョン] を '10.0 (最新インストールバージョン)' に選択すると、SDK バージョンがインストールされている場合でも、"ターゲット バージョン '10.0.19041.0' に対応する WDK が見つかりませんでした" というエラーが発生します。
回避策: ドライバー プロジェクトのプロパティ ページ (構成プロパティ >全般) で、Windows SDK のバージョンを $(LatestTargetPlatformVersion) に設定します。 このオプションを選択できない場合は、 親またはプロジェクトの既定値から継承するオプションを選択します。
サーバーで実行されている EWDK と SDV には、.NET 要件があります
EWDK から静的ドライバー検証ツールを実行するには、.NET Framework 4.7.2 が必要です。 システム上の Windows のバージョンによっては、.NET がインストールされている可能性があります。インストールされていても、有効にする必要がある場合や、インストールされていない場合があります。 インストールされている .NET のバージョン、または .NET インストールの状態の詳細については、 .NET Framework のバージョンと依存関係を確認してください。
System.IO.FileNotFoundException で DVL の生成が失敗する
ドライバー検証ログ (DVL) を作成しようとすると、次のエラーが表示されます。
Unhandled Exception: System.IO.FileNotFoundException.
Could not load file or assembl.
'System.Runtime, Version=4.2.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a.
or one of its dependencies.
The system cannot find the file specified.
この問題は、コマンドライン環境と GUI 環境の両方で発生する可能性があります。 この問題は、WDK の将来のバージョンで解決され、Windows Insider Preview WDK で確認できます。 残念ながら、現在のバージョンには回避策はありません。
VS がインストールされていない場合、EWDK で SDV が失敗する
SDV は、Visual Studio の一部として VCRUNTIME140D.dll に依存しています。 そのため、VS がインストールされていないコンピューターで EWDK を実行すると失敗します。 この問題を回避するには、コンピューターに Visual Studio をインストールします。
WDK テスト エクスプローラーの使用時にドライバー検証ツールが有効または無効にならない
デバイスの基本テストが WDK テスト エクスプローラーを使用して実行されている場合、ドライバー検証ツールは有効または無効になりません。
回避策: クライアント コンピューターで、次の手順に従ってドライバー検証ツールを手動で有効または無効にします。
Windows 10 バージョン 2004 および WDK Windows 10 バージョン 1903 またはバージョン 1803 の WDK Side by Side インストール
両方のバージョンのキットが同じ PC にインストールされている場合、 ドライバーの展開 機能は以前のバージョンでは機能しません。
回避策:ドライバーの展開機能が必要な場合は、別のコンピューターで 1803 を使用します。
Windows Device Testing Framework (WDTF) テストは、Windows 10 バージョンが WDK と一致するシステムでのみ実行されるようになりました
WDK for Windows 10 バージョン 1809 では、このバージョンの Windows 10 バージョン 1809 をサポートするために WDTF に変更が加えられました。 その結果、WDTF はダウンレベル OS で実行されなくなります。 この変更は、Windows 10 バージョン 2004 の WDK で続行されます。
下位レベルのテストの代替手段
WDK for Windows 10 バージョン 1803 の WDTF テストは、以前の Windows バージョンで実行できます。
APIValidator
x86 アーキテクチャ コンピューターでは、APIValidator を x64 バイナリに対して実行できません。 x86 マシンで x64 ドライバーをビルドする場合は、APIValidator をオフにする必要があります。
対処法:
ドライバー ソリューションのプロパティ ページに移動します。
[APIValidator]、[全般] の順に選択し、[ApiValidator の実行] を[はい] から [いいえ]に変更します。
Windows 7 システムで実行されている WDK には、KB (キロバイト) 3033929が必要です
Windows 7 を実行しているシステムに WDK をインストールする前に、Microsoft Security Advisory 3033929 (KB3033929) をインストールする必要があります。 KB3033929 は、Microsoft ダウンロード センターからダウンロードできます。
WDK をインストールすると、アドイン コンポーネントが既にインストールされているというエラーが Visual Studio から生成されます
このエラー メッセージは、WDK がアンインストールされたが、Visual Studio 用 WDK ドライバー拡張機能がアンインストールされていない場合に表示されます。
解決: Visual Studio で、[ 拡張機能 ] ドロップダウン メニューに移動し、[ 拡張機能の管理] を選択し、 Windows ドライバー キットを選択して、[アンインストール] を選択 します。
FAQ
操作方法、私が持っているWDKまたはEWDKのバージョンにプール割り当てのゼロ化の修正が含まれているかどうかを確認できますか?
システム設定で、[プログラムの追加または削除]に移動し、Windows ドライバー キットを検索し、バージョンをメモします。 Windows 10 バージョン 2004 の元の WDK のバージョンは 10.0.19041.1 です。 更新された WDK バージョンは 10.0.19041.685 EWDK の場合、EWDK 環境が起動したら、コマンド ウィンドウのタイトルを確認します。 更新されたバージョンには 、vb_release_svc_prod1.19041.685 が含まれています。 さらに、環境変数を見ると、BuildLab 変数に vb_release_svc_prod1.19041.685 が表示されます。
Windows ソフトウェア開発キット (SDK) も更新されましたが、これは必要ですか?
いいえ。ただし、更新された Windows ソフトウェア開発キット (SDK) には、onecore.lib の修正プログラムが含まれています。 また、一般に、SDK と WDK を揃えておくことをお勧めします。
WDK for Windows 10 バージョン 2004 が既にインストールされている場合は、更新されたバージョンをインストールする前にアンインストールする必要がありますか?
元の 2004 SDK と WDK をアンインストールし、セキュリティ更新 SDK と WDK をインストールすることをお勧めします。 つまり、更新された WDK が元の WDK の上にインストールされている場合、更新されたバージョンは元の WDK を上書きします。 注: このシナリオでは、「プログラムの追加または削除」では、両方のバージョンが一覧表示されます。