Visual Studio でのネットワーク ケーブル経由でのカーネルモード デバッグの設定

重要

この機能は、WDK Windows 10 バージョン 1507 以降のバージョンでは使用できません。

Microsoft Visual Studioを使用して、イーサネット ネットワーク経由でカーネル モード デバッグを設定および実行できます。 カーネル モードデバッグにVisual Studioを使用するには、Windows Driver Kit (WDK) をVisual Studioと統合する必要があります。 統合環境をインストールする方法については、「Visual Studioを使用したデバッグ」を参照してください。

Visual Studioを使用してイーサネット デバッグを設定する代わりに、セットアップを自動的に行うことができます。 詳細については、「 KDNET ネットワーク カーネル のデバッグを自動的に設定する」を参照してください。

イーサネット ネットワークでのデバッグには、他の種類のケーブルを使用したデバッグと比較して、次のような利点があります。

  • ホストコンピューターとターゲット コンピューターは、ローカル ネットワーク上の任意の場所に配置できます。
  • 1 台のホスト コンピューターから多数のターゲット コンピューターを簡単にデバッグできます。
  • ネットワーク ケーブルは安価で、すぐに利用できます。
  • 2 台のコンピューターがある場合、両方にイーサネット アダプターが存在する可能性があります。 両方ともシリアル ポートを持っているか、両方に 1394 ポートがある可能性は低くなります。

デバッガーを実行するコンピューターは ホスト コンピューターと呼ばれ、デバッグ対象のコンピューターは ターゲット コンピューターと呼ばれます。 ホスト コンピューターは XP 以降Windows実行している必要があり、ターゲット コンピューターは Windows 8 以降を実行している必要があります。

サポートされているネットワーク アダプター

ホスト コンピューターは、任意の有線またはワイヤレス ネットワーク アダプターを使用できますが、ターゲット コンピューターは、Windowsのデバッグ ツールでサポートされているネットワーク アダプターを使用する必要があります。 サポートされているネットワーク アダプターの一覧については、「Windows 8.1 のネットワーク カーネル デバッグでサポートされるイーサネット NIC」および「Windows 10のネットワーク カーネル デバッグ用のサポートされているイーサネット NIC」を参照してください。

ホストとターゲット コンピューターの構成

  1. 適切なネットワーク ケーブルを使用して、ターゲット コンピューターのネットワーク アダプターをネットワーク ハブまたはスイッチにConnectします。 標準ケーブルまたはワイヤレス接続を使用して、ホスト コンピューターのネットワーク アダプターをネットワーク ハブまたはスイッチにConnectします。

  2. 「ドライバーの展開とテスト用にコンピューターをプロビジョニングする (WDK 8.1)」の説明に従って、ホスト コンピューターとターゲット コンピューターの構成を開始します。

  3. ホスト コンピューターのVisual Studioで、[コンピューターの構成] ダイアログ ボックスが表示されたら、[コンピューターのプロビジョニング] を選択し、[デバッガーの設定] を選択します。

  4. [ 接続の種類] で、[ ネットワーク] を選択します。

    screen shot showing an example of debugger settings with values for the following fields: connection type, target name, and bus parameters.

    [ポート番号] では、既定値をそのまま使用するか、選択した値を入力します。 49152 ~ 65535 の任意の番号を選択できます。 選択したポートは、ホスト コンピューターで実行されているデバッガーによって排他的アクセス用に開かれます。 ホスト コンピューター上で実行されている他のアプリケーションで使用されないポート番号を選択するように注意してください。

    メモ ネットワーク デバッグに使用できるポート番号の範囲は、会社のネットワーク ポリシーによって制限される場合があります。 制限事項をホスト コンピューターから確認する方法はありません。 会社のポリシーによって、ネットワーク デバッグに使用できるポートの範囲が制限されているかどうかを確認するには、ネットワーク管理者に確認してください。

    Key の場合は、自動的に生成される既定値を使用することを強くお勧めします。 ただし、必要に応じて独自のキーを入力できます。 詳細については、このトピックで後述 する「独自のキーの作成 」を参照してください。 ホスト IP の場合は、既定値をそのまま使用します。 これはホスト コンピューターの IP アドレスです。

    ターゲット コンピューターのデバイス マネージャーを使用して、デバッグに使用するアダプターの PCI バス、デバイス、および関数番号を確認します。 バス パラメーターに「b」と入力しますd.ここで、bdf は、アダプターのバス番号、デバイス番号、および機能番号です。 これらの値は、 [全般] タブの [場所] のデバイス マネージャーに表示されます。

  5. 構成プロセスには数分かかり、ターゲット コンピューターを 1 回または 2 回自動的に再起動する場合があります。 プロセスが完了したら、[ 完了] をクリックします。

