自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

苏洛的博客

长期进行windows平台的驱动开发;游戏小工具开发;自动化设备项目开发;DIY硬件开发和应用;

  • 博客(859)
  • 收藏
  • 关注

原创 window显示驱动开发—枚举协同工作的 VidPN 源和目标模式

驱动开发者在实现 DxgkDdiEnumVidPnCofuncModality 时,需确保逻辑严格遵循上述规则。任何对模式集或路径支持的修改都可能导致显示行为异常或兼容性问题。

2025-09-15 09:38:58 1042

原创 window显示驱动开发—监视器热插拔检测

该摘要描述了WDDM2.2版本前图形驱动程序中视频输出子设备的管理机制。重点包括:1)显示微型端口驱动程序通过DxgkDdiQueryChildRelations函数为每个子设备分配类型和HPD感知值;2)不同类型连接器(TypeVideoOutput)的热插拔状态处理方式,包括轮询式(Polled)和可中断式(Interruptible);3)特殊场景处理,如笔记本电脑开合盖状态通过ACPI事件通知,硬件保护装置多分支连接的识别机制。文中详细说明了各种连接状态下驱动程序与操作系统的交互流程。

2025-09-15 09:38:44 764

原创 window显示驱动开发—枚举显示适配器的子设备

摘要:本文阐述了显示端口驱动、微型端口驱动和VidPN管理器在初始化时如何协同工作来枚举显示适配器的子设备。主要流程包括:1)通过DxgkDdiStartDevice获取子设备数量;2)使用DxgkDdiQueryChildRelations枚举所有潜在子设备;3)对每个子设备调用DxgkDdiQueryChildStatus和DxgkDdiQueryDeviceDescriptor获取设备状态和EDID信息;4)VidPN管理器通过查询注册表或调用DxgkDdiRecommendFunctionalVid

2025-09-14 23:53:20 549

原创 window显示驱动开发—显示适配器的子设备

摘要:显示适配器的子设备是指集成在显卡硬件上的物理输出端口(如HDMI、DP等),而非外部连接的显示器。系统通过显示微端口驱动程序的DxgkDdiQueryChildRelations函数枚举这些子设备,并为每个子设备定义类型(TypeVideoOutput或TypeOther)和热插拔检测能力(HPD Awareness)。HPD Awareness决定系统如何检测连接状态:持续连接型、中断通知型或轮询检测型。这一机制使操作系统能够管理显示端口的资源分配和状态监控,是Windows图形系统底层的重要基础架

2025-09-14 23:53:05 928

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

摘要:VidPN(视频演示网络)管理器通过VidPN对象管理显示源、目标与显示模式间的关联关系。VidPN对象包含拓扑、源/目标模式集等子对象,通过句柄和接口进行访问。显示驱动程序通过DXGKRNL接口获取VidPN对象,并调用特定函数操作子对象。更新模式集时需创建新集而非修改现有集,通过pfnCreateNewModeInfo和pfnAddMode等函数实现。该机制确保显示配置的灵活管理与高效更新。

2025-09-13 23:55:42 894

原创 window显示驱动开发—视频呈现网络简介

摘要:VidPN管理器是DirectX图形内核的组件,负责管理显示设备连接和显示模式。它维护视频呈现源(视图)与目标(输出连接器)之间的关联路径(VidPN拓扑),处理热插拔、多屏显示等场景。显示微型端口驱动程序负责底层硬件(如视频输出编解码器CRTC)的具体分配实现,而VidPN管理器仅关注源与目标的逻辑关联。系统支持动态调整显示模式,适应不同设备配置变化。

2025-09-13 23:55:31 940

原创 window显示驱动开发—视频呈现网络的术语

VidPN管理器通过视频演示网络(VidPN)模型管理显示适配器与连接设备的关系。VidPN包含视频源(独立视图)、目标(物理输出)及其关联拓扑,定义内容转换和信号格式。关键概念包括活动VidPN、固定模式、功能VidPN及其模式集。显示适配器子系统负责视频内存扫描和输出呈现,包含子设备(如视频输出编解码器)但不包括外部显示设备。屏幕外内存支持双缓冲等图形处理技术。

