window显示驱动开发—监视器类函数驱动程序

设备节点用于表示已连接到一台监视器的显示适配器上的每个视频输出。 设备节点是显示适配器设备节点的子节点。

通常情况下,设备堆栈中只有两个设备对象代表一对视频输出/监视器:

  • 物理设备对象 (PDO)。
  • 功能设备对象 (FDO)。

在某些情况下,筛选器设备对象 (DO) 与供应商提供的筛选器驱动程序相关联。 此筛选器设备对象位于 FDO 的上方。

对于集成监视器,如笔记本电脑上的内置平板显示器,可能存在与高级配置和电源接口 (ACPI) 驱动程序相关联的筛选器 DO。 此筛选器 DO 位于 PDO 的上方。

下表列出了连接有监视器的视频输出的设备堆栈。

设备对象必需/可选驱动程序
筛选器 DO可选,一般不需要监视器供应商提供的筛选器驱动程序
FDO必须Microsoft 提供的监控器类函数驱动程序 (Monitor.sys)
筛选器 DO仅集成 ACPI 显示面板需要由 Microsoft 提供的 ACPI 驱动程序 (Acpi.sys)
PDO必须由显示适配器供应商提供的总线驱动器(显示微型端口/端口对)

用户模式应用程序使用 WMI 调用监控器类函数驱动程序的服务。 这些服务包括公开监视器的标识数据。 对于 ACPI 显示器,服务包括设置显示器亮度。

监视器会在扩展显示识别数据 (EDID) 结构中存储其标识和功能信息。 EDID 是一种元数据格式,可让显示器向主机提供有关其标识和功能的信息,而与监视器和主机之间使用的通信协议无关。 FDO 处理来自用户模式应用程序的请求,以读取监视器设备堆栈中监视器的 EDID。 当 FDO 收到检索显示器 EDID 的请求时:

  • FDO 会向监视器设备堆栈底部的 PDO 发送请求。
  • PDO 使用显示器数据通道 (DDC) 协议,通过 I²C 总线读取显示器的 EDID,该总线是内置于所有标准监视器电缆中的简单双线总线。

可以使用 ACPI_METHOD_OUTPUT_DDC 方法获取 EDID,该方法的别名在 Dispmprt.h 中定义。 对于没有其他标准机制来返回 EDID 数据的集成 LCD,则需要使用这种方法。

有关显示适配器和监视器之间通信的详细信息,请参阅 I2C 总线和显示适配器的子设备。

有关 EDID 结构和 DDC 协议的详细信息,请参阅视频电子标准协会 (VESA) 发布的以下标准:

  • 增强显示器数据通道标准 (E-DDC)
  • 增强 EDID 标准 (E-EDID)

可以从免费标准部分中的 vesa.org 下载这些标准。

有关 I²C 总线的详细信息,请参阅 Philips Semiconductors 出版的 I²C 总线规范。

 

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

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

相关文章

STM32CubeMX + HAL 库:基于 I²C 通信的 AHT20 高精度温湿度测量实验

1 概述1.1 实验目的本实验基于 STM32CubeMX 与 HAL 库,借助硬件 IC 接口实现对 AHT20 高精度温湿度传感器的测量与数据处理。实验内容涵盖 AHT20 的初始化流程、指令交互机制、测量数据的采集与物理量转换等关键环节。通过对实验驱动代码与测试结果的完整展示&#…

今日分享:C++ -- vector

😎【博客主页:你最爱的小傻瓜】😎 🤔【本文内容:C vector 😍 】🤔 --------------------------------------------------------------------------------------------------------------------…

NAS Docker 安装N8N

NAS Docker 安装N8Ndocker 操作中文版使用 Docker Compose(更易于管理)创建一个 docker-compose.yml 文件,内容如下:yaml version: 3services:n8n:image: n8nio/n8n:latestcontainer_name: n8nrestart: unless-stoppedports:- &q…

Node.js汉字转拼音指南:pinyin-pro全解析

pinyin-pro 工具库简介核心功能:汉字转拼音、多音字处理、音调控制、格式定制等性能特点:高效、轻量级、支持多种拼音风格应用场景:搜索优化、数据排序、中文输入法等环境准备与安装Node.js npm 或 yarn 安装 pinyin-pronpm install pinyin-p…

UART-TCP双向桥接服务

UART-TCP双向桥接服务是一种将串口(UART)通信与TCP/IP网络通信相互转换的技术服务,其核心功能是实现两种不同协议之间的数据透明传输。1. 基本概念UART(串口):硬件设备的传统通信接口,常见于嵌入…

江协科技STM32学习笔记补充之001。为什么C语言在对STM32编程过程中的二进制要用十六进制来进行读写。而不能直接用二进制来进行读写。

下面给你一个“为什么嵌入式 C(如 STM32)普遍用十六进制而不是二进制来读写寄存器/地址”的系统性分析。核心观点:十六进制是对底层位模式更高效、更可靠的“人类可读编码”,与硬件资料、编译器和调试器生态形成了标准化协同。1&a…

