CN102402412B - 显示功能处理模块,服务器和显示处理方法 - Google Patents

显示功能处理模块,服务器和显示处理方法 Download PDF

Info

Publication number
CN102402412B
CN102402412B CN201010288165.5A CN201010288165A CN102402412B CN 102402412 B CN102402412 B CN 102402412B CN 201010288165 A CN201010288165 A CN 201010288165A CN 102402412 B CN102402412 B CN 102402412B
Authority
CN
China
Prior art keywords
module
presentation function
response
processing unit
client
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.)
Active
Application number
CN201010288165.5A
Other languages
English (en)
Other versions
CN102402412A (zh
Inventor
宋祎斐
孙成昆
李洪伟
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Lenovo Beijing Ltd
Original Assignee
Lenovo Beijing Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Lenovo Beijing Ltd filed Critical Lenovo Beijing Ltd
Priority to CN201010288165.5A priority Critical patent/CN102402412B/zh
Publication of CN102402412A publication Critical patent/CN102402412A/zh
Application granted granted Critical
Publication of CN102402412B publication Critical patent/CN102402412B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Abstract

提供了显示功能处理模块、服务器和显示处理方法。所述显示功能处理模块应用于包括应用模块和显示驱动模块的系统中,其中所述应用模块需要调用所述显示驱动模块的显示功能,所述显示功能处理模块包括:截取单元,与所述显示驱动模块连接,用于当所述显示驱动模块对所述应用模块的显示功能调用做出第一响应时,截取所述第一响应;更改单元,与所述截取单元连接,用于根据预先设定的策略对所述第一响应进行更改,生成第二响应;和发送单元,与所述更改单元和所述应用模块连接,用于将所述第二响应发送到所述应用模块。

Description

显示功能处理模块,服务器和显示处理方法
技术领域
本发明涉及显示功能处理模块,服务器和显示处理方法。
背景技术
随着计算机及网络技术的发展,Thin Client(瘦客户机)日益普及,瘦客户机/服务器应用是这样一个模型:应用配置、管理、执行都100%在服务器端进行,它使用一个多用户操作系统,把应用程序的用户界面发送到客户端。这种应用模型不需要重写应用或从服务器端下载,客户可以完全访问服务器端的Windows应用,这意味着对原有的硬件、网络、应用投资的超值回报。因此,瘦客户机/服务器应用模型成为企业降低复杂性和总拥有成本的最可靠的方法。
瘦客户机/服务器应用要求一个多用户操作系统,以允许多个用户同时登录到一台服务器并运行服务器上的应用,另外还需要一个支持Windows远程显示协议的多用户远程显示系统,能够把应用的逻辑执行和它的用户界面分离,只允许键盘、鼠标和屏幕更新的数据在网上传送。
当今典型的办公环境包括若干PC(个人计算机)和越来越多的瘦客户端。这些PC和瘦客户端通过网络进行集中管理,文件共享,存储及文件服务。一开始,应用运行在每个本地的桌面计算机上,服务器集中进行磁盘存储管理。近来,基于安全,降低成本以及便于集中管理等因素的考虑,PC和瘦客户端变成了SBC(Server Based Computing,基于服务器的计算技术)解决方案的纯粹的终端,应用于运行服务器中。
在以上述方式实现的云终端或瘦客户机中,由于其与普通的单机计算机的配置不同,在使用显示功能时可能具有不同的需求。例如,很多云终端或瘦客户机并没有图像处理单元(GPU),但是现在的很多视频播放器默认需要一些显示功能,因此必须要在服务器端具有上述显示功能,即在服务器端设置显示处理设备,当客户端的视频播放器需要使用所述显示功能时,即从服务器端的图像处理单元调用该显示功能。但是,现今的服务器并不能够控制这种显示功能的调用,从而使得当客户端增加到一定程度之后,对于需求的显示处理资源要求已经超过图像处理单元的限制,就会导致系统运行极其缓慢,甚至死机。
并且,在单机计算机或服务器/客户端的结构当中,都存在能够灵活地使用显示功能,从而提高系统运行的效率的需要。
因此,需要一种显示功能处理模块,能够根据预先设定的策略,来当应用程序调用显示功能时,对上述调用的答复进行修改,从而能够控制应用程序对于显示功能的使用,以更灵活地使用有限的系统资源。
发明内容
因此,针对上述现有技术中存在的问题和需求做出本发明。
本发明的目的是提供一种显示功能处理模块,服务器和显示处理方法,其能够基于预定策略灵活地调控显示功能的使用,从而实现系统的显示资源的合理和有效使用。
本发明的目的还在于提供一种动态地控制使用图像处理单元或中央处理单元来执行显示功能的服务器和方法,从而在防止图像处理单元的资源有限的限制的同时能够充分地利用图像处理单元的资源。
根据本发明的一个方面,提供了显示功能处理模块,应用于包括应用模块和显示驱动模块的系统中,其中所述应用模块需要调用所述显示驱动模块的显示功能,所述显示功能处理模块包括:截取单元,与所述显示驱动模块连接,用于当所述显示驱动模块对所述应用模块的显示功能调用做出第一响应时,截取所述第一响应;更改单元,与所述截取单元连接,用于根据预先设定的策略对所述第一响应进行更改,生成第二响应;和发送单元,与所述更改单元和所述应用模块连接,用于将所述第二响应发送到所述应用模块。
在上述显示功能处理模块中,所述更改单元根据预先设定的策略,将所述第一响应中对至少一个显示功能的肯定答复修改为否定答复,从而生成第二响应。
在上述显示功能处理模块中,进一步包括转发模块,与所述应用模块和所述显示驱动模块连接,用于将所述应用模块的显示功能调用转发到所述显示驱动模块。
根据本发明的另一方面,提供了一种服务器,与多个客户端相连接,且所述服务器包括应用模块、显卡和用于驱动该显卡的显示驱动模块,其中,在所述客户端使用所述应用模块的显示功能时,所述应用模块通过所述显示驱动模块调用所述显卡的显示功能,所述服务器进一步包括:截取单元,与所述显示驱动模块连接,用于当所述显示驱动模块对所述客户端的显示功能调用做出第一响应时,截取所述第一响应;更改单元,与所述截取单元连接,用于根据预先设定的策略对所述第一响应进行更改,生成第二响应;和发送单元,与所述更改单元和所述客户端连接,用于将所述第二响应发送到所述应用模块;其中,所述应用模块通过所述显示驱动模块调用所述显卡与所述第二响应对应的显示功能,以由所述客户端使用。
根据本发明的又一方面,提供了一种服务器,与多个客户端相连接,且所述服务器包括应用模块、图像处理单元、中央处理单元和用于选择所述图像处理单元或所述中央处理单元来执行显示功能的选择模块,其中,在任一所述多个客户端使用所述应用模块的显示功能时,所述应用模块向所述选择模块发出选择所述图像处理单元或所述中央处理单元来执行所述显示功能的第一请求,且所述选择模块在接收到所述第一请求之后,向所述图像处理单元或所述中央处理单元发送用于查询所述显示功能的第二请求,所述服务器进一步包括:截取单元,与所述图像处理单元或所述中央处理单元连接,用于当所述图像处理单元或所述中央处理单元对所述选择模块发出的所述第二请求做出第一响应时,截取所述第一响应;更改单元,与所述截取单元连接,用于根据预先设定的策略对所述第一响应进行更改,生成第二响应;和发送单元,与所述更改单元和所述选择模块连接,用于将所述第二响应发送到所述选择模块;其中,所述选择模块根据所述第二响应选择所述中央处理单元或所述图像处理单元来执行所述显示功能,以由所述客户端使用。
根据本发明的再一方面,提供了一种服务器,与多个客户端相连接,且所述服务器包括应用模块、图像处理单元、中央处理单元和用于选择所述图像处理单元或所述中央处理单元来执行显示功能的选择模块,其中,在任一所述多个客户端使用所述应用模块的显示功能时,所述应用模块向所述选择模块发出选择所述图像处理单元来执行所述显示功能的第一请求,且所述选择模块在接收到所述第一请求之后,向所述图像处理单元发送用于查询所述显示功能的第二请求,所述服务器进一步包括:截取单元,与所述图像处理单元连接,用于当所述图像处理单元对所述选择模块发出的所述第二请求做出第一响应时,截取所述第一响应;更改单元,与所述截取单元连接,用于根据预先设定的策略对所述第一响应进行更改,生成第二响应;和发送单元,与所述更改单元和所述选择模块连接,用于将所述第二响应发送到所述选择模块;其中,所述选择模块根据所述第二响应选择所述中央处理单元来执行所述显示功能,以由所述客户端使用。
在上述服务器中,所述更改单元包括第一判断单元,用于判断所连接的客户端当中正在使用所述图像处理单元的客户端的数目是否超过第一阈值,其中,当正在使用所述图像处理单元的客户端的数目超过第一阈值时,将所述第一响应更改为第二响应,从而使得所述选择模块选择所述服务器的所述中央处理单元来执行所述显示功能,以由所述客户端使用。
在上述服务器中,所述更改单元包括第二判断单元,用于判断所述客户端的优先级,其中,当所述第二判断单元判断客户端具有低优先级时,将所述第一响应更改为第二响应,从而使得所述选择模块选择所述服务器的所述中央处理单元来执行所述显示功能,以由所述客户端使用。
根据本发明的一个方面,提供了显示处理方法,应用于包括应用模块和显示驱动模块的系统中,其中所述应用模块需要调用所述显示驱动模块的显示功能,所述显示处理方法包括:在所述应用模块和显示驱动模块之间加载一显示功能处理模块后,当所述显示驱动模块对所述应用模块的显示功能调用做出第一响应时,截取所述第一响应;根据预先设定的策略对所述第一响应进行更改,生成第二响应;和将所述第二响应发送到所述应用模块。
在上述显示功能处理方法中,进一步包括步骤:当所述应用模块需要调用所述显示驱动模块的显示功能时,由所述显示功能处理模块将所述应用模块对显示功能的调用请求转发到所述显示驱动模块。
在上述显示处理方法中,所述加载显示功能处理模块的步骤包括:加载所述显示功能处理模块的内核态驱动;由所述内核态驱动向系统注册监控注册表函数;当系统通过查询注册表查询所述显示驱动模块的用户态驱动时,所述显示功能处理模块通过注册表路径确定系统所查询的所述显示驱动模块的用户态驱动;由所述显示功能处理模块保存所述显示驱动模块的用户态驱动的名称;由所述显示功能处理模块将所述显示驱动模块的用户态驱动的名称修改为过滤驱动名称;和由所述显示功能处理模块将所述过滤驱动名称返回给系统,从而将真实的显示驱动模块的用户态驱动修改为所述显示功能处理模块的用户态驱动。
在上述显示处理方法中,在加载所述显示功能处理模块后,在截取所述显示驱动模块对所述应用模块的显示功能调用做出的第一响应之前,包括步骤:当应用模块启动以加载所述显示驱动模块的用户态驱动时,加载所述显示功能处理模块的用户态驱动;所述显示功能处理模块的用户态驱动根据由所述显示功能处理模块保存的所述显示驱动模块的用户态驱动的名称,加载真实的显示驱动模块的用户态驱动。
在上述显示处理方法中,所述更改第一响应的步骤包括:由所述显示功能处理模块从真实的显示驱动模块得到真实的显示功能;和根据预先设定的策略,将所述第一响应中对至少一个显示功能的肯定答复修改为否定答复,从而生成第二响应。
根据本发明的另一方面,提供了显示处理方法,应用于一服务器,所述服务器与多个客户端相连接,且所述服务器包括由客户端使用的应用模块、显卡和用于驱动所述显卡的显卡驱动,所述方法包括:在所述客户端使用所述服务器的应用模块的显示功能,所述应用模块通过所述显卡驱动调用所述显卡的所述显示功能后,当所述显卡驱动对所述应用模块的显示功能调用做出第一响应时,截取所述第一响应;根据预先设定的策略对所述第一响应进行更改,生成第二响应;和将所述第二响应发送到所述应用模块;其中,所述应用模块通过所述显卡驱动调用所述显卡的与所述第二响应对应的显示功能,以由所述客户端使用。
根据本发明的又一方面,提供了显示处理方法,应用于一服务器,所述服务器与多个客户端相连接,且所述服务器包括由客户端使用的应用模块、图像处理单元、中央处理单元和用于选择所述图像处理单元或所述中央处理单元来执行显示功能的选择模块,所述方法包括:在所述客户端使用所述服务器的应用模块的显示功能,所述应用模块向所述服务器的选择模块发出选择所述服务器的图像处理单元或中央处理单元来执行所述显示功能的第一请求时,所述选择模块向所述图像处理单元或所述中央处理单元发送查询所述显示功能的第二请求,当所述图像处理单元或所述中央处理单元对所述选择模块的所述第二请求做出第一响应时,截取所述第一响应;根据预先设定的策略对所述第一响应进行更改,生成第二响应;和将所述第二响应发送到所述选择模块;其中,所述选择模块根据所述第二响应选择所述中央处理单元或所述图像处理单元来执行所述显示功能,以由所述客户端使用。
根据本发明的再一方面,提供了显示处理方法,应用于一服务器,所述服务器与多个客户端相连接,且所述服务器包括由客户端使用的应用模块、图像处理单元、中央处理单元和用于选择所述图像处理单元或所述中央处理单元来执行显示功能的选择模块,所述方法包括:在所述客户端使用所述服务器的应用模块的显示功能,所述应用模块向所述服务器的选择模块发出选择所述服务器的图像处理单元来执行所述显示功能的第一请求时,所述选择模块向所述图像处理单元发送查询所述显示功能的第二请求,当所述图像处理单元对所述选择模块的所述第二请求做出第一响应时,截取所述第一响应;根据预先设定的策略对所述第一响应进行更改,生成第二响应;和将所述第二响应发送到所述选择模块;其中,所述选择模块根据所述第二响应选择所述中央处理单元来执行所述显示功能,以由所述客户端使用。
在上述显示处理方法中,所述预定设定的策略包括根据所述服务器所连接的客户端当中正在使用所述图像处理单元的客户端的数目来进行判定,其中,如果所连接的客户端当中正在使用所述图像处理单元的客户端的数目超过第一阈值,则将所述第一响应更改为第二响应,从而使得所述选择模块选择所述服务器的所述中央处理单元来执行所述显示功能,以由所述客户端使用。
在上述显示处理方法中,所述预定设定的策略包括根据所述客户端的优先级来进行判定,其中,对于具有低优先级的客户端,将所述第一响应更改为第二响应,从而使得所述选择模块选择所述服务器的所述中央处理单元来执行所述显示功能,以由所述客户端使用。
通过本发明的显示功能处理模块,服务器和显示处理方法,能够根据预先设定的策略来控制进行图像处理的应用对于用于图像处理的硬件的使用,从而保证了硬件的使用效率。
通过本发明的显示功能处理模块,服务器和显示处理方法,能够根据预先设定的策略,比如用户的权限或级别等,来灵活地设置计算机系统对于显示功能的使用。例如,在某些情况下,禁止某些用户使用某些显示功能,而允许其使用另一些显示功能。又或者,对于某些用户,设置其可以使用某些特定的显示功能,而对于某些用户,设置其不能够使用所述特定的显示功能,从而能够更灵活地使用有限的系统资源。
并且,通过在本发明中选择性地使用图像处理单元或中央处理单元,可以监控正在使用图像处理单元的客户端的数目,且当到达图像处理单元的限制时,动态地禁止后续需求的客户端的硬件使用要求,或者将其转为采用中央处理单元的图像处理,从而最大限度的利用图像处理单元的资源又不会因为资源申请过度而导致系统缓慢。
附图说明
图1是示出了根据本发明第一实施例的显示功能处理模块的示意性框图;
图2是示出了根据本发明第一实施例的服务器的示意性框图;
图3是示出了根据本发明第二实施例的服务器的示意性框图;
图4是示出了根据本发明第三实施例的服务器的示意性框图;
图5是示意性地示出了本发明的实施例的显示功能处理模块的加载过程的流程图;
图6是示意性地示出了本发明的实施例的显示功能处理模块的工作过程的流程图;
图7是本发明的显示功能处理模块及其工作方法的具体应用示例的示例性计算机系统的框图;
图8是示出了根据本发明实施例的显示处理方法的示意性流程图。
具体实施方式
下面,将结合附图详细描述本发明的显示功能处理模块、服务器和显示处理方法的具体实施例。
根据本发明的实施例的一个方面,提供了显示功能处理模块,应用于包括应用模块和显示驱动模块的系统中,其中所述应用模块需要调用所述显示驱动模块的显示功能,所述显示功能处理模块包括:截取单元,与所述显示驱动模块连接,用于当所述显示驱动模块对所述应用模块的显示功能调用做出第一响应时,截取所述第一响应;更改单元,与所述截取单元连接,用于根据预先设定的策略对所述第一响应进行更改,生成第二响应;和发送单元,与所述更改单元和所述应用模块连接,用于将所述第二响应发送到所述应用模块。
图1是示出了根据本发明第一实施例的显示功能处理模块的示意性框图。如图1所示,该显示功能处理模块100应用于包括应用模块110和显示驱动模块120的系统中,其中应用模块110需要调用显示驱动模块120的显示功能。如图1所示,显示功能处理模块100包括:截取单元101,与显示驱动模块120连接,用于当显示驱动模块120对应用模块110的显示功能调用做出第一响应时,截取所述第一响应;更改单元102,与截取单元101连接,用于根据预先设定的策略对所述第一响应进行更改,生成第二响应;和发送单元103,与更改单元102和应用模块110连接,用于将所述第二响应发送到应用模块120。
这里,更改单元102可以根据预先设定的策略,将所述第一响应中对至少一个显示功能的肯定答复修改为否定答复,从而生成第二响应。
这里,显示功能指的是用于图像处理的硬件,即显示处理设备所拥有的图像处理的功能。例如,显示功能可以包括反锯齿、垂直同步、锐化、雾化、翻转等。如上所述,例如,当应用模块110需要调用显示驱动模块120的显示功能A(如反锯齿)、B(如锐化)和C(如雾化)时,显示驱动模块120对于显示功能A和B的调用返回肯定答复,并对显示功能C的调用返回否定答复,这时,在没有根据本发明的实施例的显示功能处理模块的情况下,应用模块110可以调用显示驱动模块120的显示功能A和B。在存在根据本发明的实施例的显示功能处理模块的情况下,更改单元102可以根据预先设定的策略,将对于显示功能A或B的肯定答复修改为否定答复,或者将显示功能A和B两者的肯定答复都修改为否定答复,并由发送单元103发送给应用模块120。这时,应用模块110将根据修改后的响应来调用显示驱动模块120的显示功能,例如,仅调用显示功能A或显示功能B,或者不调用任意显示功能。
当然,本领域技术人员可以理解,这里更改单元102同样也可以将否定答复修改为肯定答复,使得原来不能调用显示驱动模块120的某显示功能的应用模块110可以调用该显示功能。并且,除了对于上述答复整体进行修改,如将肯定答复修改为否定答复,或将否定答复修改为肯定答复之外,还可以对于所述答复的某些具体参数进行修改。例如,当应用模块110要对RGB和YUV格式的图像进行处理时,会向显示驱动模块120调用对RGB和YUV格式的图像的处理,但用于RGB格式和YUV格式的显示处理同属于一张参数列表,因此,此时如果对于答复进行整体的修改,即将肯定答复改成否定答复或否定答复改成肯定答复,则将使得应用模块110要么同时可以处理RGB和YUV格式两者,要么同时不可以处理RGB和YUV格式两者。此时,如果希望应用模块110可以仅处理RGB格式或YUV格式,则需要对上述参数列表进行修改,从而修改列表中与RGB格式或YUV格式对应的值,使得应用模块110根据修改后的参数列表仅能够对RGB格式和YUV格式中的一个进行修改。本领域技术人员可以理解,这里,修改所述答复的具体参数也可以是其它情况,本发明的实施例并不意在对此进行限制。
如图1所示,该显示功能处理模块100可以进一步包括转发单元104,与应用模块110和显示驱动模块120连接,用于将应用模块110的显示功能调用转发到显示驱动模块120。这里,本领域技术人员可以理解,该转发单元104并不是本发明的第一实施例的显示功能处理模块的必备部件,在没有转发单元104的情况下,在系统中,应用模块110也可以将调用显示功能的请求直接发送到显示驱动模块120。
根据本发明的实施例的另一方面,提供了服务器,其与多个客户端相连接,且所述服务器包括应用模块、显卡和用于驱动该显卡的显示驱动模块,其中,在所述客户端使用所述应用模块的显示功能时,所述应用模块通过所述显示驱动模块调用所述显卡的显示功能,所述服务器进一步包括:截取单元,与所述显示驱动模块连接,用于当所述显示驱动模块对所述客户端的显示功能调用做出第一响应时,截取所述第一响应;更改单元,与所述截取单元连接,用于根据预先设定的策略对所述第一响应进行更改,生成第二响应;和发送单元,与所述更改单元和所述客户端连接,用于将所述第二响应发送到所述应用模块;其中,所述应用模块通过所述显示驱动模块调用所述显卡与所述第二响应对应的显示功能,以由所述客户端使用。
图2是示出了根据本发明第一实施例的服务器的示意性框图。如图2所示,服务器200与多个客户端200’相连接,且服务器200包括应用模块210、显卡220和用于驱动显卡220的显示驱动模块230,其中,在客户端200’使用应用模块210的显示功能时,应用模块210通过显示驱动模块230调用显卡220的显示功能,服务器200进一步包括:截取单元201,与显示驱动模块230连接,用于当显示驱动模块230对客户端200’的显示功能调用做出第一响应时,截取所述第一响应;更改单元202,与截取单元201连接,用于根据预先设定的策略对所述第一响应进行更改,生成第二响应;和发送单元203,与更改单元202和客户端200’连接,用于将所述第二响应发送到应用模块210;其中,应用模块210通过显示驱动模块230调用显卡220与所述第二响应对应的显示功能,以由客户端200’使用。
在根据本发明第一实施例的服务器中,虽然没有明确绘出如图1的显示功能处理模块,但本领域技术人员可以理解,这里截取单元201、更改单元202和发送单元203的组合实际上执行的就是如图1所示的显示功能处理模块100的功能。
根据本发明的实施例的又一方面,提供了服务器,与多个客户端相连接,且所述服务器包括应用模块、图像处理单元、中央处理单元和用于选择所述图像处理单元或所述中央处理单元来执行显示功能的选择模块,其中,在任一所述多个客户端使用所述应用模块的显示功能时,所述应用模块向所述选择模块发出选择所述图像处理单元或所述中央处理单元来执行所述显示功能的第一请求,且所述选择模块在接收到所述第一请求之后,向所述图像处理单元或所述中央处理单元发送用于查询所述显示功能的第二请求,所述服务器进一步包括:截取单元,与所述图像处理单元或所述中央处理单元连接,用于当所述图像处理单元或所述中央处理单元对所述选择模块发出的所述第二请求做出第一响应时,截取所述第一响应;更改单元,与所述截取单元连接,用于根据预先设定的策略对所述第一响应进行更改,生成第二响应;和发送单元,与所述更改单元和所述选择模块连接,用于将所述第二响应发送到所述选择模块;其中,所述选择模块根据所述第二响应选择所述中央处理单元或所述图像处理单元来执行所述显示功能,以由所述客户端使用。
图3是示出了根据本发明第二实施例的服务器的示意性框图。如图3所示,服务器300与多个客户端300’相连接,且服务器300包括应用模块310、图像处理单元320、中央处理单元330和用于选择图像处理单元320或中央处理单元330来执行显示功能的选择模块340,其中,在多个客户端300’中的任意一个使用应用模块310的显示功能时,应用模块310向选择模块340发出选择图像处理单元320或中央处理单元330来执行所述显示功能的第一请求,且选择模块340在接收到所述第一请求之后,向图像处理单元320或中央处理单元330发送用于查询所述显示功能的第二请求,服务器300进一步包括:截取单元301,与图像处理单元320或中央处理单元330连接,用于当图像处理单元320或中央处理单元330对选择模块340发出的所述第二请求做出第一响应时,截取所述第一响应;更改单元302,与截取单元301连接,用于根据预先设定的策略对所述第一响应进行更改,生成第二响应;和发送单元303,与更改单元302和选择模块340连接,用于将所述第二响应发送到选择模块340;其中,选择模块340根据所述第二响应选择中央处理单元330或图像处理单元320来执行所述显示功能,以由客户端300’使用。
这里,本领域技术人员可以理解,选择模块340用于选择中央处理单元330或图像处理单元320来执行显示功能,因此,也可以在选择模块340中包含用于驱动中央处理单元330或图像处理单元320来进行图像处理的必要驱动。例如,在图像处理单元320是显卡的情况下,在选择模块中就可以包括显卡驱动。
与上述实施例中类似,虽然在该实施例的服务器中并没有明确绘出如图1的显示功能处理模块100,但是截取单元301、更改单元302、发送单元303和选择模块340的组合实际上执行了如图1所示的显示功能处理模块100的功能。并且,在如上所述选择模块340包括用于驱动中央处理单元330或图像处理单元320来进行图像处理的必要驱动的情况下,选择模块340实际上还执行了如图1所示的显示驱动模块120的功能。
根据本发明的实施例的又一方面,提供了服务器,与多个客户端相连接,且所述服务器包括应用模块、图像处理单元、中央处理单元和用于选择所述图像处理单元或所述中央处理单元来执行显示功能的选择模块,其中,在任一所述多个客户端使用所述应用模块的显示功能时,所述应用模块向所述选择模块发出选择所述图像处理单元来执行所述显示功能的第一请求,且所述选择模块在接收到所述第一请求之后,向所述图像处理单元发送用于查询所述显示功能的第二请求,所述服务器进一步包括:截取单元,与所述图像处理单元连接,用于当所述图像处理单元对所述选择模块发出的所述第二请求做出第一响应时,截取所述第一响应;更改单元,与所述截取单元连接,用于根据预先设定的策略对所述第一响应进行更改,生成第二响应;和发送单元,与所述更改单元和所述选择模块连接,用于将所述第二响应发送到所述选择模块;其中,所述选择模块根据所述第二响应选择所述中央处理单元来执行所述显示功能,以由所述客户端使用。
图4是示出了根据本发明第三实施例的服务器的示意性框图。如图4所示,服务器400与多个客户端400’相连接,且服务器400包括应用模块410、图像处理单元420、中央处理单元430和用于选择图像处理单元420或中央处理单元430来执行显示功能的选择模块440,其中,在多个客户端400’中的任意一个使用应用模块410的显示功能时,应用模块410向选择模块440发出选择图像处理单元420来执行所述显示功能的第一请求,且选择模块440在接收到所述第一请求之后,向图像处理单元420发送用于查询所述显示功能的第二请求,服务器400进一步包括:截取单元401,与图像处理单元420连接,用于当图像处理单元420对选择模块440发出的所述第二请求做出第一响应时,截取所述第一响应;更改单元402,与截取单元401连接,用于根据预先设定的策略对所述第一响应进行更改,生成第二响应;和发送单元403,与更改单元402和选择模块440连接,用于将所述第二响应发送到选择模块440;其中,选择模块440根据所述第二响应选择中央处理单元430来执行所述显示功能,以由客户端400’使用。
与图3所示的根据本发明第二实施例的服务器相比,如图4所示的根据本发明第三实施例的服务器的不同在于,在如图4所示的根据本发明第三实施例的服务器中,应用模块410优先使用图像处理单元420来执行显示功能,而仅在不能够使用图像处理单元420来执行显示功能才使用中央处理单元430来执行显示功能,从而保证了最优的显示质量。
在上述服务器400中,更改单元402可以包括第一判断单元404,该第一判断单元404可用于判断服务器400当前所连接的客户端400’的数目是否超过第一阈值,并且当连接的客户端400’的数目超过第一阈值时,将所述第一响应更改为第二响应,从而使得选择模块440选择服务器400的中央处理单元430来执行所述显示功能,以由客户端400’使用。
本领域技术人员可以理解,由于在本发明的实施例所应用的系统环境中,通常是图像处理单元的资源相对有限,因此,该第一判断单元404也可用于判断服务器400当前所连接的客户端400’当中正在使用图像处理单元420的客户端的数目是否超过第一阈值,并且当正在使用图像处理单元420的客户端的数目超过第一阈值时,将所述第一响应更改为第二响应,从而使得选择模块440选择服务器400的中央处理单元430来执行所述显示功能,以由客户端使用。这样,可以更好地保证图像处理单元的图像处理能力的有效使用。
在上述服务器400中,更改单元402还可包括第二判断单元405,用于判断使用应用模块410的显示功能的客户端的优先级,其中当第二判断单元405判断客户端具有高优先级时,不对第一响应进行更改,从而使得选择模块440选择服务器400的显示处理单元420来执行所述显示功能,以由所述客户端使用;并且,当第二判断单元405判断客户端具有低优先级时,将所述第一响应更改为第二响应,从而使得选择模块440选择服务器400的中央处理单元430来执行所述显示功能,以由所述客户端使用。这样,可以保证具有更高优先级的用户能够获得使用图像处理单元的显示功能的优先级,从而获得更好的显示质量。
此外,在本发明第二实施例和第三实施例的服务器中,与根据本发明第一实施例的服务器类似,虽然在上述服务器中并没有明确绘出如图1的显示功能处理模块100,但是其截取单元、更改单元、发送单元和选择模块的组合实际上执行了如图1所示的显示功能处理模块100的功能。并且,在如上所述选择模块包括用于驱动中央处理单元或图像处理单元来进行图像处理的必要驱动的情况下,选择模块实际上还执行了如图1所示的显示驱动模块120的功能。
对于上述根据本发明第一实施例的显示功能处理模块和根据本发明第一实施例到第三实施例的服务器来说,当应用显示功能处理模块的功能时,需要将本发明的实施例的显示功能处理模块插入在应用模块和用于执行显示功能的显示处理设备之间,该显示处理设备例如是根据本发明第一实施例的服务器中的显卡、或根据本发明第二实施例和第三实施例的服务器中的图像处理单元和显示处理单元。
在正常情况下,当在应用模块和显示处理设备之间不存在本发明的显示功能处理模块时,当应用模块需要调用显示处理设备的显示功能时,应用模块会向显示处理设备发出关于所要调用的显示功能的查询,而显示处理设备在接收到来自应用模块的查询时,会向应用模块返回其可以调用的显示功能的答复。举例来说,某视频播放软件在播放视频时需要开启反锯齿功能,于是其向显示处理设备发出关于反锯齿功能的查询,而显示处理设备在接收到该关于反锯齿的查询时,如果显示处理设备本身具有反锯齿的功能,则向该视频播放软件返回肯定的答复,这样,视频播放软件就可以调用该显示处理设备的反锯齿功能以用于视频播放。否则,显示处理设备向视频播放软件返回否定的答复,则视频播放软件将无法调用该显示处理设备的反锯齿功能。
本发明的显示功能处理模块及显示处理方法的原理在于,由于本发明的显示功能处理模块被插入在应用模块和显示处理设备之间,其可以中转应用模块所发送的查询和显示处理设备所返回的答复。对于应用模块所发送的查询,本发明的显示功能处理模块将全部查询不作更改地转发到显示处理设备,但是对于显示处理设备返回的答复,则根据策略库中的对于显示处理设备的使用的预先设定的策略来对于上述答复进行修改。例如,对于那些依据显示处理设备的使用策略允许该应用模块使用的功能,将相关联的答复不作更改地返回到应用模块,而对于那些依据显示处理设备的使用策略不允许该应用模块使用的功能,则将显示处理设备返回的肯定答复修改为否定答复,从而使得应用模块无法调用显示处理设备的该功能。当然,如果应用模块要求调用某项显示处理设备本身并不具备的功能,这时显示处理设备返回到本发明实施例的显示功能处理模块的答复即为否定的,从而不需要本发明的实施例的显示功能处理模块对该答复进行修改。这里,本领域技术人员可以理解,虽然在一般情况下不需要修改否定的答复,但在某些特殊情况下,例如显示处理设备根据其本身的设置不希望应用模块调用其显示功能,但具体应用需要强制调用该显示功能时,也可以将否定的答复修改为肯定的答复,本发明的实施例并不意在对此进行限制。举例来说,当某播放器应用需要播放某视频时,其向显示处理设备发出了功能A、功能B和功能C的查询,则本发明的禁止视频硬件加速的模块将关于该三项功能的查询全部转发到显示处理设备。该显示处理设备本身具有功能A和功能B,因此,其返回关于功能A和功能B的肯定答复,以及关于功能C的否定答复到该显示功能处理模块,而该显示功能处理模块经过查询策略库,发现允许该播放器应用使用功能A,但不允许其使用功能B,于是,该显示功能处理模块将显示处理设备的关于功能A的肯定答复不作更改地发送回播放器应用,而将显示处理设备的关于功能B的肯定答复修改为否定答复,并发送回播放器应用。这样,该播放器应用接收到关于功能A的肯定答复,以及关于功能B和功能C的否定答复,因此在视频播放过程中,仅能够调用显示处理设备的功能A。
当然,本领域技术人员可以理解,当根据策略库中的策略,在某些情况下需要显示处理设备的使用时,仅需要将显示处理设备返回给应用模块的全部肯定答复修改为否定答复,则将无法使用该显示处理设备,从而实现了整体上禁止应用模块使用该显示处理设备的显示功能。
这里,本领域技术人员可以理解,虽然在上述描述中本发明的实施例的显示功能处理模块将应用模块对于显示功能的查询转发到显示处理设备,但是本发明的实施例的显示功能处理模块也可以不包括转发的功能,而是由应用模块直接将对于显示功能的查询发送到显示处理设备。本发明的实施例的显示功能处理模块仅截取所述显示处理设备对调用该显示功能的查询的响应,并对该响应进行相应的修改。
如上所述,因为向显示处理设备查询某项显示功能是应用模块向该显示处理设备调用该显示功能的一个步骤,根据本发明的实施例的显示功能处理模块除对所述查询的响应进行更改之外,也可以对于显示处理设备对调用请求的响应进行更改,这里本发明的实施例并不意在进行限制。
下面,将参考图5描述本发明的显示功能处理模块在Windows OS系统下的示意性加载过程。图5是示意性地示出了本发明的显示功能处理模块的加载过程的流程图。虽然在图5中仅示意性地示出了本发明的显示功能处理模块在Windows OS系统下的加载过程,但是,本领域技术人员可以理解,在其它系统条件下,也可以类似地加载本发明的禁止视频硬件加速的模块。
如图5所示,首先,在步骤S101,Windows OS系统启动。之后,在步骤S102,由Windows OS系统加载用于本发明的实施例的显示功能处理模块的内核态驱动Lvldr.sys。这里,在安装显示功能处理模块时,需要在WindowsOS系统内安装一个内核态驱动Lvldr.sys。在该驱动安装成功后,当WindowsOS系统启动之后就会根据安装信息(其在注册表内)按照顺序加载该驱动,即,在系统内加载该显示功能处理模块。为了保证能够正确地监控到WindowsOS系统向显示处理设备(即显卡,在下面的描述中将简称为“显卡”)的用户态驱动名称的查询,该内核态驱动Lvldr.sys是在Windows OS系统中的显卡驱动之前就已经被加载的。随后,在系统中加载了该显示功能处理模块之后,需要建立在该显示功能处理模块与媒体应用,即以上实施例中的应用模块和显示处理设备之间的联系。在步骤S103,由该显示功能处理模块的内核态驱动Lvldr.sys向系统注册监控注册表函数,即,使得注册表的所有操作,比如读写等都需要经过Lvldr.sys来进行。之后,在步骤S104,当Windows OS系统需要加载显卡驱动时,会查询注册表该显卡用户态驱动的名称。由于该注册表路径为固定路径,因此,该显示功能处理模块的内核态驱动Lvldr.sys可以根据此路径确定Windows OS需要查询的显卡用户态驱动。之后,在步骤S105,真实的显卡用户态驱动名称被本发明的实施例的显示功能处理模块的内核态驱动Lvldr.sys保存,并在步骤S 106将真实的显卡用户态驱动名称更改为过滤驱动名称,随后在步骤S107将过滤驱动名称返回给Windows OS的注册表内容。即,通过上述步骤,将真实的显卡用户态驱动修改为本发明的实施例的显示功能处理模块的用户态驱动lvumdx32.dll,从而建立了本发明的实施例的显示功能处理模块与媒体应用和显示处理设备之间的联系。此后,在步骤S108,继续等待是否有后续修改,如果有,则返回到步骤S104,并重复步骤S104到步骤S107的过程,而如果没有,则结束此进程。
完成修改之后,即完成了本发明的实施例的显示功能处理模块对于用户态过滤驱动的加载。这样,在系统启动完成之后,当有媒体应用启动时,需要加载显卡的用户态驱动,首先加载的就是本发明的实施例的显示功能处理模块的用户态驱动lvumdx32.dll,然后该lvumdx32会根据内核态驱动Lvldr.sys所保存的真实的显卡用户态驱动名称,将真实显卡用户态驱动加载起来。这样,所有的媒体应用所要向显卡进行的查询操作、绘图操作等都需要先经过lvumdx32,然后才能向真实显卡进行操作,即,实现了本发明的显示功能处理模块在Windows OS系统中插入在媒体应用和真实显卡之间的加载过程。
当然,本领域技术人员可以理解,也可以通过手动修改注册表来将本发明的实施例的显示功能处理模块加载在媒体应用和显示处理设备之间。
下面,将参考图6描述本发明的实施例的显示功能处理模块在WindowsOS系统下的工作过程。图6是示意性地示出了本发明的实施例的显示功能处理模块的工作过程的流程图。虽然在图6中仅示意性地示出了本发明的禁止视频硬件加速的模块在Windows OS系统下的工作过程,但是,本领域技术人员可以理解,在其它操作系统条件下(比如Linux,MacOS等),本发明的禁止视频硬件加速的模块也可以类似地进行工作。
如图6所示,首先,在步骤S201,播放器启动。随后,在步骤S202,本发明的实施例的显示功能处理模块加载用户态驱动lvumdx32,这在上文中已经进行了描述,因此在此不再赘述。然后,在步骤S203,本发明的实施例的显示功能处理模块加载真实用户态显卡驱动,这在上文中也已经进行了描述,因此在此不再赘述。然后,在步骤S204,由Windows OS系统中的媒体播放器向显卡进行查询,分配显示内存,绘画等一系列的操作,这其中的查询操作中就包含查询显卡属性支持能力。例如,在现有的Windows OS系统中,常见的显卡属性包括SupportFormat、D3dCaps、DXVACaps等。其中,SupportFormat是工业界的颜色标准,如RGB,YUV等,D3dCaps是显卡的3D加速功能,主要是能力的描述,而对于DXVACaps,DXVA是DirectX VideoAcceleration的简称,该属性不仅包括了视频数据的解码运算,还有各种后期处理运算。之后,在步骤S205,在媒体播放器查询显卡能力时,由本发明的实施例的显示功能处理模块根据策略库来判断属性支持情况。这里,本发明的实施例的显示功能处理模块首先向真实显卡得到真实的显卡能力,再根据策略库选择过滤掉不应该支持的显卡能力返回给媒体播放器。这样,就实现了对于视频硬件加速的某些功能的禁止。随后,在步骤S206,继续等待是否需要过滤其它显卡功能,如果仍需要过滤,则返回到步骤S204,并重复执行步骤S204和S205的过程,而如果不需要继续过滤,则整个进程结束。
在背景技术部分中,提到了在瘦客户机/服务器的应用模型下需要本发明的实施例的显示功能处理模块及其工作方法,但是本领域技术人员可以理解,本发明的实施例的显示功能处理模块及其工作方法可以应用于任意工作环境下。例如,本发明的实施例的显示功能处理模块及其工作方法也可以应用于单独的计算机中,从而优化各个媒体应用对于显示处理设备的使用。
本领域技术人员可以理解,除了单纯地禁止某些用户的媒体应用使用显示处理设备的图像处理功能之外,本发明的实施例的显示功能处理模块及显示处理方法还可以用于其它应用场景。例如,图7示出了应用本发明的实施例的显示功能处理模块及其工作方法,从而在客户端/服务器应用中实现动态地控制使用图像处理单元(GPU)还是中央处理单元(CPU)来执行显示功能的场景,这里,图7是本发明的实施例的显示功能处理模块及其工作方法的具体应用示例的示例性计算机系统的框图。下面,将参考图7对于该应用场景进行描述。
图7中的客户端/服务器模型是这样的一种模型,其中客户端只具有连接模块和输入输出模块,可以看作服务器的输入输出设备。客户端不具备传统意义的CPU,因此和服务器连接后,如果需要计算,就通过服务器的CPU进行计算;客户端也不具备传统意义的GPU,如果需要显示,就通过服务器的GPU进行图像显示处理,然后直接驱动显示单元显示。一个服务器可以连接多个这样的客户端。
如图7所示,在该应用中,Windows OS系统中的媒体应用为Windows媒体播放器(Windows Media Player),而显示处理设备的驱动包括用户模式显示驱动器(User mode display driver)和显示微端口驱动器(display miniportdriver)的一部分。如图7所示,当在正常情况下Windows媒体播放器需要调用显示处理设备的某功能时,其会首先将查询通过Direct 3D运行时间(Direct3D runtime)传送到用户模式显示驱动器,在得到用户模式显示驱动器的肯定答复的情况下再将该查询通过DXGK子系统传送到显示微端口驱动器,并将显示微端口驱动器关于该功能的肯定答复通过DXGK子系统和Direct 3D运行时间返回到Windows媒体播放器,以实现调用显示处理设备的该功能。因此,在应用本发明的实施例的显示功能处理模块时,将作为本发明的实施例的显示功能处理模块的用户模式过滤驱动器插入到Direct 3D运行时间和用户模式显示驱动器之间,其过程与以上关于图5所述的加载过程相同,在此不再赘述。这样,当根据策略库中的策略确定不应支持Windows媒体播放器所要调用的功能,由用户模式过滤驱动器将来自用户模式显示驱动器的肯定答复修改为否定答复,该修改过程与以上关于图6所示的工作过程相同,在此不再赘述。由此,该查询不再通过DXGK子系统传送到显示微端口驱动器,从而使得Windows媒体播放器收到关于该查询的否定答复,因此不能调用显示处理设备的该功能。这里,将作为本发明的实施例的显示功能处理模块的用户模式过滤驱动器插入到Direct 3D运行时间和用户模式显示驱动器之间,而不是插入在处于内核模式下的Direct 3D运行时间和DXGK子系统之间的原因一方面在于成本方面的考虑,即在内核模式下进行修改会大大提升系统实现的复杂度,同时使得系统的运行不稳定,另一方面,也是因为在实际情况下,绝大部分需要禁止的显示处理设备的图像处理功能是在用户模式下的,即由用户模式显示驱动器实现,而显示微端口驱动器实现的更多的是显示所需的必须功能。因此,通过将作为本发明的实施例的显示功能处理模块的用户模式过滤驱动器插入到Direct 3D运行时间和用户模式显示驱动器之间,就可以实现本发明的禁止媒体应用调用显示处理设备的图像处理功能,同时又不会影响到媒体应用对于视频的正常显示。
对于某些图像处理功能,例如,视频流的解码功能,既可以采用服务器的显示处理设备,即GPU来进行,也可以采用服务器的中央处理单元,即CPU来进行。由于该视频流的解码功能是播放该视频流的必须功能,因此,在禁止由GPU来进行视频流解码的情况下,需要选择CPU来进行,否则,将影响客户端的Windows媒体播放器的正常使用。如图7所示,当Windows媒体播放器需要采用CPU来进行视频流解码时,与使用GPU解码类似,将关于视频流解码的功能的查询通过Win32GDI模块,Win 32K模块和DXGK子系统传送到显示微端口驱动器,并在获得显示微端口驱动器的肯定答复的情况下调用该功能以进行CPU解码。
如图7所示,当连接的客户端使用GPU的数目没有达到限制时,媒体播放器会采用(1)路径进行视频解码,即利用服务器的GPU的视频流处理能力。而当客户端连接使用GPU的数目到达限制以上,媒体播放器首先还是会采用(1)路径,不过这时用户模式过滤驱动器进行工作,从而禁止媒体播放器使用GPU的视频流解码功能,使得媒体播放器无法调用GPU的功能来进行视频流解码。此时,设置媒体播放器直接利用CPU解码,即,采用路径(2)来进行视频流解码以进行显示。
也就是说,通过根据策略库来禁止某些客户端的Windows媒体播放器使用GPU的进行视频流解码的功能,可以动态地控制服务器中的GPU解码或CPU解码,从而实现显示处理设备的优化使用。这里,本领域技术人员可以理解,除了根据所连接的客户端的使用GPU的数目来确定是否禁止GPU解码以外,还可以设定其它禁止GPU解码的策略。例如,设定客户端的优先级,从而使得具有高优先级的客户端总是使用GPU解码,而具有低优先级的客户端总是使用CPU解码,这样,使得具有高优先级的客户能够获得高质量的显示服务,从而提高客户的满意度。本领域技术人员可以理解,在服务器端可以灵活地应用多种禁止策略,本发明不限于上述特定实施例。
根据本发明的实施例的一个方面,提供了显示处理方法,应用于包括应用模块和显示驱动模块的系统中,其中所述应用模块需要调用所述显示驱动模块的显示功能,所述显示处理方法包括:在所述应用模块和显示驱动模块之间加载显示功能处理模块后,当所述显示驱动模块对所述应用模块的显示功能调用做出第一响应时,截取所述第一响应;根据预先设定的策略对所述第一响应进行更改,生成第二响应;和将所述第二响应发送到所述应用模块。
图8是示出了根据本发明的实施例的显示处理方法的示意性流程图。如图8所示,在步骤S301,在应用模块和显示驱动模块之间加载显示功能处理模块,随后在步骤S302,当所述显示驱动模块对所述应用模块的显示功能调用做出第一响应时,截取所述第一响应,之后,在步骤S303,根据预先设定的策略对所述第一响应进行更改,生成第二响应,最后,在步骤S304,将第二响应发送到应用模块。
在本发明的实施例的显示功能处理方法中,可以进一步包括步骤:当所述应用模块需要调用所述显示驱动模块的显示功能时,由所述显示功能处理模块将所述应用模块对显示功能的调用请求转发到所述显示驱动模块。
在本发明的实施例的显示处理方法中,与上面参考图5所述的加载显示功能处理模块的描述类似,加载显示功能处理模块的步骤可以包括:加载所述显示功能处理模块的内核态驱动;由所述内核态驱动向系统注册监控注册表函数;当系统通过查询注册表查询所述显示驱动模块的用户态驱动时,所述显示功能处理模块通过注册表路径确定系统所查询的所述显示驱动模块的用户态驱动;由所述显示功能处理模块保存所述显示驱动模块的用户态驱动的名称;由所述显示功能处理模块将所述显示驱动模块的用户态驱动的名称修改为过滤驱动名称;由所述显示功能处理模块将所述过滤驱动名称返回给系统,从而将真实的显示驱动模块的用户态驱动修改为所述显示功能处理模块的用户态驱动。
在本发明的实施例的显示处理方法中,与上面参考图6所述的显示功能处理模块的工作过程类似,在加载所述显示功能处理模块后,在截取所述显示驱动模块对所述应用模块的显示功能调用做出的第一响应之前,可以包括步骤:当应用模块启动以加载所述显示驱动模块的用户态驱动时,加载所述显示功能处理模块的用户态驱动;所述显示功能处理模块的用户态驱动根据由所述显示功能处理模块保存的所述显示驱动模块的用户态驱动的名称,加载真实的显示驱动模块的用户态驱动。并且,所述更改显示驱动模块对应用模块的显示功能调用的响应的步骤包括:由所述显示功能处理模块从真实的显示驱动模块得到真实的显示功能;和根据预先设定的策略,将所述第一响应中对至少一个显示功能的肯定答复修改为否定答复,从而生成第二响应。
根据本发明的实施例的另一方面,提供了一种显示处理方法,应用于一服务器,所述服务器与多个客户端相连接,且所述服务器包括由客户端使用的应用模块、显卡和用于驱动所述显卡的显卡驱动,所述方法包括:在所述客户端使用所述服务器的应用模块的显示功能,所述应用模块通过所述显卡驱动调用所述显卡的所述显示功能后,当所述显卡驱动对所述应用模块的显示功能调用做出第一响应时,截取所述第一响应;根据预先设定的策略对所述第一响应进行更改,生成第二响应;和将所述第二响应发送到所述应用模块;其中,所述应用模块通过所述显卡驱动调用所述显卡的与所述第二响应对应的显示功能,以由所述客户端使用。
据本发明的实施例的又一方面,提供了一种显示处理方法,应用于一服务器,所述服务器与多个客户端相连接,且所述服务器包括由客户端使用的应用模块、图像处理单元、中央处理单元和用于选择所述图像处理单元或所述中央处理单元来执行显示功能的选择模块,所述方法包括:在所述客户端使用所述服务器的应用模块的显示功能,所述应用模块向所述服务器的选择模块发出选择所述服务器的图像处理单元或中央处理单元来执行所述显示功能的第一请求时,所述选择模块向所述图像处理单元或所述中央处理单元发送查询所述显示功能的第二请求,当所述选择模块对所述应用模块的所述第二请求做出第一响应时,截取所述第一响应;根据预先设定的策略对所述第一响应进行更改,生成第二响应;和将所述第二响应发送到所述显示应用;其中,所述选择模块根据所述第二响应选择所述中央处理单元或所述图像处理单元来执行所述显示功能,以由所述客户端使用。
据本发明的实施例的又一方面,提供了一种显示处理方法,应用于一服务器,所述服务器与多个客户端相连接,且所述服务器包括由客户端使用的应用模块、图像处理单元、中央处理单元和用于选择所述图像处理单元或所述中央处理单元来执行显示功能的选择模块,所述方法包括:在所述客户端使用所述服务器的应用模块的显示功能,所述应用模块向所述服务器的选择模块发出选择所述服务器的图像处理单元来执行所述显示功能的第一请求时,所述选择模块向所述图像处理单元发送查询所述显示功能的第二请求,当所述选择模块对所述应用模块的所述第二请求做出第一响应时,截取所述第一响应;根据预先设定的策略对所述第一响应进行更改,生成第二响应;和将所述第二响应发送到所述显示应用;其中,所述选择模块根据所述第二响应选择所述中央处理单元来执行所述显示功能,以由所述客户端使用。
在上述显示处理方法中,所述预定设定的策略包括根据所述服务器所连接的客户端使用显示应用的数目来进行判定,其中,如果所连接的客户端当中正在使用所述图像处理单元的客户端的数目超过第一阈值,则将所述第一响应更改为第二响应,从而使得所述选择模块选择所述服务器的所述中央处理单元来执行所述显示功能,以由所述客户端使用。
在上述显示处理方法中,所述预定设定的策略包括根据所述客户端的优先级来进行判定,其中,对于具有高优先级的客户端,不对第一响应进行更改,从而使得选择模块选择服务器的显示处理单元来执行所述显示功能,以由所述客户端使用;对于具有低优先级的客户端,将所述第一响应更改为第二响应,从而使得选择模块选择服务器的中央处理单元来执行所述显示功能,以由所述客户端使用。
通过本发明的显示功能处理模块,服务器和显示处理方法,能够基于预定策略灵活地使用显示处理设备的显示功能,从而实现系统的显示资源的合理和有效使用。
通过本发明的显示功能处理模块,服务器和显示处理方法,能够动态地控制使用图像处理单元或中央处理单元来执行显示功能,从而在防止图像处理单元的资源有限的限制的同时能够充分地利用图像处理单元的资源。
本发明已经参考具体实施例进行了详细说明。然而,很明显,在不背离本发明的精神的情况下,本领域技术人员能够对实施例执行更改和替换。换句话说,本发明用说明的形式公开,而不是被限制地解释。要判断本发明的要旨,应该考虑所附的权利要求。

Claims (18)

1.一种显示功能处理模块,应用于包括应用模块和显示驱动模块的系统中,其中所述应用模块需要调用所述显示驱动模块的显示功能,所述显示功能处理模块包括:
截取单元,与所述显示驱动模块连接,用于当所述显示驱动模块对所述应用模块的显示功能调用做出第一响应时,截取所述第一响应;
更改单元,与所述截取单元连接,用于根据预先设定的策略对所述第一响应进行更改,生成第二响应;和
发送单元,与所述更改单元和所述应用模块连接,用于将所述第二响应发送到所述应用模块。
2.如权利要求1所述的显示功能处理模块,其中,所述更改单元根据预先设定的策略,将所述第一响应中对至少一个显示功能的肯定答复修改为否定答复,从而生成第二响应。
3.如权利要求1所述的显示功能处理模块,其进一步包括转发单元,与所述应用模块和所述显示驱动模块连接,用于将所述应用模块的显示功能调用转发到所述显示驱动模块。
4.一种服务器,与多个客户端相连接,且所述服务器包括应用模块、显卡和用于驱动该显卡的显示驱动模块,其中,在所述客户端使用所述应用模块的显示功能时,所述应用模块通过所述显示驱动模块调用所述显卡的显示功能,所述服务器进一步包括:
截取单元,与所述显示驱动模块连接,用于当所述显示驱动模块对所述客户端的显示功能调用做出第一响应时,截取所述第一响应;
更改单元,与所述截取单元连接,用于根据预先设定的策略对所述第一响应进行更改,生成第二响应;和
发送单元,与所述更改单元和所述客户端连接,用于将所述第二响应发送到所述应用模块;
其中,所述应用模块通过所述显示驱动模块调用所述显卡与所述第二响应对应的显示功能,以由所述客户端使用。
5.一种服务器,与多个客户端相连接,且所述服务器包括应用模块、图像处理单元、中央处理单元和用于选择所述图像处理单元或所述中央处理单元来执行显示功能的选择模块,其中,在任一所述多个客户端使用所述应用模块的显示功能时,所述应用模块向所述选择模块发出选择所述图像处理单元或所述中央处理单元来执行所述显示功能的第一请求,且所述选择模块在接收到所述第一请求之后,向所述图像处理单元或所述中央处理单元发送用于查询所述显示功能的第二请求,所述服务器进一步包括:
截取单元,与所述图像处理单元或所述中央处理单元连接,用于当所述图像处理单元或所述中央处理单元对所述选择模块发出的所述第二请求做出第一响应时,截取所述第一响应;
更改单元,与所述截取单元连接,用于根据预先设定的策略对所述第一响应进行更改,生成第二响应;和
发送单元,与所述更改单元和所述选择模块连接,用于将所述第二响应发送到所述选择模块;
其中,所述选择模块根据所述第二响应选择所述中央处理单元或所述图像处理单元来执行所述显示功能,以由所述客户端使用。
6.一种服务器,与多个客户端相连接,且所述服务器包括应用模块、图像处理单元、中央处理单元和用于选择所述图像处理单元或所述中央处理单元来执行显示功能的选择模块,其中,在任一所述多个客户端使用所述应用模块的显示功能时,所述应用模块向所述选择模块发出选择所述图像处理单元来执行所述显示功能的第一请求,且所述选择模块在接收到所述第一请求之后,向所述图像处理单元发送用于查询所述显示功能的第二请求,所述服务器进一步包括:
截取单元,与所述图像处理单元连接,用于当所述图像处理单元对所述选择模块发出的所述第二请求做出第一响应时,截取所述第一响应;
更改单元,与所述截取单元连接,用于根据预先设定的策略对所述第一响应进行更改,生成第二响应;和
发送单元,与所述更改单元和所述选择模块连接,用于将所述第二响应发送到所述选择模块;
其中,所述选择模块根据所述第二响应选择所述中央处理单元来执行所述显示功能,以由所述客户端使用。
7.如权利要求6所述的服务器,其中,所述更改单元包括第一判断单元,用于判断所连接的客户端当中正在使用所述图像处理单元的客户端的数目是否超过第一阈值,其中
当正在使用所述图像处理单元的客户端的数目超过第一阈值时,将所述第一响应更改为第二响应,从而使得所述选择模块选择所述服务器的所述中央处理单元来执行所述显示功能,以由所述客户端使用。
8.如权利要求6所述的服务器,其中,所述更改单元包括第二判断单元,用于判断所述客户端的优先级,其中
当所述第二判断单元判断客户端具有低优先级时,将所述第一响应更改为第二响应,从而使得所述选择模块选择所述服务器的所述中央处理单元来执行所述显示功能,以由所述客户端使用。
9.一种显示处理方法,应用于包括应用模块和显示驱动模块的系统中,其中所述应用模块需要调用所述显示驱动模块的显示功能,所述显示处理方法包括:
在所述应用模块和显示驱动模块之间加载一显示功能处理模块后,当所述显示驱动模块对所述应用模块的显示功能调用做出第一响应时,截取所述第一响应;
根据预先设定的策略对所述第一响应进行更改,生成第二响应;和
将所述第二响应发送到所述应用模块。
10.如权利要求9所述的显示处理方法,进一步包括步骤:
当所述应用模块需要调用所述显示驱动模块的显示功能时,由所述显示功能处理模块将所述应用模块对显示功能的调用请求转发到所述显示驱动模块。
11.如权利要求9所述的显示处理方法,其中,所述加载显示功能处理模块的步骤包括:
加载所述显示功能处理模块的内核态驱动;
由所述内核态驱动向系统注册监控注册表函数;
当系统通过查询注册表查询所述显示驱动模块的用户态驱动时,所述显示功能处理模块通过注册表路径确定系统所查询的所述显示驱动模块的用户态驱动;
由所述显示功能处理模块保存所述显示驱动模块的用户态驱动的名称;
由所述显示功能处理模块将所述显示驱动模块的用户态驱动的名称修改为过滤驱动名称;
由所述显示功能处理模块将所述过滤驱动名称返回给系统,从而将真实的显示驱动模块的用户态驱动修改为所述显示功能处理模块的用户态驱动。
12.如权利要求9所述的显示处理方法,其中,在加载所述显示功能处理模块后,在截取所述显示驱动模块对所述应用模块的显示功能调用做出的第一响应之前,包括步骤:
当应用模块启动以加载所述显示驱动模块的用户态驱动时,加载所述显示功能处理模块的用户态驱动;
所述显示功能处理模块的用户态驱动根据由所述显示功能处理模块保存的所述显示驱动模块的用户态驱动的名称,加载真实的显示驱动模块的用户态驱动。
13.如权利要求9所述的显示处理方法,其中,所述更改第一响应的步骤包括:
由所述显示功能处理模块从真实的显示驱动模块得到真实的显示功能;和
根据预先设定的策略,将所述第一响应中对至少一个显示功能的肯定答复修改为否定答复,从而生成第二响应。
14.一种显示处理方法,应用于一服务器,所述服务器与多个客户端相连接,且所述服务器包括由客户端使用的应用模块、显卡和用于驱动所述显卡的显卡驱动,所述方法包括:
在所述客户端使用所述服务器的应用模块的显示功能,所述应用模块通过所述显卡驱动调用所述显卡的所述显示功能后,当所述显卡驱动对所述应用模块的显示功能调用做出第一响应时,截取所述第一响应;
根据预先设定的策略对所述第一响应进行更改,生成第二响应;和
将所述第二响应发送到所述应用模块;
其中,所述应用模块通过所述显卡驱动调用所述显卡的与所述第二响应对应的显示功能,以由所述客户端使用。
15.一种显示处理方法,应用于一服务器,所述服务器与多个客户端相连接,且所述服务器包括由客户端使用的应用模块、图像处理单元、中央处理单元和用于选择所述图像处理单元或所述中央处理单元来执行显示功能的选择模块,所述方法包括:
在所述客户端使用所述服务器的应用模块的显示功能,所述应用模块向所述服务器的选择模块发出选择所述服务器的图像处理单元或中央处理单元来执行所述显示功能的第一请求时,所述选择模块向所述图像处理单元或所述中央处理单元发送查询所述显示功能的第二请求,当所述图像处理单元或所述中央处理单元对所述选择模块的所述第二请求做出第一响应时,截取所述第一响应;
根据预先设定的策略对所述第一响应进行更改,生成第二响应;和
将所述第二响应发送到所述选择模块;
其中,所述选择模块根据所述第二响应选择所述中央处理单元或所述图像处理单元来执行所述显示功能,以由所述客户端使用。
16.一种显示处理方法,应用于一服务器,所述服务器与多个客户端相连接,且所述服务器包括由客户端使用的应用模块、图像处理单元、中央处理单元和用于选择所述图像处理单元或所述中央处理单元来执行显示功能的选择模块,所述方法包括:
在所述客户端使用所述服务器的应用模块的显示功能,所述应用模块向所述服务器的选择模块发出选择所述服务器的图像处理单元来执行所述显示功能的第一请求时,所述选择模块向所述图像处理单元发送查询所述显示功能的第二请求,当所述图像处理单元对所述选择模块的所述第二请求做出第一响应时,截取所述第一响应;
根据预先设定的策略对所述第一响应进行更改,生成第二响应;和
将所述第二响应发送到所述选择模块;
其中,所述选择模块根据所述第二响应选择所述中央处理单元来执行所述显示功能,以由所述客户端使用。
17.如权利要求16所述的显示处理方法,其中,所述预先设定的策略包括根据所述服务器所连接的客户端当中正在使用所述图像处理单元的客户端的数目来进行判定,其中
如果所连接的客户端当中正在使用所述图像处理单元的客户端的数目超过第一阈值,则将所述第一响应更改为第二响应,从而使得所述选择模块选择所述服务器的所述中央处理单元来执行所述显示功能,以由所述客户端使用。
18.如权利要求16所述的显示处理方法,其中,所述预先设定的策略包括根据所述客户端的优先级来进行判定,其中
对于具有低优先级的客户端,将所述第一响应更改为第二响应,从而使得所述选择模块选择所述服务器的所述中央处理单元来执行所述显示功能,以由所述客户端使用。
CN201010288165.5A 2010-09-19 2010-09-19 显示功能处理模块,服务器和显示处理方法 Active CN102402412B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201010288165.5A CN102402412B (zh) 2010-09-19 2010-09-19 显示功能处理模块,服务器和显示处理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201010288165.5A CN102402412B (zh) 2010-09-19 2010-09-19 显示功能处理模块,服务器和显示处理方法

Publications (2)

Publication Number Publication Date
CN102402412A CN102402412A (zh) 2012-04-04
CN102402412B true CN102402412B (zh) 2014-12-31

Family

ID=45884651

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201010288165.5A Active CN102402412B (zh) 2010-09-19 2010-09-19 显示功能处理模块,服务器和显示处理方法

Country Status (1)

Country Link
CN (1) CN102402412B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104753976A (zh) * 2013-12-26 2015-07-01 中国石油化工股份有限公司 本地客户端自动化启动和显示远程服务端地质解释专业软件的方法
CN104951298A (zh) * 2014-03-27 2015-09-30 飞搜股份有限公司 应用程序与虚拟机通讯连接的系统与方法

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7734085B2 (en) * 2002-06-28 2010-06-08 Sharp Kabushiki Kaisha Image data delivery system, image data transmitting device thereof, and image data receiving device thereof
US8112513B2 (en) * 2005-11-30 2012-02-07 Microsoft Corporation Multi-user display proxy server
US20080172555A1 (en) * 2007-01-17 2008-07-17 Erink Technologies, Llc Bootable thin client personal initialization device
US8253732B2 (en) * 2008-01-03 2012-08-28 International Business Machines Corporation Method and system for remote visualization client acceleration
TW200948088A (en) * 2008-02-27 2009-11-16 Ncomputing Inc System and method for virtual 3D graphics acceleration and streaming multiple different video streams

Also Published As

Publication number Publication date
CN102402412A (zh) 2012-04-04

Similar Documents

Publication Publication Date Title
EP3343364A1 (en) Accelerator virtualization method and apparatus, and centralized resource manager
CN103701807A (zh) 一种vdi环境下的数据发送方法和装置
US20080005236A1 (en) Optimized desktop sharing viewer join
US11782756B2 (en) Method and apparatus for scheduling processor core, and storage medium
CN110955499B (zh) 处理器核心配置方法、装置、终端及存储介质
KR20160098438A (ko) 컴퓨터, 제어 장치 그리고 데이터 처리 방법
JP2006502457A (ja) ネットワーク接続されたリソース上の制約を有する装置の実行及びリソースをオフロードする方法及びシステム
CN102196033B (zh) 一种传送和接收远程呈现数据的方法和系统
CN112988400B (zh) 显存优化方法、装置、电子设备以及可读存储介质
US9218212B2 (en) Pairing physical devices to virtual devices to create an immersive environment
US10389832B2 (en) Remote casting of media content
CN105721547A (zh) 协同处理业务的方法和装置
CN105930249B (zh) 应用监控方法和装置
CN111510493B (zh) 分布式数据传输方法及装置
CN102402412B (zh) 显示功能处理模块,服务器和显示处理方法
CN116636223A (zh) 元宇宙流传输系统及方法
CN111445331A (zh) 交易撮合方法及装置
US20200404047A1 (en) Configurable connection reset for customized load balancing
CN102999345B (zh) 一种操作系统加载的方法、设备和系统
CN107092507A (zh) 应用程序的换肤方法、装置及系统
CN113138812A (zh) 航天器任务调度方法及装置
CN112596852A (zh) 一种图形显示方法、装置、系统、电子设备及存储介质
CN110781014B (zh) 基于Android设备的录音数据的多进程分发方法与系统
US20130185448A1 (en) Systems and Methods for Managing Emulation Sessions
CN113625586A (zh) 一种基于网关控制智能家居的方法及系统

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant