Windows Driver Kit (WDK) の既知の問題

このトピックでは、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 内のデバッガーが機能しない

Visual Studio 2022バージョン17.2.0および17.3をWindows 11バージョン22H2 WDK (10.0.22621.382) で使用する場合、Visual Studioインターフェイス内でドライバーをデバッグすることはできません。 この問題を回避するには、Visual Studioを17.4.1以降に更新するか、WinDbgでデバッグするか、17.2.0より前のバージョンのVisual Studioを使用します。 次のエラー メッセージは、この問題に関連しています。

UI で QueryBuildManagerBusyEx を呼び出す必要があります。

WDF 再頒布可能パッケージ共同インストーラーが機能しない

このリリース以降、WDF 再頒布可能共同インストーラーはサポートされなくなりました。 具体的には、Windows 11バージョン22 H 2 WDK と古い WDK の両方があるコンピューターでは、WDF 1.11ドライバーをビルドすると、WDF コインストーラーが見つからないため、msbuild が失敗します。

この問題を解決するには、Windows 11 バージョン 22H2 WDK をインストールする前に、\Program files (x86)\windows kit\10\redist\wdf フォルダーをバックアップし、後で復元します。 または、Windows 11 バージョン 22H2 WDK を既にインストールしている場合は、別のコンピューターの WDK 8 再頒布可能コンポーネントで MSI ファイルをインストールし、redist フォルダーをそのフォルダーにコピーします。 詳しくは、「再配布可能な Framework コンポーネント」をご覧ください。

WDK for Windows 10 バージョン 2004

ExAllocatePoolZero、ExAllocatePoolQuotaZero、および ExAllocatePoolPriorityZero 関数の問題 FIXED

2020 年 5 月、OSR は、プール割り当ての自動ゼロ化に対する新しい下位レベルのサポートに問題があり、Windows 10 バージョン 1909 を実行しているシステムで割り当てがゼロ初期化されない可能性があることを発見しました。 これは、Windows 10 バージョン 2004 の WDK と Windows 10 バージョン 2004 の Enterprise WDK (EWDK) のセキュリティ更新で 12 月 16 日に修正されました。 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++ プロジェクトで有効にすることはなくなりました。

エラー 'A WDK corresponding to target '10.0.19041.0' was found.' (ターゲット '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 assembly 
'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 テスト エクスプローラーを使用して Device Fundamental テストを実行すると、ドライバー検証ツールは有効または無効になりません。

回避策: クライアント コンピューターで、次の手順に従ってドライバー検証ツールを手動で有効または無効にします。

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 マシン APIValidator で x64 ドライバーをビルドする場合は、オフにする必要があります。

対処法:

  1. ドライバー ソリューションのプロパティ ページに移動します。

  2. [APIValidator][全般] の順に選択し、[ApiValidator の実行][はい] から [いいえ]に変更します。

Windows 7 システムで実行されている WDK には、KB (キロバイト) 3033929が必要です

Windows 7 を実行しているシステムに WDK をインストールする前に、Microsoft Security Advisory 3033929 (KB (キロバイト)3033929) をインストールする必要があります。 KB3033929 は、Microsoft ダウンロード センターからダウンロードできます。

WDK をインストールすると、アドイン コンポーネントが既にインストールされているというエラーが Visual Studio から生成されます

このエラー メッセージは、WDK がアンインストールされたが、Visual Studio 用 WDK ドライバー拡張機能がアンインストールされていない場合に表示されます。

解決策: Visual Studio で、[拡張機能] ドロップダウン メニューに移動し、[拡張機能の管理] を選択し、[Windows ドライバー キット] を選択して、[アンインストール] をクリックします。

よく寄せられる質問

操作方法、私が持っている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 を上書きします。 注意:このシナリオでは、「プログラムの追加または削除」では、両方のバージョンが一覧表示されます。