Miracast

Wi-Fi Directを用いた、無線での伝送技術です。

導入

対応状況の確認

WindowsがMiracastに対応するには、ネットワークとディスプレイのドライバのバージョンが、

  • ネットワーク … NDIS (Network Driver Interface Specification) 6.4以上
    Windows PowerShellで
    PS C:\> Get-NetAdapter | select Name, NdisVersion
    として出力されるWi-Fiの”NdisVersion”の値
  • ディスプレイ … WDDM (Windows Display Driver Model) 1.3以上
    DirectX 診断ツール (dxdiag) を起動し、[ディスプレイ]タブの[ドライバー]の[ドライバー モデル]の値

の条件を満たす必要があります。またDirectX 診断ツールの[情報をすべて保存]からテキストとして出力すれば、[Miracast]の項目で「Miracast: Available, with HDCP」のようにサポート状況を確認できます。Windows 10ミニTips(43) 「デバイスキャスト」はどうやって使う? | マイナビニュース 阿久津良和 (2015/12/25)

これらの条件を満たしていてもMiracastがサポートされていないと表示されるときには、デバイスマネージャで[非表示のデバイスの表示]をし、[ネットワーク アダプター]にある[Microsoft Wi-Fi Direct Virtual Adapter]が有効になっているか確認します。

Miracastアダプタ

映像を表示する受信側が非対応の場合には、アダプタを接続することで対応させられます。

WindowsからWindowsへの接続

受信側 (Sink)

映像を表示する受信側となるデバイスで、Windows 10なら[接続 (Connect)]、Windows 11なら[ワイヤレス ディスプレイ]アプリを起動します。こうすることで受信の待機状態となります。

これが存在しないならば管理者としてサインインして、設定の【システム → このPCへのプロジェクション (Projecting to this PC)】の[オプション機能]を開きます。Windows 機能を追加、削除、または非表示にする | Microsoft Learn

そしてWindows 10ならば[機能の追加]をクリックして、Windows 11では[機能を表示]に続けて[使用可能な機能を表示する]をクリックして、機能の一覧から[ワイヤレス ディスプレイ]をチェックしインストールします。Windows 10の「接続」アプリでデュアルディスプレイを試してみた:Tech TIPS - @IT 小林章彦 (2020/07/20)

アプリを追加すると、[このPCへのプロジェクション]で接続時の設定をできます。

設定アプリからは”Windows ファイアウォールによるアプリケーションの許可”を検索することで開ける、[コントロール パネル\システムとセキュリティ\Windows Defender ファイアウォール\許可されたアプリ]で、[ワイヤレス ディスプレイ]の通信が許可されていることを確認します。Windows ファイアウォール経由でアプリを許可するリスク - Microsoft サポート

送信側 (Source)

映像を投影 (projection/プロジェクション) する送信側では、Windows 10ではアクションセンターの[接続]から、Windows 11では設定の【Bluetoothとデバイス → デバイスの追加】の[ワイヤレスディスプレイまたはドック]から接続できます。接続が確立されたデバイスへは、以降はWin+Kから接続できます。ワイヤレスでPCの画面を液晶テレビに映したい【“Wi-Fiの困った”を解決:デバイス編 第10回】 - INTERNET Watch 川添貴生 (2021/12/15)

トラブル対処法

受信側となるデバイスで「** からのプロジェクションを開始しています」のまま表示されないならば、受信側のファイアウォールの設定を確認します。そのとき既定のファイアウォールを使用しているならば、セキュリティが強化された Windows ファイアウォールで確認できます。

Windows ファイアウォールでの対処法

ローカル ユーザー オーナーで、ユーザーを制限しないようにする

グループが[ワイヤレス ディスプレイ]である規則のローカル ユーザー オーナーが、現在のアカウントとは異なるユーザーに設定されているならば、その規則と同様の設定の規則を作成して、ユーザーが制限されないようにします。

ファイアフォールのログから原因を特定して対処する

使用しているネットワークのプロファイル、つまりパブリックやプライベートのプロファイルのログで、[破棄されたパケットをログに記録する]を[はい]にします。そしてそこで表示されるログ ファイルの場所を確認します。

Miracastでの接続を試みて、失敗することを確認します。そしてログ ファイルのactionの列で、失敗した時刻に[DROP]となっている行のpid列の値を確認します。そしてタスク マネージャーでそのPIDのプロセス名を確認します。

Windows ファイアウォールの[受信の規則]のコンテキストメニューで[新しい規則]を選択し、下表のように指定します。

項目
規則の種類 [カスタム]
プログラム PIDから特定したプロセス。Storeアプリならば、とりあえず[すべてのプログラム]
プロトコルおよびポート プロトコルの種類:UDP
操作 接続を許可する
プロファイル 使用しているネットワークのプロファイル

そのとき問題のプロセスがReceiver.exe (Microsoft.PPIProjection) ならば、受信の規則にある[ワイヤレス ディスプレイ]の[アプリケーション パッケージ]の値を参考に、作成した規則のプロパティの[プログラムおよびサービス]タブの[アプリケーション パッケージ]で、現在のユーザーの"Microsoft.PPIProjection_***"を適用対象とします。

そして再度Miracastでの接続を試みて、成功することを確認します。

コンピュータの情報サイトから、まとめて検索