2025-09-12 10:30:14 640

原创 window显示驱动开发—为头装载和专用监视器生成自定义合成器应用(三)

摘要:Windows.Devices.Display.CoreAPI采用原子事务模型管理显示状态,确保在多设备共享GPU资源时配置的可靠性。其核心机制包括:1)不可变的DisplayState对象;2)事务性TryApply提交;3)FailIfStateChanged重试机制。开发者需在循环中创建新DisplayState,避免混合使用其他非原子性API,以保障显示模式变更的完整性和一致性,应对设备热插拔等动态变化场景。

2025-09-12 10:30:01 723

原创 window显示驱动开发—为头装载和专用监视器生成自定义合成器应用(二)

本文比较了Windows平台下多种显示相关API的功能特点。DisplayInformation、HdmiDisplayInformation等API分别针对不同场景(如Xbox媒体应用、物理监视器查询)。Win32旧API(如EnumDisplayDevices)提供虚拟化兼容方案,而DXGI相关API则专注于GPU呈现和显示配置。重点介绍了Windows.Devices.Display.Core API,它能枚举硬件、配置模式、管理显示内容,但存在对间接显示驱动支持不足的局限(截至Win10 2004版

2025-09-11 08:09:00 842

原创 window显示驱动开发—为头装载和专用监视器生成自定义合成器应用(一)

Windows.Devices.Display.CoreAPI是一个低级别WinRT API,专为第三方组合器和内部组件设计,用于直接管理显示硬件。它允许枚举、配置和驱动显示适配器,将显示控制器视为独立引擎。该API支持硬件查询、模式设置、显示配置,并实现与Direct3D的互操作,但不适用于常规应用内容显示。主要应用于VR/AR头显、专业显示设备等需要精细控制显示的场景,要求硬件必须标记为专用显示器。开发者需熟悉硬件概念,且仅限企业版/工作站版Windows 10 2004及以上版本支持。实现流程包括显示

2025-09-11 08:08:41 535

原创 window显示驱动开发—头戴式和专业显示器的 EDID 扩展

本文阐述如何在显示器固件中实现EDID/CTA扩展,使Windows系统能正确识别HMD和专用显示器。通过添加包含特定VSDB的扩展块,可解决显示器被错误纳入桌面环境等问题。文章详细说明了VSDB结构要求,包括版本号、用例分类等字段,并指出DisplayIDv2.0是首选机制,但EDID也可作为替代方案。不同Windows版本对VSDB的支持存在差异,制造商需根据设备类型选择适当版本以确保兼容性。

2025-09-10 01:38:55 752

原创 window显示驱动开发—头戴式和专用显示器

Windows通过自定义组合器技术绕过默认的桌面窗口管理器(DWM),为HMD和专用显示器提供特殊支持。这些显示器不显示传统桌面元素,由应用程序通过专用API全权控制,且需要驱动层特殊标识。微软的WDDM驱动框架允许硬件商将设备标记为"沉浸式显示器",Windows Mixed Reality是典型应用案例,其自定义合成器实现低延迟渲染,完全脱离DWM管理。这种架构使Windows在保持系统稳定的同时,为VR/AR设备提供高性能支持方案。(149字)

2025-09-10 01:38:35 607

原创 window显示驱动开发—监视筛选器驱动程序(三)

微软提供通用监视器驱动处理基本显示功能,仅在需要额外服务时才需供应商提供筛选器驱动。筛选器驱动位于设备堆栈上层,通过专用接口与用户程序交互。但需注意,显示器编程控制应由显卡驱动通过DDC/CI实现,而非监视器筛选器驱动。供应商应确保显卡驱动能正确控制显示器,或通过API直接调用DDC/CI功能。

2025-09-08 08:15:03 887

原创 window显示驱动开发—监视筛选器驱动程序(二)

摘要:显示设备节点结构包含物理设备对象(PDO)、功能设备对象(FDO)和可选过滤器设备对象(FilterDO),分别由总线驱动、显示驱动和第三方供应商提供。FDO通过显示器数据通道(DDC)协议读取EDID信息,ACPI显示器则需使用特定方法获取EDID。该层次结构支持监视器标识、亮度控制等功能,详细标准可参考VESA发布的E-DDC和E-EDID规范。(149字)

2025-09-08 08:14:47 426

原创 window显示驱动开发—监视筛选器驱动程序

微软的通用监视器驱动Monitor.sys已能处理标准DDC/CI操作(如EDID识别、亮度调节)。供应商仅需在显示器具备特殊功能(如电竞模式)时开发筛选器驱动,通过私有IOCTL协议与配套控制面板通信。供应商驱动以FilterDO形式附加在系统驱动堆栈上层,不应重复实现标准功能。这种架构既保障基础兼容性,又为差异化功能提供扩展空间。

2025-09-01 09:37:22 729

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

本文介绍了显示适配器与监视器之间的设备节点关系及通信机制。重点说明了设备堆栈结构(包含PDO、FDO和可选筛选器DO),以及不同设备对象对应的驱动程序。详细描述了EDID数据的获取过程:用户模式应用通过WMI调用Monitor.sys驱动程序,FDO向PDO发送请求,最终通过I²C总线或ACPI方法获取显示器EDID信息。文中还提供了相关技术标准的参考来源,包括VESA发布的EDID/DDC标准和Philips的I²C规范。特别指出对集成显示器需要采用特殊ACPI方法来获取EDID数据。

2025-09-01 09:37:02 319

原创 window显示驱动开发—由用户模式显示驱动程序实现的 Direct3D 函数(五)

摘要:Direct3D 12驱动模型相比D3D11进行了根本性变革,采用低级、显式的命令提交和资源管理模式。其接口结构可分为六大功能域:1)核心设备与命令调度,定义设备、队列和资源屏障等基础功能;2)资源内存管理,精细化控制资源创建与堆分配;3)视频加速,全面集成视频解码/处理功能;4)内容保护,提供加密会话和受保护资源会话;5)功能支持查询,报告硬件能力;6)视图实例化,支持高级渲染技术。该模型显著特点是"显式控制权下放",通过详尽的结构体版本化和视频功能核心化,为驱动提供构建高效GP

