发明名称 基于Windows显示体系下与小端口驱动通信方法
摘要 本发明涉及基于Windows显示体系下与小端口驱动通信方法,在显卡小端口驱动的加载过程中,创建私有的通信对象,并替换掉显卡小端口驱动原本的函数分发表,这样用户态的应用程序就可以直接打开该通信对象,与之完成通信,但因为我们替换掉了显卡小端口驱动原本的函数分发表,故显卡小端口驱动原本的通信请求也被我们所截获,所以需要通过的恰当的方式来完成这些请求,以避免改变了显卡小端口驱动原本的通信行为。
申请公布号 CN104699543A 申请公布日期 2015.06.10
申请号 CN201510138370.6 申请日期 2015.03.27
申请人 福州大学 发明人 杨明静
分类号 G06F9/54(2006.01)I 主分类号 G06F9/54(2006.01)I
代理机构 福州元创专利商标代理有限公司 35100 代理人 程春宝
主权项 一种基于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)。
地址 350108 福建省福州市闽侯县上街镇大学城学园路2号福州大学新区