当前位置: 首页 > news >正文

window显示驱动开发—VidPN 对象和接口

视频演示网络(VidPN)管理器使用 VidPN 对象来维护有关视频演示源、视频演示目标与显示模式之间的关联的信息。 有关详细信息,请参阅 视频演示网络简介 主题。

VidPN 对象

VidPN 对象包含以下子对象。

  • 拓扑学
  • 源模式设置
  • 目标模式已设定
  • 监控源模式集合
  • 监测频率范围设定
  • 监视描述符集
  • 路径
  • 来源
  • 目标
  • 源模式
  • 目标模式
  • 监视源模式

下图演示了 VidPN 对象及其子对象。

上文所示图表说明了特定关联是一对一、一对多、多对一还是多对多。 例如,该图显示源可以属于多个路径,但目标只能属于一个路径。

关系图中的蓝色对象通过句柄和接口进行访问,灰色对象通过结构指针进行访问。 此上下文中的接口是包含函数指针的结构。 例如, DXGK_VIDPNTOPOLOGY_INTERFACE 结构包含指向显示微型端口驱动程序调用以检查和更改拓扑对象的函数(由 VidPN 管理器实现)的指针。 当显示微型端口驱动程序调用其中任一函数时,它必须向拓扑对象提供句柄。 下表列出了用于访问 VidPN 对象及其子对象的句柄、接口和指针数据类型。