2025-08-31 00:15:00 807

原创 window显示驱动开发—监视驱动程序堆栈

Windows监视器驱动堆栈由核心功能驱动(Monitor.sys)和可选筛选器驱动组成。微软提供的Monitor.sys实现标准DDC/CI协议,支持基础显示功能如分辨率识别和亮度调节。显示器厂商可开发筛选器驱动来扩展功能,如高级色彩管理、专业显示模式等,通过自定义控制面板与硬件交互。这种分层架构既保障了基本兼容性,又允许厂商实现差异化功能,典型体现了Windows硬件驱动的模块化设计理念。

2025-08-31 00:15:00 1758

原创 window显示驱动开发—由用户模式显示驱动程序实现的 Direct3D 函数(三)

本文介绍了Direct3D 10.1和11.0版本的用户模式显示驱动程序状态函数。在10.1版本中,驱动程序通过D3D10_1DDI_DEVICEFUNCS结构提供状态函数指针,新增了混合状态和着色器资源视图等功能。11.0版本扩展了功能集,增加了命令列表、计算着色器、无序访问视图等新特性,并通过D3D11DDI_DEVICEFUNCS结构提供函数指针。两个版本都通过特定的适配器函数和创建设备函数与运行时交互,相关定义包含在d3d10umddi.h头文件中。

2025-08-30 00:15:00 716

原创 window显示驱动开发—由用户模式显示驱动程序实现的 Direct3D 函数(四)

