Windows 图形显示驱动开发-查询 WDDM(3.2) 功能支持和启用

查询 Windows 显示驱动程序模型 (WDDM) 功能的支持和启用。 其中介绍了:

用户模式和内核模式显示驱动程序(UMD 和 KMD)如何查询 OS,以确定 WDDM 功能在系统上是否受支持和已启用。

OS 如何确定驱动程序是否支持特定的 WDDM 功能。
从 Windows 11 版本 24H2 (WDDM 3.2) 开始引入此功能查询机制。

WDDM 功能概述

可以将 WDDM 视为功能集合,其中一项功能是涵盖某些功能的 WDDM API/DDI 的集合。

功能由功能 ID 标识,它由类别 ID 和类别中功能本身的子 ID 组成。

OS 已知的每个功能都有关联的状态信息,用于确定该功能在系统上是否受支持和/或已启用。 某些功能可以是驱动程序功能。 驱动程序功能需要启用驱动程序的某个级别的支持。 Dxgkrnl 提供握手机制来确定功能配置。 注册表项可以基于每个功能、每个适配器覆盖功能配置。

驱动程序功能还可以具有一个功能接口,该接口提供与该功能相关的驱动程序 DDI。 通过支持单个功能接口,我们不再需要依赖更新 OS 和 KMD 之间的主接口,后者以前只能使用更新的 WDDM 版本控制更改进行扩展。 此方法提供了一种更灵活的方式,用于向以前的 OS 或通过 Windows Moment 版本向后移植功能,而无需定义特殊支持。

每个功能都可以包含一个依赖项列表,作为先决条件,这些依赖项也必须受支持。 需要此类依赖项的未来功能将在其文档中指示其所需的依赖项。

功能会进行版本控制,并且每个受支持的版本均可以具有不同的接口或配置。

WDDM 引入了一组 API 来用于查询特定功能状态。 API 包括:

DXGK_FEATURE_INTERFACE:在调用 DxgkDdiStartDevice 后,KMD 可以查询并使用此接口来确定特定功能在系统中是否受支持和已启用。
此机制取代了以下现有 DDI:
DxgkCbIsFeatureEnabled
DxgkCbQueryFeatureSupport

DXGKDDI_FEATURE_INTERFACE:此机制允许 OS 从 KMD 查询功能接口。
DxgkIsFeatureEnabled2此函数是系统提供的 displib 库中的入口点。
KMD 可以从其 DriverEntry 例程调用 DxgkIsFeatureEnabled2,而无需初始化 Dxgkrnl 来确定系统是否启用了特定功能。

D3DKMTIsFeatureEnabled:此用户模式 API 允许用户模式模块确定是否启用了特定功能。
加载显示微型端口驱动程序时,WDDM 端口驱动程序会查询所有依赖于驱动程序支持的功能。

驱动程序可以在加载时查询 WDDM 端口驱动程序,以便获取受支持的功能。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/896071.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

MySQL InnoDB 存储引擎的索引详解

在 MySQL 中,InnoDB 是最常用的存储引擎,它支持事务、行级锁和外键约束等功能,而索引则是提升数据库查询性能的关键。在 InnoDB 存储引擎中,索引不仅仅是提高查询速度的工具,还是数据库的核心组成部分之一。本文将详细…

基于Spring Boot的RabbitMQ延时队列技术实现

文章目录 基于Spring Boot的RabbitMQ延时队列技术实现延时队列应用场景基本概念实现延时队列添加依赖基础配置配置类设计消息生产者消息消费者 两种TTL设置方式 订单超时关闭实例订单服务消息处理 延迟消息插件安装插件配置延迟交换机 基于Spring Boot的RabbitMQ延时队列技术实…

毕业项目推荐:基于yolov8/yolov5/yolo11的番茄成熟度检测识别系统(python+卷积神经网络)

文章目录 概要一、整体资源介绍技术要点功能展示:功能1 支持单张图片识别功能2 支持遍历文件夹识别功能3 支持识别视频文件功能4 支持摄像头识别功能5 支持结果文件导出(xls格式)功能6 支持切换检测到的目标查看 二、数据集三、算法介绍1. YO…

【智能客服】ChatGPT大模型话术优化落地方案

本文原创作者:姚瑞南 AI-agent 大模型运营专家,先后任职于美团、猎聘等中大厂AI训练专家和智能运营专家岗;多年人工智能行业智能产品运营及大模型落地经验,拥有AI外呼方向国家专利与PMP项目管理证书。(转载需经授权) 目录 一、项目背景 1.1 行业背景 1.2 业务现…

STM32的HAL库开发---单通道ADC采集(DMA读取)实验

一、实验简介 正常单通道ADC采集顺序是先开启ADC采集,然后等待ADC转换完成,也就是判断EOC位置1,然后再读取数据寄存器的值。 如果配置了DMA功能,在EOC位被硬件置1后,自动产生DMA请求,然后DMA进行数据搬运…

编译原理基础(1)