物体访问方法和类型
VidPN (VidPN 接口)通过句柄和接口进行访问。 D3DKMDT_HVIDPN、 DXGK_VIDPN_INTERFACE
拓扑(VidPN 拓扑接口)通过句柄和接口进行访问。 D3DKMDT_HVIDPNTOPOLOGY,DXGK_VIDPNTOPOLOGY_INTERFACE
源模式集 (VidPN 源模式集接口)通过句柄和接口进行访问。 D3DKMDT_HVIDPNSOURCEMODESET,DXGK_VIDPNSOURCEMODESET_INTERFACE
目标模式设置(VidPN 目标模式设置接口)通过句柄和接口进行访问。 D3DKMDT_HVIDPNTARGETMODESET,DXGK_VIDPNTARGETMODESET_INTERFACE
监视源模式设置通过句柄和接口进行访问。 D3DKMDT_HMONITORSOURCEMODESET、 DXGK_MONITORSOURCEMODESET_INTERFACE
路径通过结构指针访问。 D3DKMDT_VIDPN_PRESENT_PATH
来源通过结构指针访问。 D3DKMDT_VIDEO_PRESENT_SOURCE
目标通过结构指针访问。 D3DKMDT_VIDEO_PRESENT_TARGET
源模式通过结构指针访问。 D3DKMDT_VIDPN_SOURCE_MODE
目标模式通过结构体指针访问。 D3DKMDT_VIDPN_TARGET_MODE
监视源模式通过结构指针访问。 D3DKMDT_MONITOR_SOURCE_MODE
监测频率范围设定通过结构指针访问。 [DXGK_MONITORFREQUENCYRANGESET_INTERFACE
监视描述符集通过结构指针访问。 [DXGK_MONITORDESCRIPTORSET_INTERFACE

VidPN 管理器

VidPN 管理器是 DirectX 图形内核子系统的组件之一,它与显示微型端口驱动程序合作,以生成和维护 VidPN。 以下步骤介绍了显示端口微型驱动程序如何获取到一个 VidPN 对象的句柄和接口。

  1. 初始化期间,DirectX 图形内核子系统调用显示微型端口驱动程序的 DxgkDdiStartDevice 函数。 该调用为显示微型端口驱动程序提供了一个 DXGKRNL_INTERFACE 结构,该结构包含指向 DirectX 图形内核子系统实现的函数的指针。 其中一个函数是 DxgkCbQueryVidPnInterface。
  2. 有时,VidPN 管理器需要显示微型端口驱动程序的帮助,因此它通过调用以下函数之一为显示微型端口驱动程序提供 VidPN 对象的句柄:
  • DxgkDdiIsSupportedVidPn
  • DxgkDdiRecommendFunctionalVidPn
  • DxgkDdiEnumVidPnCofuncModality

显示微型端口驱动程序将步骤 2 中获取的句柄传递给 DxgkCbQueryVidPnInterface,该句柄返回指向 DXGK_VIDPN_INTERFACE 结构的指针。

在显示微型端口驱动程序获得指向 VidPN 对象的句柄和接口之后,它可以根据需要获取主要子对象的句柄和接口,包括拓扑、源模式集、目标模式集以及监视器源模式集。 例如,显示微型端口驱动程序可以调用 pfnGetTopology (VidPN 接口中的函数之一),以获取 VidPN 拓扑对象的句柄和指向 DXGK_VIDPNTOPOLOGY_INTERFACE 结构的指针。

以下函数(在 VidPN 接口中)为 VidPN 对象的主要子对象提供句柄和接口。

  • pfnGetTopology
  • pfnAcquireSourceModeSet
  • pfnAcquireTargetModeSet

请注意,前面的列表中的两个函数具有释放 VidPN 子对象的相应函数。

  • pfnReleaseSourceModeSet
  • pfnReleaseTargetModeSet

在显示微型端口驱动程序获取一个句柄和一个 VidPN 主子对象的接口后,它可以调用接口函数来获取与此主子对象相关的对象的描述符。 例如,给定拓扑对象的句柄和接口,显示微型端口驱动程序可以执行以下步骤来获取拓扑中所有路径的描述符。

  • VidPN 拓扑接口

调用 VidPN 拓扑接口的 pfnAcquireFirstPathInfo 函数,以获取指向描述拓扑中第一个路径 的D3DKMDT_VIDPN_PRESENT_PATH 结构的指针。

  • VidPN 拓扑接口

重复调用 pfnAcquireNextPathInfo 函数以获取指向描述拓扑中剩余路径的D3DKMDT_VIDPN_PRESENT_PATH结构的指针。

同样,显示微型端口驱动程序可以通过调用以下任何模式集接口的 pfnAcquireFirstModeInfo 和 pfnAcquireNextModeInfo 函数来获取模式集的模式的描述符。

  • DXGK_VIDPNSOURCEMODESET_INTERFACE
  • DXGK_VIDPNTARGETMODESET_INTERFACE
  • DXGK_MONITORSOURCEMODESET_INTERFACE

请注意, DXGK_VIDPNSOURCEMODESET_INTERFACE 接口没有从源模式集中删除模式的函数。 当显示微型端口驱动程序需要更新源模式集时,它不会通过添加和删除模式来更改现有模式集。 而是创建一个替换旧模式集的新模式集。 必须更新模式集的函数示例是显示微型端口驱动程序的 DxgkDdiEnumVidPnCofuncModality 函数。 更新源模式集所涉及的步骤如下所示:

  • 调用 DXGK_VIDPNSOURCEMODESET_INTERFACE 接口的 pfnCreateNewModeInfo 以获取指向D3DKMDT_VIDPN_SOURCE_MODE结构的指针(由 VidPN 管理器分配)。

重复调用 pfnAddMode 以将模式添加到源模式集。

  • 调用DXGK_VIDPN_INTERFACE的 pfnAssignSourceModeSet 函数,将新模式设置为特定的视频演示源。 新的源模式集替换当前分配给该源的源模式集。

更新目标模式集类似于更新源模式集。 DXGK_VIDPNTARGETMODESET_INTERFACE接口具有以下函数:

  • VidPN 目标模式集合接口

用于创建新的目标模式集的 pfnCreateNewModeInfo 函数,以及用于将模式添加到集的 pfnAddMode 函数。

没有用于获取属于特定路径的源和目标的接口(函数集)。 显示微型端口驱动程序可以通过检查表示路径的 D3DKMDT_VIDPN_PRESENT_PATH 结构的 VidPnSourceId 和 VidPnTargetId 成员来确定哪个源和目标属于特定路径。

 


文章转载自:

http://X3iKYIgy.djmdk.cn
http://fnFVa1GB.djmdk.cn
http://kJZfMZek.djmdk.cn
http://prYluLtf.djmdk.cn
http://70cxjIGF.djmdk.cn
http://dqZoJqPY.djmdk.cn
http://YXsgsi6g.djmdk.cn
http://1UFPBxwQ.djmdk.cn
http://zRKKrIm4.djmdk.cn
http://5VxZzZRk.djmdk.cn
http://8PaU9xot.djmdk.cn
http://PHuEn5YZ.djmdk.cn
http://v428idPH.djmdk.cn
http://YSYDgBfC.djmdk.cn
http://bBXzDFDw.djmdk.cn
http://s214jq7u.djmdk.cn
http://i7M3vAmS.djmdk.cn
http://gdrWhlJv.djmdk.cn
http://uHBRhkFr.djmdk.cn
http://CA9pIfu7.djmdk.cn
http://9JKg4gj6.djmdk.cn
http://g9J7h73O.djmdk.cn
http://O88V2kig.djmdk.cn
http://LzlkQXKB.djmdk.cn
http://0Rt7N4H6.djmdk.cn
http://C154Wij0.djmdk.cn
http://01SHCEYQ.djmdk.cn
http://FjxLhRDS.djmdk.cn
http://Kgmybth7.djmdk.cn
http://lj215Rbj.djmdk.cn
http://www.dtcms.com/a/381436.html

相关文章:

  • 系统架构设计师——【2024年上半年案例题】真题模拟与解析(二)
  • 突破性能瓶颈:基于腾讯云EdgeOne的AI图片生成器全球加速实践
  • JavaScript事件机制与性能优化:防抖 / 节流 / 事件委托 / Passive Event Listeners 全解析
  • 文章目录集合
  • 海外短剧系统开发:技术架构与性能优化实践
  • Windsurf 插件正式登陆 JetBrains IDE:让 AI 直接在你的 IDE 里“打工”
  • 西门子 S7-200 SMART PLC 核心指令详解:从移位、上升沿和比较指令到流水灯控制程序实战
  • 【重要通知】ChatGPT Plus将于9月16日调整全球充值定价,低价区将被弃用,开发者如何应对?
  • 跨省跨国监控难题破解:多层级运维的“中国解法”
  • Spring Boot 与 Elasticsearch 集成踩坑指南:索引映射、批量写入与查询性能
  • 基础算法---【高精度算法】
  • React 18的createRoot与render全面对比
  • 在 React 中如何优化状态的使用?
  • 什么是半导体制造中的PVD涂层?
  • 半导体制造的光刻工艺该如何选择合适的光刻胶?
  • 用图论来解决问题
  • 机器视觉在半导体制造中有哪些检测应用
  • 从废料到碳减排:猎板 PCB 埋容埋阻的绿色制造革命,如何实现环保与性能双赢
  • CoCo:智谱推出的企业级超级助手Agent
  • 【高等数学】第十一章 曲线积分与曲面积分——第七节 斯托克斯公式 环流量与旋度
  • 嵌入式基础_STM32F103C8T6移植FreeRTOS(标准库函数)
  • 互联网大厂Java面试实录:从基础到微服务全栈技术答疑
  • DAY 28 类的定义和方法-2025.9.15
  • Linux信号小细节整理
  • Django全栈班v1.04 Python基础语法 20250913 下午
  • 第38次CCFCSP第三题--消息解码
  • 新零售第一阶段传统零售商的困境突破与二次增长路径:基于定制开发开源AI智能名片S2B2C商城小程序的实践探索
  • 金融科技:香港中小型企业(SME)市场规模、零售银行细分、家族办公室、私人银行、商业银行、渠道管理
  • 08_多层感知机
  • mysql基础——库与表的操作