《Direct3D驱动功能演进分析》摘要: 本文系统梳理了Direct3D各版本驱动功能的演进路径。D3D11.0引入计算着色器、曲面细分等核心功能;D3D11.1新增视频处理与内容保护功能组;D3D11.2主要扩展分级资源和调试标记功能;D3D12.0则彻底重构驱动模型,采用显式资源控制。各版本均保持向后兼容,通过分层函数表结构实现功能扩展,从基础渲染逐步扩展到视频处理、资源管理和极致性能优化三大领域。版本迭代呈现出从图形渲染向多媒体融合、从高层抽象向底层控制的发展趋势。

2025-08-30 00:15:00 828

原创 window显示驱动开发—由用户模式显示驱动程序实现的 Direct3D 函数(一)

Direct3D 9用户模式显示驱动程序接口概述 本文档描述了Direct3D版本9用户模式显示驱动程序(DLL)与运行时交互的接口规范。主要包含两部分内容: 函数接口:详细列出了驱动程序需要实现的函数,包括设备创建(OpenAdapter/CreateDevice)、资源管理、渲染操作、视频处理等200多个功能函数。 参数结构:定义了各函数调用时使用的参数结构体,共计80多种结构类型,用于在运行时与驱动程序间传递配置参数和操作数据。 这些接口通过d3dumddi.h头文件提供,驱动程序通过实现这些函数和结

2025-08-29 00:15:00 799

原创 window显示驱动开发—由用户模式显示驱动程序实现的 Direct3D 函数(二)

本文介绍了用户模式显示驱动程序(UMD)与Direct3D运行时之间的交互机制。驱动程序必须实现一组核心函数,通过D3D10DDI_ADAPTERFUNCS和D3D10DDI_DEVICEFUNCS两个结构体向运行时"汇报"其功能。这些函数分为对象创建销毁、渲染命令、状态设置、资源操作等类别,由运行时在应用程序请求图形操作时调用。驱动程序通过计算私有数据大小、创建资源对象、处理绘制命令等步骤,将应用程序的图形操作转换为底层硬件指令。整个流程涉及多种描述结构和枚举类型,确保运行时与驱动程序

2025-08-29 00:15:00 844

原创 window显示驱动开发—Direct3D 运行时函数由 User-Mode 显示驱动程序调用(二)

Direct3D运行时版本10+核心回调函数解析 本文详细介绍了Microsoft Direct3D 10及更高版本运行时提供的核心回调机制。运行时通过D3D10DDI_CORELAYER_DEVICECALLBACKS结构向用户模式显示驱动程序提供三类关键回调函数:控制回调(如错误设置)、状态刷新回调(涉及图形管线各阶段状态管理)以及内核服务访问函数(通过DXGI_DDI_BASE_CALLBACKS结构提供)。特别强调状态刷新回调通过运行时缓存机制优化性能,支持无状态驱动程序设计,并利用高水印技术提升槽

2025-08-28 00:15:00 1361

原创 window显示驱动开发—Direct3D 运行时函数由 User-Mode 显示驱动程序调用(三)

本文介绍了Direct3D 11/12运行时与用户模式显示驱动程序的交互机制。主要内容包括: D3D11运行时通过D3D11DDI_CORELAYER_DEVICECALLBACKS结构提供核心回调函数 状态刷新回调机制及其优化特性(高水印标记、无参数验证等) 详细列出了D3D11的各类状态回调函数(CS/DS/HS等) 完整列举了D3D12新增的核心回调函数(视频处理/加密会话/资源管理等) 特别说明了WDDM2.0/2.2新增的着色器缓存相关接口 这些回调机制构成了DirectX运行时与驱动程序间的标准

2025-08-28 00:15:00 1188

原创 window显示驱动开发—支持 OpenGL 增强(三)

Windows 8为OpenGL和DirectX的互操作性提供了底层增强功能,主要包括:1)新型键控互斥控制机制(D3DKMTCreateKeyedMutex2等函数),实现多线程/进程环境下图形资源的安全共享;2)OpenGL帮助函数集(D3DKMTOpenNtHandleFromName等),通过NT句柄和Luid标识实现跨进程资源访问。这些面向显卡驱动开发的底层接口(D3DKMT层)显著提升了不同图形API间的资源共享效率和系统稳定性,为混合渲染应用提供了更好的内核支持。

