一、Windows 10 及之后的 Miracast 支持
从 Windows 10(WDDM 2.0)开始,操作系统内置了通用的 Miracast 堆栈,可在任何 GPU 上运行。
– 相关文档:使用 Windows 10 构建一流的无线投影解决方案
– WHLK 测试文档:Device.Graphics.WDDM13.DisplayRender.WirelessDisplay
**重要提示**:驱动程序开发人员不应再实现自定义 Miracast 堆栈。微软可能会在未来的 Windows 版本中删除对自定义 Miracast 堆栈的支持。
二、Windows 8.1 中的 Miracast 支持(WDDM 1.3)
WDDM 1.3 驱动可以通过 Miracast DIS 选择性支持 Miracast。以下接口仅适用于 Windows 8.1 的自定义实现。
1. 用户模式 DDI(由操作系统提供的回调函数)
这些函数由操作系统实现,供 Miracast 用户模式驱动程序调用(通过 `MIRACAST_CALLBACKS` 结构返回):
– `PFN_GET_NEXT_CHUNK_DATA` – 获取下一个编码区块信息
– `PFN_MIRACAST_IO_CONTROL` – 发送同步 I/O 控制请求
– `PFN_REGISTER_DATARATE_NOTIFICATIONS` – 注册网络 QoS 与带宽通知
– `PFN_REPORT_SESSION_STATUS` – 报告 Miracast 会话状态
– `PFN_REPORT_STATISTIC` – 报告 Miracast 链路统计信息
2. 用户模式 DDI(驱动程序必须实现的函数)
驱动程序必须在 `MIRACAST_DRIVER_INTERFACE` 中提供这些函数:
– `PFN_CREATE_MIRACAST_CONTEXT` – 创建 Miracast 上下文
– `PFN_DESTROY_MIRACAST_CONTEXT` – 销毁 Miracast 上下文
– `PFN_HANDLE_KMD_MESSAGE` – 处理来自内核模式驱动程序的消息
– `PFN_DATARATE_NOTIFICATION` – 通知比特率变化
– `QUERY_MIRACAST_DRIVER_INTERFACE` – 查询驱动接口
– `PFN_START_MIRACAST_SESSION` – 启动 Miracast 会话
– `PFN_STOP_MIRACAST_SESSION` – 停止 Miracast 会话
3. 相关用户模式结构与枚举
– 回调与数据:`MIRACAST_CALLBACKS`, `MIRACAST_CHUNK_DATA`, `MIRACAST_CHUNK_ID`, `MIRACAST_CHUNK_INFO`, `MIRACAST_CHUNK_TYPE`
– 统计与状态:`MIRACAST_DATARATE_STATS`, `MIRACAST_STATISTIC_DATA`, `MIRACAST_STATISTIC_TYPE`, `MIRACAST_STATUS`
– 会话与协议:`MIRACAST_SESSION_INFO`, `MIRACAST_PROTOCOL_EVENT`, `MIRACAST_WFD_CONNECTION_STATS`
– 显示配置新增/更新:
– `DISPLAYCONFIG_TARGET_BASE_TYPE`(新)
– `DISPLAYCONFIG_VIDEO_SIGNAL_INFO`(新增 AdditionalSignalInfo)
– `DISPLAYCONFIG_DEVICE_INFO_TYPE`(新增常量)
– `D3DKMDT_VIDEO_SIGNAL_INFO`(新增 AdditionalSignalInfo)
4. 内核模式 DDI(操作系统回调,供显示微型端口驱动调用)
通过 `DXGK_MIRACAST_DISPLAY_CALLBACKS` 结构提供:
- – `DXGKCB_MIRACAST_SEND_MESSAGE` – 发送异步消息到用户模式驱动
- – `DXGKCB_MIRACAST_SEND_MESSAGE_CALLBACK` – 消息完成/取消时调用
- – `DXGKCB_MIRACAST_REPORT_CHUNK_INFO` – 报告编码区块信息
5. 内核模式 DDI(显示微型端口驱动必须实现的函数)
通过 `DXGK_MIRACAST_INTERFACE` 结构返回:
- – `DXGKDDI_MIRACAST_CREATE_CONTEXT` – 创建内核模式 Miracast 上下文
- – `DXGKDDI_MIRACAST_DESTROY_CONTEXT` – 销毁上下文
- – `DXGKDDI_MIRACAST_HANDLE_IO_CONTROL` – 处理同步 I/O 控制请求
- – `DXGKDDI_MIRACAST_QUERY_CAPS` – 查询 Miracast 功能
6. 内核模式结构与枚举(新增或更新)
- – `DXGK_MIRACAST_CAPS`
- – `D3DKMDT_VIDEO_OUTPUT_TECHNOLOGY`(新增 D3DKMDT_VOT_MIRACAST 常量)
- – `D3DKMDT_VIDEO_SIGNAL_INFO`(新增 AdditionalSignalInfo)
- – `DXGK_CHILD_STATUS`(新增 Miracast 子结构)
- – `DXGK_CHILD_STATUS_TYPE`(新增 StatusMiracast 常量)
- – `DXGKARGCB_NOTIFY_INTERRUPT_DATA`(新增 MiracastEncodeChunkCompleted 子结构)