注意 ターゲット コンピューターがドッキング ステーション内にあり、ドッキング ステーションの一部であるネットワーク アダプターに対してネットワーク デバッグが有効になっている場合は、ドッキング ステーションからコンピューターを削除しないでください。 ドッキング ステーションからターゲット コンピューターを削除する必要がある場合は、まずカーネル デバッグを無効にします。 ターゲット コンピューターでカーネル デバッグを無効にするには、管理者としてコマンド プロンプト ウィンドウを開き、 コマンド bcdedit /debug off を入力します。 ターゲット コンピューターを再起動します。

メモ ターゲット コンピューターに Hyper-V の役割をインストールする場合は、「 仮想マシン ホストのネットワーク デバッグの設定」を参照してください。

ターゲット コンピューターでの dbgsettings の確認

重要

BCDEdit を使用してブート情報を変更する前に、テスト PC で BitLocker やセキュア ブートなどのWindowsセキュリティ機能を一時的に中断する必要がある場合があります。 テストが完了し、セキュリティ機能が無効になっている場合は、テスト PC を適切に管理するときに、これらのセキュリティ機能を再度有効にします。

ターゲット コンピューターで、管理者としてコマンド プロンプト ウィンドウを開き、次のコマンドを入力します。

bcdedit /dbgsettings

bcdedit /enum

...
key                     RF8...KNE
debugtype               NET
hostip                  10.125.5.10
port                    50001
dhcp                    Yes
...
busparams               0.29.7
...

debugtype が NET であり、ポートがホスト コンピューターのVisual Studioで指定したポート番号であることを確認します。 また、キーが、Visual Studioで自動的に生成された (または指定した) キーであることを確認します。

busparams が指定したバス パラメーターと一致することを確認します。

バス パラメータに入力した値が表示されない場合は、次のコマンドを入力します。

bcdedit /set "{dbgsettings}" busparamsb.d.F

ここで、bdf は、デバッグに使用するように選択したターゲット コンピューター上のネットワーク アダプターのバス、デバイス、および関数番号です。 これらの値は、デバイス マネージャーの [全般] タブの [場所] に表示されます。

たとえば次のような点です。

bcdedit /set "{dbgsettings}" busparams 0.29.7

デバッグ セッションの開始

  1. ホスト コンピューターの Visual Studio の [ツール] メニューの [プロセスにアタッチ] を選択します。
  2. トランスポートの場合は、カーネル モード デバッガー Windows選択します
  3. [修飾子] で、以前に構成したターゲット コンピューターの名前を選択します。
  4. [アタッチ] をクリックします。

ファイアウォールを介してデバッガーを許可する

最初にネットワーク デバッグ接続を確立しようとすると、ファイアウォール経由でデバッグ アプリケーション (Microsoft Visual Studio) を許可するように求められる場合があります。 クライアントバージョンのWindowsはプロンプトを表示しますが、サーバーバージョンのWindowsはプロンプトを表示しません。 ドメイン、プライベート、パブリックの 3 つのネットワークの種類すべてについてチェック ボックスをオンにして、プロンプトに応答します。 プロンプトが表示されない場合、またはプロンプトが使用可能になったときにチェック ボックスをオンにしなかった場合は、コントロール パネルを使用してファイアウォール経由のアクセスを許可する必要があります。 システムとセキュリティコントロール パネル>開き、[ファイアウォールを介してアプリを許可する] Windowsクリックします。 アプリケーションの一覧で、チェック ボックスを使用して、ファイアウォールを通過するVisual Studioを許可します。 Visual Studio を再起動します。