2025-08-27 00:15:00 617

原创 window显示驱动开发—Direct3D 运行时函数由 User-Mode 显示驱动程序调用(一)

本文介绍了Windows图形驱动架构的核心组件及其协作机制。重点阐述了用户模式显示驱动程序(UMD)与系统内核的交互方式:UMD运行在非特权用户模式,通过Direct3D运行时提供的回调函数间接访问内核功能。这些回调函数(如AllocateCB、RenderCB等)由运行时在初始化时传递给UMD,涵盖资源管理、命令提交、同步控制等关键操作。当UMD需要执行特权操作时,调用相应回调函数并传入参数结构体,由运行时和图形内核处理请求。这种设计实现了权限隔离,确保UMD在受限环境中仍能高效完成图形处理任务。

2025-08-27 00:15:00 613

原创 window显示驱动开发—支持 OpenGL 增强(一)

本文介绍了OpenGL ICD增强同步与互斥控制规范,主要包括以下内容:1)第二代同步对象架构及同步对象实现,包括创建和跨进程支持;2)键控互斥体实现,涉及资源访问控制及获取/释放机制;3)性能优化模式,如无竞争路径优化和批量同步操作;4)调试诊断功能,包括状态查询和死锁检测;5)版本兼容性要求;6)安全注意事项,如权限验证。该规范通过系统调用接口实现图形资源的同步与互斥控制,支持跨进程操作,并针对性能和安全进行了优化设计。

2025-08-26 03:45:00 283

原创 window显示驱动开发—支持 OpenGL 增强(二)

本文介绍了OpenGL/D3DKMT接口中用于资源管理和访问控制的函数集。主要内容包括:1) 使用D3DKMTConfigureSharedResource和D3DKMTCheckSharedResourceAccess管理共享资源访问权限;2) 通过D3DKMTPresent和D3DKMTGetPresentHistory实现操作历史记录追踪;3) 提供安全描述符创建、实时访问验证等实用函数示例;4) 包含呈现令牌管理结构GL_PRESENT_HISTORY_TOKEN的定义和使用方法。此外还介绍了显示模

2025-08-26 03:45:00 220

原创 window显示驱动开发—管理多个 GPU 方案的资源

WDDM驱动模型在多GPU资源管理中的演进 Windows显示驱动模型(WDDM)从Windows 7开始逐步增强多GPU资源管理能力。WDDM 1.2/1.3引入跨适配器资源共享,允许集成与独立GPU高效协作;WDDM 2.0+进一步优化性能,降低CPU开销。关键机制包括ResolveSharedResource函数解决数据一致性,以及驱动与视频内存管理器(VidMm)的协作。跨适配器资源存在特定限制,主要用于显示合成等场景。开发者需注意正确声明硬件支持、实现高效资源同步,并进行充分测试以确保稳定性。这些

2025-08-25 09:39:43 1079

原创 window显示驱动开发—混合系统 DDI 和 dList DLL 支持

摘要:Windows 8.1(WDDM1.3)开始支持混合系统跨适配器资源,引入相关函数和结构。Windows Server 2022(WDDM2.9)新增跨适配器资源扫描(CASO)功能,要求UMD必须支持pfnQueryDListForApplication2函数。该系统通过dListDLL管理应用程序列表,决定进程使用集成或离散GPU,DLL需满足大小、性能和注册表配置要求,如UserModeDListDriverName注册项设置。

2025-08-25 09:39:17 372

原创 window显示驱动开发—使用跨适配器资源在独立的 GPU 中进行渲染

摘要:本文介绍了Windows 8.1及以上系统中离散GPU与集成GPU协同工作的三种处理方案。主要内容包括:1)跨适配器资源共享机制,包括资源创建、呈现和复制过程;2)三种具体应用场景:重定向bitblt模型、直接翻转演示模型和全屏模型;3)各方案中Direct3D运行时、用户模式驱动程序和显示微型端口驱动程序的交互流程。重点阐述了不同方案下资源分配、呈现目标和翻转操作的技术实现细节,特别是跨GPU资源同步和DWM合成过程。

