Note
finddevice
は GitHub に移動しました。
USB NCM (Network Control Model) はファクトリ OS の既定の機能です。 これにより、USB 経由でホスト PC に接続されているファクトリ OS デバイスにホスト PC 上のリンクローカル IP アドレス (169.254.0.0/16) が与えられます。 同じホスト PC に複数のファクトリ OS デバイスが接続されている場合は、それらすべてに一意のリンクローカル IP アドレスが与えられます。 これにより、1 台のホスト PC が、USB で接続された任意の数のファクトリ OS デバイスと同時に通信できるようになります。
USB NCM サポートの重要な要件
- ホスト PC も USB NCM をサポートしている必要があります。 Windows 10 May 2019 Update (ビルド 18362) 以降では、オプションの Windows 機能やドライバーを必要とせずに USB NCM ホストがサポートされます。
- USB NCM デバイス検出サンプル コードが機能するように、ファクトリ OS イメージでは、WCOS_DEVICEPORTAL 機能が設定されています。
USB NCM を使用したファクトリ OS デバイスとの通信
USB NCM 接続が確立されると、ホスト PC からの localhost IP アドレスを使用して、ファクトリ OS デバイスがイーサネット経由でホスト PC のローカル ネットワークに接続されているかのように、ファクトリ OS デバイスと通信できるようになります。 たとえば、ホスト PC から次のことができます。
open-device <NCM link-local IP Address>
TShell コマンドレット (connect-using-tshell.md#open-device-connecting-tshell-to-target-device) を使用して、TShell でターゲット デバイスに接続する- SSH 経由でターゲット デバイスに接続する
- Factory Orchestrator アプリまたはクライアント API を使用してターゲット デバイスに接続する
プログラムによる USB NCM リンクローカル IP アドレスの検出
WSK には、サンプルの .NET Core 3.1 実行可能ファイル (finddevice.exe) とソース コードが含まれています。これをホスト PC 上で実行すると、USB で接続されているすべてのファクトリ OS デバイスのリンクローカル IP アドレスを自動的に検出できます。 finddevice.exe -?
を実行すると、このプログラムでサポートされている引数の完全な一覧が表示されます。
finddevice.exe ソース コードまたは実行可能ファイルを、TShell コマンドレットを使用する PowerShell スクリプトまたは Factory Orchestrator クライアント API 呼び出しを行う .NET Core プログラムと組み合わせると、プログラムによって、USB で接続されているファクトリ OS デバイスを検出し、デバイスへの接続を確立した後、それらの接続を使用して、接続されているデバイスをプログラムによって操作することができます。
構築済みの実行可能ファイルとソース コードは WSK\Program Files\Windows Kits\10\WSKSamples\UsbNcmFindDevice
にあります
接続のトラブルシューティング
finddevice.exe
を実行しても接続されているデバイスが見つからない場合は、次を確認してください。
- 上記の要件を満たしていることを確認します
- 目的のデバイスがホスト PC のデバイス マネージャーに表示されていることを確認します
- デバイスは [ネットワーク アダプター] の下に表示されます
- デバイス名は "UsbNcm Host Device" (UsbNcm ホスト デバイス) になります
- ホスト PC のファイアウォールによって、ホストとデバイス間の通信がブロックされている可能性があります。
finddevice.exe
からの通信を許可する規則を作成します- [ドメイン]、[プライベート]、および [パブリック] のネットワークの種類に対して規則を有効にします