从 “对话” 到 “共创”:生成式 AI 如何重塑内容创作全流程,普通人也能掌握的高效工具指南

一、引言:内容创作的 “AI 范式转移”—— 从单向输出到双向共创​传统内容创作痛点:灵感枯竭、流程繁琐(选题 - 调研 - 初稿 - 修改 - 定稿耗时久)、专业门槛高(如设计需掌握 PS、写作需深厚文字功底)​生…

函数、数组与 grep + 正则表达式的 Linux Shell 编程进阶指南

文章目录1.函数相关2.数组相关3.正则表达式与grep根据你提供的内容,我整理了一份关于Shell脚本中函数、数组和正则表达式的简明参考: 1.函数相关 函数调用: 直接使用函数名调用:函数名 参数传递: 函数内接收参数&…

nginx-realip问题解决方案

nginx-realip问题解决方案一、配置真实ip解析二、日志中记录真实 IP三、在日志中验证一、配置真实ip解析 让backend server知道前端是谁来访问的,知道他们的ip地址 LB在转发数据包的时候,在http请求报文里增加一个字段,携带user的ip地址&am…

Kafka入门指南:从安装到集群部署

一、Kafka 基础与系统要求 1.1 核心概念 Broker:Kafka 服务器节点,负责存储消息和处理客户端请求 Topic:消息分类的逻辑容器,每条消息需指定发送到某个 Topic Partition:Topic 的物理分片,可分布式存储…

20250828在荣品RD-RK3588-MID开发板的Android13系统下适配Bainianxing的GPS模块BU-16M10

20250828在荣品RD-RK3588-MID开发板的Android13系统下适配Bainianxing的GPS模块BU-16M10 2025/8/29 9:50荣品RD-RK3588-MID开发板。适配GPS 38400bps 需要配置波特率吗?一般是 9600这边使用的泰斗 你要适配新的gps模块?规格书:Baud rate 3840…

对部分国家(地区)出口商品类章金额数据库

一、数据库简介【艾思产研数据平台】对部分国家(地区)出口商品类章金额数据库,收录了2015年02月 - 2025年5月的信息,共计49万余条数据,整理出7个常用字段内容。更新频率为月更。字段内容年月、类章、国家、国家id、所属分类、月出口商品类章金…

STM32——中断

总:STM32——学习总纲 一、什么是中断 1.1 作用与意义 1.2 STM32 GPIO 外部中断简图 二、NVIC 2.1 NVIC 基本概念 Nested vectored interrupt controller,嵌套向量中断控制器,属于内核(M3、M4、M7) 用不到很多的优先…

DVWA靶场通关笔记-Weak Session IDs (Impossible级别)

目录 一、Session ID 二、源码分析 1、index.php 2、impossible.php 三、Weak Session IDs安全级别对比 四、impossible防范方法分析 1、高随机性会话 ID 生成 2、严格的 Cookie 作用域限制 3、安全的传输与存储控制期 本系列为通过《DVWA靶场通关笔记》的Weak Sessio…

SyncBack 备份同步软件: 使用 FTPS、SFTP 和 HTTPS 安全加密传输文件

传输加密是使用安全连接在网络中传输数据(例如文件)的过程。TLS(传输层安全)、SSL(安全套接字层)、SSH(安全套接字外壳)、HTTPS(基于 SSL/TLS 的超文本传输协议&#xff…

保健品跨境电商:如何筑牢产品质量与安全防线?

保健品跨境电商:如何筑牢产品质量与安全防线?在保健品跨境电商领域,“质量与安全”是消费者信任的基石,也是品牌长期发展的生命线。从海外工厂生产到国内消费者手中,产品需经历“跨国运输、清关核验、仓储配送”多环节…

手把手教你搭建 UDP 多人聊天室(附完整源码)

一、项目介绍 本文将分享一个基于 UDP 协议的简易多人聊天室项目,包含服务器端和客户端的完整实现。该聊天室支持多客户端同时连接,能实现消息群发、用户加入 / 退出通知等核心功能,适合作为网络编程入门实践案例。项目采用 C 语言开发…

Vue基础知识-使用监视属性watch和计算属性computed实现列表过滤+排序

一、完整源码<!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Document</title><script src…

自动化运维-ansible中的管理机密

自动化运维-ansible中的管理机密 一、Ansible Vault 在自动化配置管理中&#xff0c;直接以纯文本形式存储密码、API密钥、证书等敏感信息是极大的安全漏洞。Ansible Vault 正是为了解决这一问题而设计的核心功能 Ansible Vault 是 Ansible 的一个核心功能&#xff0c;它允许用…

UFUNCTION C++ 的再次理解

一.UFUNCTION 格式和属性也比较像&#xff0c;两部分 函数说明符&#xff0c;和元数据说明符UFUNCTION不仅能 控制对蓝图公开&#xff0c;还能与 绑定委托&#xff0c;用户输入,网络回调功能相关联&#xff0c;而且还能创建自己控制带命令二.函数说明符控制 &#xff0c;函数在…