2025-08-15 01:05:41 1042

原创 window显示驱动开发—验证混合系统配置

本文阐述了Windows 8.1及后续版本中显示适配器混合系统的配置验证机制。系统启动时会识别POST适配器,根据WDDM1.3支持和显示面板特性判定为集成或离散混合适配器。关键要求包括:集成适配器需声明HybridIntegrated能力并支持跨适配器资源共享;离散适配器必须设置HybridDiscrete标志且无显示输出。系统严格限制仅允许加载一个WDDM1.3离散适配器,并提供了适配器过滤矩阵、调试工具和错误处理机制。从Windows 8.1开始逐步完善,到Windows 11要求WDDM2.0+驱动

2025-08-15 01:05:31 579

原创 window显示驱动开发—在混合系统中使用跨适配器资源

Windows 8.1引入WDDM驱动支持混合GPU系统,允许集成和独立GPU共享跨适配器资源。系统自动分配应用运行位置,驱动程序需通过DXGK_VIDMMCAPS结构表明支持。跨适配器资源需满足特定内存对齐要求(128字节/4行),仅支持分页到光圈内存段,且必须为线性共享资源。混合系统包含固定连接的集成GPU(连接显示器)和性能更强的独立GPU(仅渲染)。操作系统在启动或配置变更时检测系统架构。

2025-08-14 08:58:00 433

原创 window显示驱动开发—平铺资源支持

本文介绍了在WDDM1.3用户模式显示驱动中实现平铺资源功能的关键技术方案。主要包括:1)设备初始化时配置D3DWDDM1_3DDI_D3D11_OPTIONS_DATA1能力结构,声明支持平铺资源Tier2级别;2)实现核心DDI函数包括UpdateTileMappings、CopyTiles等,处理瓦片映射更新和数据拷贝;3)内存管理方面满足Tier2的4GB瓦片池大小和64KB对齐要求;4)支持16xMSAA多采样质量校验和ETW事件追踪等调试功能。文章还对比了WDDM1.3与2.0的版本差异,并提供

2025-08-14 08:57:45 973

原创 window显示驱动开发—多平面覆盖 VidPN 呈现

摘要:该文档详细规范了视频呈现网络(VidPN)多平面覆盖功能的实现要求。主要内容包括:1)平面控制函数DxgkDdiSetVidPnSourceAddressWithMultiPlaneOverlay的启用/禁用逻辑和VSync同步处理;2)可见性控制函数DxgkDdiSetVidPnSourceVisibility对平面状态的强制管理;3)与传统模式的兼容性实现;4)参数验证和安全检查机制;5)性能优化建议与WHQL认证要求。文档强调驱动程序需正确处理平面状态转换、支持原子化更新、实施严格参数验证,并保

2025-08-13 19:54:10 1088

原创 window显示驱动开发—DirectX 9 资源创建

本文介绍了调用CreateResource2函数创建MPO资源时的配置规范和实现要求。主要包含三部分内容:1)标志位设置规范,必须包含PRIMARY和SHARED_RESOURCE标志,并详细说明了可选标志的组合规则及验证逻辑;2)关键字段处理要求,VidPnSourceId需要验证有效性,RefreshRate必须设置为0;3)完整资源创建流程和错误处理机制。此外还涉及安全资源实现、WHQL认证要求以及不同硬件平台的优化建议。全文提供了从参数验证到资源分配、从标准要求到厂商实现的全面技术指导。

2025-08-13 19:53:53 746

原创 window显示驱动开发—创建多平面覆盖资源

摘要:本文详细阐述了在DirectX 11应用中创建多平面覆盖(MPO)资源时的关键配置要求。主要内容包括:1) BindFlags必须包含D3D10_DDI_BIND_PRESENT和D3D10_DDI_RESOURCE_MISC_SHARED标志;2) 主表面配置需正确设置DXGI_DDI_PRIMARY_DESC结构,包括匹配VidPnSourceId和显示模式;3) 保护内容需启用D3D11_1DDI_RESOURCE_MISC_RESTRICTED_CONTENT标志并实现内存加密;4) 提供了资

