基于Windows显示体系下与小端口驱动通信方法
(19)中华人民共和国国家知识产权局
(12)发明专利说明书
(10)申请公布号 CN 104699543 A
(43)申请公布日 2015.06.10
(21)申请号 CN201510138370.6
(22)申请日 2015.03.27
(71)申请人 福州大学
    地址 350108 福建省福州市闽侯县上街镇大学城学园路2号福州大学新区
(72)发明人 杨明静
(74)专利代理机构 福州元创专利商标代理有限公司
    代理人 程春宝
(51)Int.CI
     
                                                                  权利要求说明书 说明书 幅图
(54)发明名称
      基于Windows显示体系下与小端口驱动通信方法
(57)摘要
      本发明涉及基于Windows显示体系下与小端口驱动通信方法,在显卡小端口驱动的加载过程中,创建私有的通信对象,并替换掉显卡小端口驱动原本的函数分发表,这样用户态的应用程序就可以直接打开该通信对象,与之完成通信,但因为我们替换掉了显卡小端口驱动原本的函数分发表,故显卡小端口驱动原本的通信请求也被我们所截获,所以需要通过的恰当的方式来完成这些请求,以避免改变了显卡小端口驱动原本的通信行为。
法律状态
法律状态公告日
法律状态信息
法律状态
如何打开端口
权 利 要 求 说 明 书
1.一种基于Windows显示体系下与小端口驱动通信方法,其特征在于:提供       
  用户态应用程序(M1),通过该用户态应用程序来通知显卡小端口驱动完成特定的任务;       
  显示驱动(M2),Windows显示体系下的显示驱动,完成GDI引擎发送来的显示请求;       
  显卡小端口驱动(M3),Windows显示体系下的小端口驱动,完成显示驱动发送来的显示请求;       
  私有通信对象(M4),在显卡小端口驱动中创建的私有通信对象,用户态应用程序可以打开
该对象,并与之通信;       
  全局对象表(M5),用于存放小端口驱动中存在的各类对象,包括创建的私有通信对象;       
  数据分发模块(M6),通过匹配全局对象表,来转发各类通信请求;       
  数据转换模块(M7),用于将IRP请求转换成VRP请求;以及       
  私有通信处理模块(M8),用于完成用户态应用程序需要显卡小端口驱动完成的任务;按照以下流程实现:       
    1)在显卡小端口驱动(M3)加载的过程中创建全局对象表(M5)以及私有的通信对象(M4),并将创建的私有通信对象保存于全局对象表(M5)中;       
    2)在显卡小端口驱动(M3)加载过程中替换掉显卡小端口驱动(M3)的函数分发表,用于接收用户态应用程序的通信请求;       
    3)用户态应用程(M1)序使用Windows系统提供的API打开该私有通信对象(M4),然后使
用Windows系统提供的API与私有通信对象(M4)来进行通信;       
    4)显卡小端口驱动(M3)收到用户态应用程序(M1)发来的通信请求,会将请求转发到到数据分发模块(M6);       
    5)数据分发模块(M6)根据全局对象表(M5)来判断该请求是发送给私有通信对象(M4)的,还是来自于显卡驱动(M3)或其他的通信请求;       
    6)如果是私有通信请求,则转发给私有通信处理模块(M7)来完成该请求;       
    7)如果是来自于显示驱动(M2)或其他的通信请求,则发送给数据转换模块(M8)。       
说  明  书
<p>技术领域   
本发明涉及一种基于Windows显示体系下与小端口驱动通信方法。   
背景技术   
 在Windows显示体系下,用户态应用程序无法和显卡小端口驱动进行直接通信,用户态应用程序想和显卡小端口驱动进行通信,需要通过显示驱动来中转,通信数据流如图1所示,当显示驱动未加载的时候,则无法与显卡小端口驱动进行通信。   
发明内容   
本发明的目的是提供一种基于Windows显示体系下与小端口驱动通信方法,该方法通过绕过显示驱动,让用户态应用程序直接与显卡小端口驱动,这样在显示驱动还未加载的情况下,用户态应用程序也可以和显卡小端口驱动进行通信,同时当显卡驱动被加载起来以后,也不会影响显示驱动与显卡小端口驱动原本的通信行为。   

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。