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.pswp.cn/news/896071.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/896071.shtml
英文地址,請注明出處:http://en.pswp.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…