2025-08-11 13:51:35 790

原创 window显示驱动开发—多平面覆盖硬件要求

多平面覆盖硬件要求包括:支持非重叠和重叠平面,具备独立启用/禁用alpha混合的能力,所有平面需支持剪辑和缩放功能。至少一个平面需支持YUV格式转换,并满足指定色彩范围标准。硬件必须遵循原子式寄存器更新规则,确保平面属性在垂直回溯期间同步更新。混合运算需按特定顺序处理,支持从上到下或从下到上的混合算法,未覆盖区域需显示黑色。克隆模式下所有活动输出均需满足多平面覆盖要求才能启用该功能。

2025-08-11 13:51:07 491

原创 window显示驱动开发—MPO 内核模式结构

摘要:本文介绍了Windows内核模式驱动(KMD)中用于支持多平面覆盖(MPO)的结构。这些结构包括用于检查硬件支持属性的DXGK_CHECK_MULTIPLANE_OVERLAY_SUPPORT_PLANE,指定平面属性的DXGK_MULTIPLANE_OVERLAY_ATTRIBUTES系列,控制混合和翻转操作的DXGK_MULTIPLANE_OVERLAY_BLEND/FLAGS,以及用于显示配置的DXGK_MULTIPLANE_OVERLAY_PLANE系列。此外还包含VSync同步、YUV色彩处

2025-08-10 00:15:00 912

原创 window显示驱动开发—MPO 内核模式枚举

摘要:本文详细介绍了KMD中用于多平面覆盖(MPO)功能的枚举类型及其实现要求,包括立体显示模式(DXGK_MULTIPLANE_OVERLAY_STEREO_FLIP_MODE等)、图像质量控制(DXGK_MULTIPLANE_OVERLAY_STRETCH_QUALITY)、视频帧格式(DXGK_MULTIPLANE_OVERLAY_VIDEO_FRAME_FORMAT)以及MPO组能力查询(D3DDDICAPS_GET_MULTIPLANE_OVERLAY_GROUP_CAPS)。重点指出仅支持单声道

2025-08-10 00:15:00 679

A*算法解决八数码问题

这是人工智能中非常常见的算法:在一个3x3的网格里,有8个编号的方块和一个空格,目标是通过滑动方块把它们排列成目标状态,通常是数字1到8按顺序排列,空格在右下角。问题是给定任意一个初始状态,是否一定能够通过滑动到达目标状态呢?

2025-03-26

windows USB 驱动,用于PL2303芯片上报GPS信息使用

平台支持: win 10 x64 驱动功能: 打开并上报GPS信息,自己开源的。 项目开源地址:https://github.com/wangma/USBPL2303Win.git

2024-12-22

pl2303-linux.zip

代码截取于/drivers/usb/serial/pl2303.c,它作为linux平台下常用的驱动存在。 用于和驱动开发系列中的文章参考,了解PL2303的运行方式。

2024-12-19

基于win 10的 NDIS 6.0 Filter 驱动,新增加了收发数据包以及查询网卡Mac地址的代码

操作系统: win 10 x64 VS版本: VisualStudio.17.Release/17.11.4+35312.102 Windows Driver Kit 10.0.26100.1 内容概要: 新增以下功能的NDIS Filter driver,作为案例分析使用的; 1. 发送OID请求; 2. 发送自定义数据包,以ICMP数据包为例; 3. 接收数据包; 可以从代码中学习: 1. 内核OID的请求发送和接收; 2. 内核资源的分配和回收; 3. 数据包的发送和接受;

2024-10-27

基于NDIS 6.x的Filter生成代码

操作系统: win 10 x64 VS版本: VisualStudio.17.Release/17.11.4+35312.102 Windows Driver Kit 10.0.26100.1 内容概要: 默认情况下生成的NDIS Filter Sample,作为讲解用的; 可以从里面看到WDF和NDIS的基本运行方式。