1.什么是ASCII码? ASCII码即美国信息交换标准代码,是基于拉丁字母的电脑编码系统,用于显示现代英语和部分西欧语言。其7位编码范围0-127,8位扩展到0-255。字符集含控制字符(0-31、127,用于控制设备或表示通…

基于 Highcharts 实现 Vue 中的答题统计柱状图组件

在现代 Web 开发中,数据可视化是一个重要的组成部分,而 Highcharts 是一个广泛使用的 JavaScript 图表库,可以帮助开发者在 Web 页面上轻松地绘制丰富的图表。在本文中,我们将基于 Highcharts 创建一个用于答题统计的柱状图&#…

SQLAlchemyError: A transaction is already begun on this Session.

资料 sqlalchemy 事务 - 简书 在 SQLAlchemy 中,事务是通过会话来管理的。当你开始一个事务(例如使用 async with db.begin()),它会开启一个新的事务,并在事务块结束时自动提交或回滚。如果在同一个会话中&#xff0c…

Java Web开发实战与项目——Spring Boot与Redis实现缓存管理

缓存技术在现代Web开发中至关重要,尤其是在高并发的环境中,缓存能够有效减少数据库访问压力、提高系统性能。Redis作为最流行的内存数据存储系统之一,常用于缓存管理。本节将讲解如何在Spring Boot项目中集成Redis,实现缓存管理&a…

C语言学习【1】C语言关于寄存器的封装

目录 1.封装寄存的C语言的语法volatile:unsigned int:*pGpiobOdrvolatile unsigned int * 2.进一步C语言的封装 在嵌入式中,底层一定是操作寄存器,我有一个理念,凡事一定要想清楚,把任何知识点融入自己的理解之中&…

#渗透测试#批量漏洞挖掘#畅捷通T+远程命令执行漏洞

免责声明 本教程仅为合法的教学目的而准备,严禁用于任何形式的违法犯罪活动及其他商业行为,在使用本教程前,您应确保该行为符合当地的法律法规,继续阅读即表示您需自行承担所有操作的后果,如有异议,请立即停止本文章读。 目录 一、漏洞概况 二、攻击特征 三、应急处置…

ollama 学习笔记

1. 参考博客:1. Ollama完整教程:本地LLM管理、WebUI对话、Python/Java客户端API应用:https://blog.csdn.net/python122_/article/details/1409457202. https://gitee.com/ai-big-model/ollama/tree/main --》REST APIollama 离线安装包 ollam…

ARM Linux平台下 OpenCV Camera 实验

一、硬件原理 1. OV2640 1.1 基本功能 OV2640 是一款低功耗、高性能的图像传感器,支持以下功能: 最高分辨率:200 万像素(1600x1200)。 输出格式:JPEG、YUV、RGB。 内置图像处理功能:自动曝…

vue2.x中父组件通过props向子组件传递数据详细解读

1. 父组件向子组件传递数据的步骤 在子组件中定义 props: 子组件通过 props 选项声明它期望接收的数据。props 可以是数组形式(简单声明)或对象形式(支持类型检查和默认值)。 在父组件中使用子组件时绑定 props&#x…

【Gin】2:快速上手Gin框架(模版、cookie、session)

本文目录 一、模版渲染二、自定义模版函数三、cookie四、Session五、cookie、session区别六、会话攻击 一、模版渲染 在 Gin 框架中,模板主要用于动态生成 HTML 页面,结合 Go 语言的模板引擎功能,实现数据与视图的分离。 模板渲染是一种动态…

【AI绘画】大卫• 霍克尼风格——自然的魔法(一丹一世界)

大卫• 霍克尼,很喜欢这个老头,“艺术是一场战斗”。老先生零九年有了iphone,开始用iphone画画,一零年开始用ipad画画,用指头划拉,据说五分钟就能画一幅,每天早上随手画几幅送给身边的朋友。很c…

解码 NLP:从萌芽到蓬勃的技术蜕变之旅

内容概况: 主要讲述NLP专栏的内容和NLP的发展及其在现代生活中的广泛应用。专栏强调实践为主、理论为辅的学习方法,并通过多个生活场景展示了NLP技术的实际应用,如对话机器人、搜索引擎、翻译软件、电商推荐和智能客服等。 这边我就不多做自我…

解决DeepSeek服务器繁忙问题的实用指南

目录 简述 1. 关于服务器繁忙 1.1 服务器负载与资源限制 1.2 会话管理与连接机制 1.3 客户端配置与网络问题 2. 关于DeepSeek服务的备用选项 2.1 纳米AI搜索 2.2 硅基流动 2.3 秘塔AI搜索 2.4 字节跳动火山引擎 2.5 百度云千帆 2.6 英伟达NIM 2.7 Groq 2.8 Firew…

前端(AJAX)学习笔记(CLASS 2):图书管理案例以及图片上传

* BootStrap弹框 功能:不离开当前页面,显示单独内容,供用户操作 步骤: 1、引入bootstrap.css和bootstrap.js 2、准备弹框标签,确认结构 3、通过自定义属性,控制弹框的显示和隐藏 其中的bootstrap.css…

数据结构:双链表list

list 是 C 标准库中的双向链表容器。 list初始化示例&#xff1a; #include <list>int n 7;std::list<int> lst; // 初始化一个空的双向链表 lststd::list<int> lst(n); // 初始化一个大小为 n 的链表 lst&#xff0c;链表中的值默认都为 0std::list<i…