CN105373439A - 基于Windows显示体系下与显卡端口驱动通信方法 - Google Patents
基于Windows显示体系下与显卡端口驱动通信方法 Download PDFInfo
- Publication number
- CN105373439A CN105373439A CN201510929635.4A CN201510929635A CN105373439A CN 105373439 A CN105373439 A CN 105373439A CN 201510929635 A CN201510929635 A CN 201510929635A CN 105373439 A CN105373439 A CN 105373439A
- Authority
- CN
- China
- Prior art keywords
- communication
- request
- card port
- port driver
- video card
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Landscapes
- User Interface Of Digital Computer (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明提供一种基于Windows显示体系下与显卡端口驱动通信方法,该方法为:1、显卡端口驱动在加载的过程中创建一全局对象表和一私有的通信对象,并将所述私有的通信对象保存在全局对象表中;2、在显卡端口驱动加载过程中用显卡端口驱动的函数分发表来接收用户态应用程序的通信请求;3、显卡端口驱动接收到所述用户态应用程序发送的通信请求后,将请求转发到所述数据分发模块;4、数据分发模块根据全局对象表来判断该请求是否是发送给私有的通信对象,是,则,转发给私有通信处理模块来完成该请求进行通信。本发明实现用户态应用程序绕过显示驱动模块,直接与显卡端口驱动完成通信,同时又不会影响到显卡端口驱动本身的通信行为。
Description
技术领域
本发明涉及计算机通讯技术领域,尤其涉及一种基于Windows显示体系下与显卡端口驱动通信方法。
背景技术
在Windows显示体系下,用户态应用程序无法和显卡端口驱动进行直接通信,用户态应用程序想和显卡端口驱动进行通信,需要通过显示驱动模块来中转,该通信数据流如图1所示:当显示驱动模块未加载的时候,则无法与显卡端口驱动进行通信。这样在一些情况下,用户态应用程序要和显卡端口驱动进行通信时,就必须对显示驱动模块进行加载,加载该显示驱动模块不仅浪费系统资源,而且还要消耗一定的时间。
发明内容
本发明要解决的技术问题,在于提供一种基于Windows显示体系下与显卡端口驱动通信方法,实现用户态应用程序绕过显示驱动模块,直接与显卡端口驱动完成通信,同时又不会影响到显卡端口驱动本身的通信行为。
本发明是这样实现的:一种基于Windows显示体系下与显卡端口驱动通信方法,所述方法需提供用户态应用程序、数据分发模块以及私有通信处理模块;所述方法具体包括如下步骤:
步骤10、所述显卡端口驱动在加载的过程中创建一全局对象表和一私有的通信对象,并将所述私有的通信对象保存在全局对象表中;
步骤20、在显卡端口驱动加载过程中用显卡端口驱动的函数分发表来接收所述用户态应用程序的通信请求;
步骤30、所述显卡端口驱动接收到所述用户态应用程序发送的通信请求后,将请求转发到所述数据分发模块;
步骤40、所述数据分发模块根据所述全局对象表来判断该请求是否是发送给所述私有的通信对象,是,则,转发给私有通信处理模块来完成该请求进行通信;否,则进行其他的通信请求操作。
进一步的,所述步骤20和步骤30之间还包括:
步骤21、所述用户态应用程序使用Windows系统提供的应用程序编程接口API打开所述私有的通信对象,使用Windows系统提供的应用程序编程接口API与私有的通信对象来进行通信。
进一步的,所述其他的通信请求包括Windows系统的显示驱动模块的通信请求。
进一步的,所述步骤40中进行其他的通信请求操作,具体为:将其他的通信请求发送给一数据转换模块,所述显卡端口驱动本身只能处理VRP请求,则数据转换模块将接收到的其他的通信中的IRP请求转换成VRP请求,再转发给显卡端口驱动,从而完成了私有通信。
进一步的,其中,步骤40、所述数据分发模块根据所述全局对象表来判断该请求是否是发送给所述私有的通信对象,具体为:通过枚举当前显卡端口驱动下面的每一个设备对象,通过对象的Hash值来构造Hash表,表值为是否为私有通信对象,此表所构成的即是全局对象表,放入二维数组来构造全局对象表;将请求与全局对象表中的私有通信对象进行对比来完成判断。
本发明具有如下优点:本发明用户态应用程序绕过显示驱动模块,直接与显卡端口驱动完成通信,同时又不会影响到显卡端口驱动本身的通信行为,如在存在多个显示设备的系统中,其中部分显示设备的显示驱动模块还未加载,这时候用户态应用程序需要该显示设备的显卡端口驱动完成一定的任务,就需要绕过该显示设备的显示驱动模块,直接与显卡端口驱动进行通信,降低了系统资源的消耗,提高了Windows系统的执行效率。
附图说明
图1为现有技术中用户态应用程序和显卡端口驱动进行通信的数据流程图。
图2为本发明的方法流程示意图。
图3为本发明的方法执行框图。
具体实施方式
请参阅图2和图3所示,本发明的一种基于Windows显示体系下与显卡端口驱动通信方法,所述方法需提供用户态应用程序、数据分发模块、私有通信处理模块以及数据转换模块;所述方法具体包括如下步骤:
步骤10、所述显卡端口驱动在加载的过程中创建一全局对象表和一私有的通信对象,并将所述私有的通信对象保存在全局对象表中;
步骤20、在显卡端口驱动加载过程中用显卡端口驱动的函数分发表来接收所述用户态应用程序的通信请求;
步骤21、所述用户态应用程序使用Windows系统提供的应用程序编程接口API打开所述私有的通信对象,使用Windows系统提供的应用程序编程接口API与私有的通信对象来进行通信。
步骤30、所述显卡端口驱动接收到所述用户态应用程序发送的通信请求后,将请求转发到所述数据分发模块;
步骤40、所述数据分发模块根据所述全局对象表来判断该请求是否是发送给所述私有的通信对象,是,则,转发给私有通信处理模块来完成该请求进行通信;否,则进行其他的通信请求操作。
其中,所述其他的通信请求包括Windows系统的显示驱动模块的通信请求。
所述用户态应用程序:通过用户态应用程序来通知显卡端口驱动来完成一些特定的任务。所述显示驱动模块:Windows显示体系下的显示驱动,主要完成GDI引擎发送来的显示请求。所述显卡端口驱动:Windows显示体系下的小端口驱动,主要完成显示驱动发送来的显示请求。所述私有通信对象:在显卡端口驱动中创建的私有通信对象,用户态应用程序可以打开该对象,并与之通信。所述全局对象表:用于存放端口驱动中存在的各类对象,包括本专利中创建的私有通信对象。所述数据分发模块:通过匹配全局对象表,来转发各类通信请求。所述数据转换模块:用于将IRP(IO请求包)请求转换成VRP(视频请求包)请求。所述私有通信处理模块:用于完成用户态应用程序需要显卡端口驱动完成的任务。
所述步骤40中进行其他的通信请求操作,具体为:将其他的通信请求发送给一数据转换模块,所述显卡端口驱动本身只能处理VRP请求,则数据转换模块将接收到的其他的通信中的IRP请求转换成VRP请求,再转发给显卡端口驱动,从而完成了私有通信。由于显卡端口驱动本身只能处理VRP请求,为了不影响显卡端口驱动原本的通信请求,故数据转换模块将IRP请求转换成VRP请求,再转发给显卡端口驱动,这样既能完成了私有通信,也不会干扰到显卡小端口驱动原本的通信。
这里值得一提的是:步骤40、所述数据分发模块根据所述全局对象表来判断该请求是否是发送给所述私有的通信对象,具体为:通过枚举当前显卡端口驱动下面的每一个设备对象,通过对象的Hash值来构造Hash表,表值为是否为私有通信对象,此表所构成的即是全局对象表,放入二维数组来构造全局对象表;将请求与全局对象表中的私有通信对象进行对比来完成判断。
总之,本发明在显卡端口驱动的加载过程中,创建私有的通信对象,并替换掉显卡端口驱动原本的函数分发表,这样用户态的应用程序就可以直接打开该通信对象,与之完成通信,降低了系统资源的消耗,提高了Windows系统的执行效率。
以上所述仅为本发明的较佳实施例,凡依本发明申请专利范围所做的均等变化与修饰,皆应属本发明的涵盖范围。
Claims (5)
1.一种基于Windows显示体系下与显卡端口驱动通信方法,其特征在于:所述方法需提供用户态应用程序、数据分发模块以及私有通信处理模块;所述方法具体包括如下步骤:
步骤10、所述显卡端口驱动在加载的过程中创建一全局对象表和一私有的通信对象,并将所述私有的通信对象保存在全局对象表中;
步骤20、在显卡端口驱动加载过程中用显卡端口驱动的函数分发表来接收所述用户态应用程序的通信请求;
步骤30、所述显卡端口驱动接收到所述用户态应用程序发送的通信请求后,将请求转发到所述数据分发模块;
步骤40、所述数据分发模块根据所述全局对象表来判断该请求是否是发送给所述私有的通信对象,是,则,转发给私有通信处理模块来完成该请求进行通信;否,则进行其他的通信请求操作。
2.根据权利要求1所述的基于Windows显示体系下与显卡端口驱动通信方法,其特征在于:所述步骤20和步骤30之间还包括:
步骤21、所述用户态应用程序使用Windows系统提供的应用程序编程接口API打开所述私有的通信对象,使用Windows系统提供的应用程序编程接口API与私有的通信对象来进行通信。
3.根据权利要求1所述的基于Windows显示体系下与显卡端口驱动通信方法,其特征在于:所述其他的通信请求包括Windows系统的显示驱动模块的通信请求。
4.根据权利要求1所述的基于Windiws显示体系下与显卡端口驱动通信方法,其特征在于:所述步骤40中进行其他的通信请求操作,具体为:将其他的通信请求发送给一数据转换模块,所述显卡端口驱动本身只能处理VRP请求,则数据转换模块将接收到的其他的通信中的IRP请求转换成VRP请求,再转发给显卡端口驱动,从而完成了私有通信。
5.根据权利要求1所述的基于Windiws显示体系下与显卡端口驱动通信方法,其特征在于:其中,步骤40、所述数据分发模块根据所述全局对象表来判断该请求是否是发送给所述私有的通信对象,具体为:通过枚举当前显卡端口驱动下面的每一个设备对象,通过对象的Hash值来构造Hash表,表值为是否为私有通信对象,此表所构成的即是全局对象表,放入二维数组来构造全局对象表;将请求与全局对象表中的私有通信对象进行对比来完成判断。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510929635.4A CN105373439A (zh) | 2015-12-15 | 2015-12-15 | 基于Windows显示体系下与显卡端口驱动通信方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510929635.4A CN105373439A (zh) | 2015-12-15 | 2015-12-15 | 基于Windows显示体系下与显卡端口驱动通信方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN105373439A true CN105373439A (zh) | 2016-03-02 |
Family
ID=55375663
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510929635.4A Pending CN105373439A (zh) | 2015-12-15 | 2015-12-15 | 基于Windows显示体系下与显卡端口驱动通信方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105373439A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112015476A (zh) * | 2019-05-31 | 2020-12-01 | 龙芯中科技术有限公司 | 显卡驱动方法、装置、电子设备以及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100174988A1 (en) * | 2007-06-26 | 2010-07-08 | Chang Sun Moon | System and method for providing virtual interface |
CN101916302A (zh) * | 2010-09-01 | 2010-12-15 | 中国地质大学(武汉) | 基于哈希表的三维空间数据自适应缓存管理方法及系统 |
CN103559032A (zh) * | 2013-10-31 | 2014-02-05 | 烽火通信科技股份有限公司 | 嵌入式系统对象管理的装置及方法 |
CN104699543A (zh) * | 2015-03-27 | 2015-06-10 | 福州大学 | 基于Windows显示体系下与小端口驱动通信方法 |
CN104750825A (zh) * | 2015-03-31 | 2015-07-01 | 国家电网公司 | 一种智能变电站scd文件快速解析方法 |
-
2015
- 2015-12-15 CN CN201510929635.4A patent/CN105373439A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100174988A1 (en) * | 2007-06-26 | 2010-07-08 | Chang Sun Moon | System and method for providing virtual interface |
CN101916302A (zh) * | 2010-09-01 | 2010-12-15 | 中国地质大学(武汉) | 基于哈希表的三维空间数据自适应缓存管理方法及系统 |
CN103559032A (zh) * | 2013-10-31 | 2014-02-05 | 烽火通信科技股份有限公司 | 嵌入式系统对象管理的装置及方法 |
CN104699543A (zh) * | 2015-03-27 | 2015-06-10 | 福州大学 | 基于Windows显示体系下与小端口驱动通信方法 |
CN104750825A (zh) * | 2015-03-31 | 2015-07-01 | 国家电网公司 | 一种智能变电站scd文件快速解析方法 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112015476A (zh) * | 2019-05-31 | 2020-12-01 | 龙芯中科技术有限公司 | 显卡驱动方法、装置、电子设备以及存储介质 |
CN112015476B (zh) * | 2019-05-31 | 2023-11-07 | 龙芯中科技术股份有限公司 | 显卡驱动方法、装置、电子设备以及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9110661B2 (en) | Mobile device offloading task to a peer device and receiving a completed task when energy level is below a threshold level | |
KR101832953B1 (ko) | 모바일 디바이스의 어플리케이션 프로세서의 원격 시동 | |
US9239607B2 (en) | Storing data using a direct data path architecture to reduce energy consumption and improve performance | |
US20050209842A1 (en) | Remote USB port system and method | |
CN104506620A (zh) | 一种可扩展的自动化计算服务平台及其构建方法 | |
WO2005055053A3 (en) | Mobile device programming system and method | |
CN109074281B (zh) | 图形处理器任务的分配方法和装置 | |
CN102281254A (zh) | 服务器串口设计系统及方法 | |
CN104021042A (zh) | 基于arm、dsp及fpga的异构多核处理器及任务调度方法 | |
CN102667726A (zh) | 控制电子装置中的功率的系统和方法 | |
CN102624967A (zh) | 在移动终端上实现文件下载的方法及系统 | |
CN104050117B (zh) | 用于在多个输入/输出(i/o)装置当中执行i/o操作的系统及方法 | |
CN103377280A (zh) | 信息处理设备和方法、程序以及信息处理系统 | |
US20170168796A1 (en) | Method and electronic apparatus for transferring application program from pc to mobile apparatus | |
CN105373439A (zh) | 基于Windows显示体系下与显卡端口驱动通信方法 | |
KR102269271B1 (ko) | 오픈 컴퓨팅 언어 기반의 애플리케이션 실행 방법 및 장치 | |
US11157690B2 (en) | Techniques for asynchronous execution of computationally expensive local spreadsheet tasks | |
WO2023246757A1 (zh) | 算力服务方法、装置及终端 | |
CN105607913B (zh) | 互联应用的操作处理方法及装置 | |
CN104821939B (zh) | 一种用于实现计算机与移动设备间异步通信的方法和装置 | |
CN103916428A (zh) | 私有云内部的数据传输方法、私有云平台及私有云系统 | |
US9448855B2 (en) | System and method for executing a cloud computing task | |
CN103207790A (zh) | 操作系统更新方法和终端 | |
CN102223610B (zh) | 在移动设备间进行数据交换的方法及移动设备 | |
CN109189705A (zh) | 一种usb扩展方法、装置、设备、存储介质及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20160302 |