2024-10-12

LUA脚本工具在windows平台下编译的版本

系统环境: windows 10 编译环境: VS2019 安装使用: 在windows + VS2019环境下面编译即可; 文档情况: /doc目录下可以找到合适的文档 新手只需要有一定的C语言基础,就看懂并实现简单的脚本编写和运行,和Python不一样,lua一直以简单高效、扩展性强著称。 教程网址: https://www.lua.org/docs.html

2024-10-02

基于windows 的日志串口驱动案例

开发支持: Microsoft Visual Studio Community 2019 版本 16.11.3 + WDK 19041 系统支持: Windows 10 版本 1507 测试情况: 关闭驱动签名强制,使用sscom测试OK; 介绍: 这是基于win 10 x64平台开发的,它创建了一个定时器(1s),并在定时器中上报日志信息,新手可以从中学到如何构建缓冲区、创建定时器、使用互斥锁等基本技能。 阅读建议: 1. 学习和使用前,请详细阅读专栏文章: WDF驱动程序开发专栏 2. 更详细的开发和代码讲解可以参考主页的文章: windows 驱动实例分析系列-定时日志的COM驱动

2024-10-01

基于UMDF 2.15版本的VirtualSerial(虚拟串口)驱动程序代码

开发支持: vistualMicrosoft Visual Studio Community 2019 版本 16.11.3 + WDK 19041 系统支持: Windows 10 版本 1507 ,Windows Server 2016 和更高版本 运行支持: Windows 10 版本 1507 测试情况: 关闭驱动签名强制,使用sscom测试OK; 这个是基于win 10 x64平台开发的,主要演示UMDF 2.x驱动程序的创建,以及演示serial类别的驱动如何与系统进行交互,新手可以从中学到UMDF驱动的开发技术,以及PORT类驱动的基础知识。 阅读建议: 1. 学习和使用前,请详细阅读专栏文章: WDF驱动程序开发专栏 2. 更详细的开发和代码讲解可以参考主页的文章: windows 驱动实例分析系列-COM驱动案例讲解.

2024-09-22

UnderConstructionSolution.zip

介绍: 这是windows C++ team 在开发和讲解推介C++ 、CX系列中用于演示的C++类别,它是一个 Visual Studio 解决方案,其中包含Widget 的完整代码,它主要是讲解和演示C++中的构造过程; 知识点: 可以从里面学习windows C++ team 的代码风格和编程技巧;C++/CX中的构造过程; 阅读建议: 先下载和安装 VS 2015以上版本+windows 10;

2024-08-18

ASimpleClassSolution: windows C++ team code

介绍: 这是windows C++ team 在开发和讲解推介C++ 、CX系列中用于演示的C++类别,它是一个 Visual Studio 解决方案,其中包含 C++/CX 和 WRL 组件的完整代码,以及一个使用两者的简单测试应用程序。 知识点: 可以从里面学习windows C++ team 的代码风格和编程技巧; 阅读建议: 先下载和安装 VS 2015以上版本+windows 10;

2024-08-18

微软提供的关于鼠标驱动的案例

此示例是原始WDM滤波器驱动程序示例的WDF版本。此示例的WDM版本已被弃用。 此驱动程序可以抓取系统上特定鼠标的输入。在其当前状态下,它只挂接到鼠标数据包报告链和鼠标ISR,不处理它看到的数据。ISR的挂钩仅在i8042prt堆栈中可用。

2024-01-01

基于ADNS-2620的光学鼠标方案

ADNS-2620是一个小型因子光学鼠标传感器。它用于实施非机械跟踪鼠标。与前代不同, ADNS-2620允许更紧凑、更实惠的光学鼠标设计。 附件包含: ADNS2620 Arduino测试代码 + adns2620 评估板原理图和PCB源文件 + HID代码 + 相关参考文档以及设计资料。

2023-12-28

鼠标HID实现方案方案

基于auduino的鼠标方案源代码

2023-12-26

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除