独自のキーの作成

ターゲット コンピューターをセキュリティで保護するには、ホストコンピューターとターゲット コンピューターの間を移動するパケットを暗号化する必要があります。 ターゲット コンピューターを構成するときは、自動的に生成された暗号化キー (Visual Studio構成ウィザードで提供) を使用することを強くお勧めします。 ただし、独自のキーを作成することもできます。 ネットワーク デバッグでは、256 ビット キーを使用します。4 つの 64 ビット値 (base 36 ではピリオドで区切られた値) として指定されています。 各 64 ビット値は、最大 13 文字を使用して指定されます。 有効な文字は、a ~ z の文字と 0 から 9 の数字です。 特殊文字は使用できません。 次の一覧は、有効な (厳密ではありませんが) キーの例を示しています。

  • 1.2.3.4
  • abc.123.def.456
  • don't.use.previous.keys

ネットワーク ケーブル経由のデバッグに関するヒントのトラブルシューティング

デバッグ アプリケーションはファイアウォール経由で許可する必要があります

デバッガー (WinDbg または KD) には、ファイアウォール経由のアクセス権が必要です。 コントロール パネルを使用して、ファイアウォール経由のアクセスを許可できます。 システムとセキュリティコントロール パネル>開き、[ファイアウォールを介してアプリを許可する] Windowsクリックします。 アプリケーションの一覧で、チェック ボックスを使用して、ファイアウォールを通過するVisual Studioを許可します。 Visual Studio を再起動します。

ポート番号は、ネットワーク ポリシーで許可されている範囲内である必要があります

ネットワーク デバッグに使用できるポート番号の範囲は、会社のネットワーク ポリシーによって制限される場合があります。 会社のポリシーによって、ネットワーク デバッグに使用できるポートの範囲が制限されているかどうかを確認するには、ネットワーク管理者に確認してください。

ポート番号を変更する必要がある場合は、次の手順に従います。

  1. ホスト コンピューター上の Visual Studio の [ドライバー] メニューで、 [Test (テスト)] > [Configure Computers (コンピューターの構成)] の順に選びます。
  2. テスト コンピューターの名前を選択し、[ 次へ] をクリックします。
  3. [ コンピューターのプロビジョニング] を選択し、[デバッガーの設定] を選択します[次へ] をクリックします。
  4. [ ポート番号] に、ネットワーク管理者が許可する範囲内の番号を入力します。 [次へ] をクリックします。
  5. 再構成プロセスには数分かかり、ターゲット コンピューターが自動的に再起動されます。 プロセスが完了したら、[ 次へ ] をクリックし 、[完了] をクリックします。

busparams を指定する

デバッグに使用するネットワーク アダプターのバス、デバイス、および関数番号を指定する必要があります。 バス パラメーターを指定するには、デバイス マネージャー開き、デバッグに使用するネットワーク アダプターを見つけます。 ネットワーク アダプターのプロパティ ページを開き、[全般] タブの [場所] に表示されるバス番号、デバイス番号、および関数番号をメモします。管理者特権のコマンド プロンプト ウィンドウで、次のコマンドを入力します。ここで、bdf は、バス、デバイス、および関数番号を 10 進形式で指定します。

bcdedit -set "{dbgsettings}" busparamsb.d.F

ターゲット コンピューターを再起動します。

Visual Studio でのカーネル モード デバッグの設定

Windows 10 でネットワーク カーネル デバッグ用にサポートされているイーサネット NIC

Windows 8.1 でネットワーク カーネル デバッグ用にサポートされているイーサネット NIC

Windows 8 でネットワーク カーネルのデバッグ用にサポートされているイーサネット NIC