在定制gui显示器中实现先前渲染的帧缓冲区信息的制作方法

文档序号:6534575阅读:203来源:国知局
在定制gui显示器中实现先前渲染的帧缓冲区信息的制作方法
【专利摘要】各实施例涉及提供对图形用户界面(GUI)帧缓冲区的直接访问以及将输入硬件与登录会话相关联。在一个场景中,计算机系统向远程桌面客户端注册插件软件模块。该注册包括请求为在计算机系统显示器上显示而渲染的一个或多个帧缓冲区。该计算机系统确定已在计算机系统用户和所述远程桌面客户端之间建立了会话。该计算机系统随后接收所请求的帧缓冲区并在该计算机系统显示器上显示所述帧缓冲区和/或向各已注册第三方发送所接收的帧缓冲区。
【专利说明】在定制GUI显示器中实现先前渲染的帧缓冲区信息
[0001] 背景
[0002] 计算机图形用户界面通常是使用物理图形处理单元(GPU)来渲染,并随后显示在 经由标准物理图形接口电缆(诸如DVI、VGA、DisplayPort或HDMI)连接至该GPU的监视器 上的。此通常配置在尝试创建具有更大数量的监视器时具有某些限制。例如,典型的个人 计算机(PC)仅附带一个或两个监视器端口。可为台式PC购买具有超过两个端口的售后市 场图形卡,但是这些卡相对昂贵。典型的台式PC主板仅具有一个或两个用于图形卡的扩展 槽,而具有更多扩展槽的配置需要定制PC,定制PC昂贵且组装和维护很复杂。而且,标准物 理图形电缆能够发挥功能的跨越距离有限。
[0003] 已经开发出各种技术,这些技术允许用户通过不同接口(诸如USB)将监视器连接 至计算机。这些技术一般涉及操纵视频驱动器栈以便向OS呈现比实际物理连接到GPU的 更多的监视器。这些技术可能引入由视频过滤器驱动器带来的不良的可靠性,视频过滤器 驱动器难以开发且非常容易出现由GPU驱动器的变化所导致的损坏。
[0004] 简要概述
[0005] 此处描述的实施例涉及提供对图形用户界面(GUI)帧缓冲区的直接访问以及将 输入硬件与登录会话相关联。在一个实施例中,计算机系统向远程桌面客户端注册插件软 件模块。该注册包括请求为了在计算机系统显示器上显示而渲染的一个或多个帧缓冲区。 该计算机系统确定在计算机系统用户和远程桌面客户端之间已建立会话。该计算机系统随 后接收所请求的帧缓冲区并在计算机系统显示器上显示帧缓冲区和/或向各已注册第三 方发送所接收的帧缓冲区。
[0006] 在另一实施例中,计算机系统将输入硬件与登录会话相关联。该计算机系统确定 哪些显示器设备连接至该计算机系统并且枚举连接至该计算机系统的每个显示器设备。该 计算机系统为每个所枚举的显示器设备创建定制会话。创建该定制会话包括向在该计算机 系统上运行的远程桌面客户端注册插件软件模块,请求为在所枚举的显示器设备至少一个 上显示而渲染的一个或多个帧缓冲区,接收该一个或多个所请求的帧缓冲区。该计算机系 统随后在所枚举的显示器设备上显示该帧缓冲区和/或向各已注册第三方发送所接收的 帧缓冲区。
[0007] 提供本概述是为了以简化的形式介绍将在以下【具体实施方式】中进一步描述的概 念选择。本概述不旨在标识出所要求保护的主题的关键特征或必要特征,也不旨在用于帮 助确定所要求保护的主题的范围。
[0008] 附加的特征和优点将在以下的描述中被阐述,并且部分地可通过该描述而对本领 域技术人员显而易见,或者可通过对本文中的教示的实践来习得。在此描述的各实施例的 特征和优点可以通过在所附权利要求中特别指出的手段和组合来实现并获取。在此描述的 各实施例的特征将在以下描述和所附权利要求书中变得更加完全显而意见。

【专利附图】

【附图说明】
[0009] 为了进一步阐明在此描述的各实施例的以上和其他特征,将参考附图来呈现更具 体的描述。可以理解,这些附图仅是描绘在此描述的实施例的示例,因此将不被认为是对其 范围的限制。各实施例将通过使用附图用附加特征和细节来描述和解释,附图中:
[0010] 图1解说了此处描述的实施例可在其中操作(包括提供对图形用户界面(GUI)帧 缓冲区的直接访问)的计算机架构。
[0011] 图2解说了用于提供对图形用户界面(⑶I)帧缓冲区的直接访问的示例方法的流 程图。
[0012] 图3解说了用于将输入硬件与登录会话相关联的示例方法的流程图。
[0013] 图4解说了在其中两个用户共享计算机监视器的实施例,每个用户具有他们自己 的计算机桌面。
[0014] 图5解说了在其中使用USB集线器来将单个计算机系统连接至多个计算机监视器 的实施例。

【具体实施方式】
[0015] 此处描述的实施例涉及提供对图形用户界面(GUI)帧缓冲区的直接访问以及将 输入硬件与登录会话相关联。在一个实施例中,计算机系统向远程桌面客户端注册插件软 件模块。该注册包括请求为了在计算机系统显示器上显示而渲染的一个或多个帧缓冲区。 该计算机系统确定在计算机系统用户和远程桌面客户端之间已建立会话。该计算机系统随 后接收所请求的帧缓冲区并在计算机系统显示器上显示帧缓冲区和/或向各已注册第三 方发送所接收的帧缓冲区。
[0016] 在另一实施例中,计算机系统将输入硬件与登录会话相关联。该计算机系统确定 哪些显示器设备连接至该计算机系统并且枚举连接至该计算机系统的每个显示器设备。该 计算机系统为每个所枚举的显示器设备创建定制会话。创建该定制会话包括向在该计算机 系统上运行的远程桌面客户端注册插件软件模块,请求为在所枚举的显示器设备的至少一 个上显示而渲染的一个或多个帧缓冲区,接收该一个或多个所请求的帧缓冲区。该计算机 系统随后在所枚举的显示器设备上显示该帧缓冲区和/或向各已注册第三方发送所接收 的帧缓冲区。
[0017] 以下讨论现涉及可以执行的多种方法以及方法动作。应当注意,虽然这些方法动 作可能是按一定次序讨论的,或者是在流程图中被描绘为是按照特定顺序进行的,然而并 非必然需要特定的次序,除非是特别声明的或者是因为一个动作依赖于在执行该动作之前 完成另一动作而需要的。
[0018] 这里描述的各实施例可包括或利用专用或通用计算机,该专用或通用计算机包括 诸如例如一个或多个处理器和系统存储器等计算机硬件,如以下更详细讨论的。这里描述 的各实施例还包括用于承载或存储计算机可执行指令和/或数据结构的物理和其他计算 机可读介质。这样的计算机可读介质可以是可由通用或专用计算机系统访问的任何可用介 质。以数据形式存储有计算机可执行指令的计算机可读介质是计算机存储介质。承载计算 机可执行指令的计算机可读介质是传输介质。由此,作为示例而非限制,此处描述的各实施 例可包括至少两种显著不同种类的计算机可读介质:计算机存储介质和传输介质。
[0019] 计算机存储介质包括RAM、ROM、EEPROM、CD-ROM、基于RAM、闪存、相变存储器(PCM) 的固态驱动器(SSD),或其它类型的存储器,或者其他光盘存储、磁盘存储或其他磁存储设 备,或可用于以计算机可执行指令、数据或数据结构形式存储所期望的程序代码资料且可 被通用或专用计算机访问的任何其他介质。
[0020] "网络"被定义成允许在计算机系统和/或模块和/或其他电子设备之间传输电子 数据的一个或多个数据链路和/或数据交换机。当信息通过网络(硬连线、无线、或者硬连 线或无线的组合)被传输或提供给计算机时,该计算机将该连接适当地视为传输介质。传 输介质可以包括如下的网络:所述网络可以用于以计算机可执行指令形式或数据结构形式 承载数据或所期望的程序代码资料,并且可以被通用或专用计算机访问。上述的组合也应 被包括在计算机可读介质的范围内。
[0021] 此外,在到达各种计算机系统组件之后,计算机可执行指令或数据结构形式的程 序代码资料可从传输介质自动传输到计算机存储介质(或反之亦然)。例如,通过网络或数 据链路接收到的计算机可执行指令或数据结构可被缓冲在网络接口模块(例如,网络接口 卡或"NIC")内的RAM中,然后最终被传输给计算机系统RAM和/或计算机系统处的较不易 失性的计算机存储介质。因而,应当理解,计算机存储介质可被包括在还利用(或甚至主要 利用)传输介质的计算机系统组件中。
[0022] 计算机可执行(或计算机可解释)的指令包括例如致使通用计算机、专用计算机、 或专用处理设备执行某个功能或某组功能的指令。计算机可执行指令可以是例如二进制代 码、诸如汇编语言之类的中间格式指令、或甚至源代码。尽管用结构特征和/或方法动作专 用的语言描述了本主题,但可以理解,所附权利要求书中定义的主题不必限于上述特征或 动作。更具体而言,上述特征和动作是作为实现权利要求的示例形式而公开的。
[0023] 本领域的技术人员将理解,各实施例可以在具有许多类型的计算机系统配置的网 络计算环境中实践,这些计算机系统配置包括个人计算机、台式计算机、膝上型计算机、消 息处理器、手持式设备、多处理器系统、基于微处理器的或可编程消费电子设备、网络PC、小 型计算机、大型计算机、移动电话、PDA、平板、寻呼机、路由器、交换机等等。此处描述的各实 施例还可在分布式系统环境中实践,在该环境中通过网络(要么经由硬连线数据链路、无 线数据链路、要么经由硬连线和无线数据链路的组合)链接起来的本地和远程计算机系统 每个都执行任务(例如,云计算、云服务等)。在分布式系统环境中,程序模块可以位于本地 和远程存储器存储设备二者中。
[0024] 在该描述和下面的权利要求书中,"云计算"被定义为用于允许对可配置计算资源 (例如,网络、服务器、存储、应用和服务)的共享池的按需网络访问的模型。"云计算"的定 义不限于可从这样的模型(在被合适地部署时)中获得的任何其他多个优点。
[0025] 例如,云计算当前被用于市场,以便提供对可配置计算资源的共享池的普遍存在 且方便的按需访问。此外,可配置计算资源的共享池可经由虚拟化而被快速地供应,并可利 用低管理努力或服务提供商干预来发布,并随后因此被缩放。
[0026] 云计算模型可由各种特性组成,诸如按需自服务、广泛网络访问、资源池、快速灵 活性、测定的服务等。云计算模型还可形成各种服务模型,诸如例如软件即服务(SaaS)、平 台即服务(PaaS)以及基础结构即服务(IaaS)。云计算模型还可以使用不同的部署模型来 部署,诸如私有云、社区云、公共云和混合云等。在该描述和权利要求书中,"云计算环境"是 其中采用了云计算的环境。
[0027] 除此之外或作为替代,本文所述的功能可至少部分地由一个或多个硬件逻辑组件 来执行。作为示例而非限制,可被使用的硬件逻辑组件的说明性类型包括现场可编程门阵 列(FPGA)、程序专用的集成电路(ASIC)、程序专用的标准产品(ASSP)、片上系统(SOC)、复 杂可编程逻辑器件(CPLD)以及其它类型的可编程硬件。
[0028] 此处还描述的系统架构可包括多个独立组件,每个作为整体对系统功能作贡献。 该模块性在着手处理平台可缩放性问题时,允许增加的灵活性,并且,为此提供各种优点。 通过在受限功能范围内的更小规模部分的使用,系统复杂性和增长可被更容易地管理。通 过这些松散耦合的模块的使用,平台容错性增强。随着商业需要规定,各组件可被增量式地 增长。模块化开发也转化成减少了新功能的上市的时间。新功能可被添加或减去而不影响 核心系统。
[0029] 图1示出了其中至少一个实施例可被利用的计算机架构100。计算机架构100包 括计算机系统101。计算机系统101可以是任何类型的本地或分布式计算机系统,包括云计 算系统。计算机系统包括用于执行各种不同功能的各模块。例如,计算机系统101包括插 件软件模块105。插件软件模块105被配置成截取针对计算机显示器(例如,130)的帧缓 冲区111。该插件软件模块可对帧缓冲区111执行处理,包括向第三方120或向计算机系统 用户125发送该帧缓冲区。
[0030] 计算机系统用户125可建立与计算机系统101的远程桌面客户端会话112。与远 程桌面客户端110的会话112允许用户125(连同多个其他用户)登录到同一计算机系统 中。例如,如图5中所示,显示器530A-530H处的多个不同用户可登录到远程桌面客户端中 以建立与计算机系统501的会话。如此,在这些显示器的每一个显示器处的用户可具有其 自己的、定制的桌面,其自己的显示器,其自己的鼠标以及对他们已创建(或以其它方式能 够访问)的文档或其他文件的访问。
[0031] 在许多系统中,计算机图形用户界面(⑶I)是使用物理图形处理单元(GPU)处 理并随后在经由物理图形接口电缆(诸如数字视觉接口(DVI)、视频图形阵列(VGA)、 DisplayPort?、或高解析度多媒体接口(HDMI)电缆)连接至该GPU的监视器上显示。个 人计算机(PC)通常仅附带一个或两个监视器端口。可为台式PC购买具有超过两个端口的 售后市场图形卡,但是通常很昂贵。
[0032] 将多个监视器连接到计算机系统的一种方式是使用不同的接口,包括通用串行接 口(USB)。此类实现一般涉及操纵视频驱动器栈以便向操作系统(OS)呈现比实际物理连接 到GPU的更多的监视器。此类实现可引入由视频过滤器驱动器带来的不良的可靠性,视频 过滤器驱动器容易出现由GPU驱动器的变化导致的损坏。在此类实现中,当从GPU的视频 存储器读回时,也可能导致不良性能(例如,当正在通过单个GPU来渲染带光标移动的多个 视频流时)。又进一步,操作系统图形子系统经常关于可连接至单个GPU的显示器的数量具 有内建限制。
[0033] 在此处描述的多用户实施例中,在多个用户已建立了至虚拟化桌面的远程桌面连 接时,在针对每个桌面的图形Π 到达远程桌面客户端110的时候,它已经被渲染为帧缓冲 区111。随后,远程桌面客户端110不需要利用GPU。如此处所述的,各实施例提供了软件接 口,该软件接口允许第三方(例如,120)直接获得对图形Π 帧缓冲区111的访问权。这些 帧缓冲区随后可被直接处理、传送并显示在监视器(例如,显示器130),而不使用GPU。此 处描述的实施例还通过绕过对所有监视器的单个硬件鼠标光标的任何潜在底层OS限制来 允许针对每个监视器使用硬件鼠标光标。
[0034] 如图5中所示,中心计算机系统501可附接于一个或多个本地用户站 (530A-530H)。这些本地用户站中的每一个可包括用于显示操作系统桌面的至少一个监视 器、用于用户输入的键盘、以及鼠标。本地用户站可使用经由中心集线器555 (诸如USB集 线器或其他连接设备)连接至中心计算机系统501的物理监视器以及枚举作为操作系统中 的显示器设备的那些物理显示器来创建。还可使用更多类型的本地用户站。这些本地用户 站在本文中可被称为"定制呈现器站"。这些定制呈现器站可使用例如通过多功能USB集线 器550连接的显示器设备来创建。
[0035] 用户或安装器可使用直接视频连接站和多个多功能USB集线器(例如, 550A-550H)将定制呈现器站连接至中心计算机系统501。该多功能集线器可包括视频端口 和用于键盘和鼠标(例如,外围设备531A-531H)的设备端口。安装器连接并映射该直接视 频连接站,并随后为该多功能集线器安装定制呈现器插件(例如,插件软件模块105)。安装 器将该多功能集线器连接至该中心计算机系统(直接地或通过中心集线器555),并且在该 计算机系统重启(或重新启动上面提及的功能性)时,带该多功能集线器的所有站被自动 映射至各站并显示桌面登录屏幕(或其他图像)。
[0036] 中心计算机系统501可被配置成在连接至该计算机(例如,集线器550A-550H)的 USB集线器间迭代并为每个集线器调用指定插件。该插件检查所指定的USB集线器来确定 该插件是否将该集线器识别为定制站呈现器集线器。如果没有,则该站不被实现为定制呈 现站。如果该插件识别该集线器,则返回一指针,该指针标识定制呈现器站的地址。
[0037] 在一些情况下,接口可被该中心计算机系统101/501用来从定制呈现器站检索唯 一标识符,获得该设备的维度,以及将该呈现设备分为一个或多个站(如图4中所示)。该 中心计算机系统可使用一种方法来检索该定制呈现器站设备的系统范围的唯一且持久的 ID( "实例ID",例如全局唯一标识符(⑶ID) 106)。该实例ID可被中心计算机系统保留在 持久存储区域中以便每当该系统重启时它可重新创建同一站。其他方法可被用来执行各种 任务,诸如请求定制呈现设备的屏幕区域的大小(按像素计算)、将定制呈现器站细分为一 个或多个区域,其中每个区域代表站的桌面、检索站呈现器的维度以获得站呈现器的定制 鼠标呈现器接口、以及为该站呈现器提供帧缓冲区。
[0038] 定制鼠标呈现器接口可被用来用鼠标指针移动更新站的屏幕。该定制鼠标呈现器 接口可访问帧缓冲区111并使用包括该帧缓冲区的大小、色深、和从前一帧缓冲区开始已 被修改的区域在内的信息来确定在何处显示该鼠标。当本地用户站的用户在该站的桌面上 四处移动该鼠标光标时,该鼠标光标可取决于该光标正覆盖的UI元件来改变为不同的形 状。当这些光标改变发生时,该中心计算机系统可以改变该站的光标的形状。例如,当本地 用户站的用户在该站的桌面上四处移动该鼠标光标时,该鼠标光标可取决于该光标正覆盖 或正被之覆盖的Π 元件来从可见变为不可见。
[0039] 对定制呈现器站的分辨率和取向改变可由第三方做出。该第三方(诸如独立硬件 厂商)可提供被配置成改变分辨率和/或取向的软件应用。该应用可被运行以设置分辨率 和/或取向。在设置了分辨率和/或取向之后,该中心计算机系统501可被重启,使得被改 变了的该定制呈现器站将报告新设置的分辨率。
[0040] 定制呈现器插件接口 105的设计允许在同一中心计算机系统101/501上的多个实 现。定制呈现插件接口和相关联的定制呈现器站(530A-530H)的实现可通过用于来自不同 制造商的定制呈现器站的人工映射的直接视频连接站和接口在同一中心计算机系统上共 存。因为该接口的每个实现支持由该插件接口的实现方制造的特定USB集线器,所以这能 够发生。未声明的USB集线器可用于被人工映射至直接视频连接站。下面,分别针对图2 和图3的方法200和300进一步解释这些概念。
[0041] 考虑到以上描述的系统和体系结构,参考图2和图3的流程图将更好地领会根据 所公开的主题实现的方法。为了说明简明起见,这些方法被示出和描述为一系列框。然而, 应该理解和了解,所要求保护的主题不受框的次序的限制,因为一些框可按不同的次序进 行和/或与此处所描绘和描述的其他框同时进行。此外,并非全部所示的框都是实现下面 所述的方法所必需的。
[0042] 图2解说了用于提供对图形用户界面(⑶I)帧缓冲区的直接访问的方法200的流 程图。现在将频繁参考环境100的组件和数据来描述方法200。
[0043] 方法200包括向远程桌面客户端注册插件软件模块的动作,其中该注册包括请求 为了在计算机系统显示器上显示而渲染的一个或多个帧缓冲区(动作210)。例如,插件注 册模块115可向远程桌面客户端110注册插件软件模块105。该注册包括向远程桌面客户 端110发送请求已被渲染以用于在计算机监视器(诸如用户125的显示器(130))上显示 的帧缓冲区111的帧缓冲区请求116。所注册的插件软件模块可包括唯一持久标识符,诸如 ⑶ID 106。定制呈现器站的每个制造商可具有其自己的接口和其自己的处理和呈现帧缓冲 区的方式。相应地,每个制造商可向计算机系统101的远程桌面客户端110注册其插件。 [0044] 每个所注册的插件模块可定义其自己的显示器维度。相应地,一些制造商可指示 用于其监视器的显示器维度。这些显示器维度可由针对该制造商的插件软件模块105使 用。所述显示器维度包括定制呈现设备的屏幕区域的像素数,或简单地包括屏幕面积。该 插件软件模块还提供关于定制呈现器站的其他信息,包括该帧缓冲区的大小、针对该帧缓 冲区的色深信息、标识该帧缓冲区的从前一帧缓冲区起已经改变的区域的经修改区域或其 他信息。此附加数据可作为帧缓冲区111的一部分或附加于该帧缓冲区来提供。
[0045] 方法200进一步包括确定已在计算机系统用户和远程桌面客户端之间建立会话 的动作(动作220)。计算机系统101可确定在用户125和远程桌面客户端110之间已建 立会话112。该远程桌面会话可在计算机系统101 (本地计算机)上或在远程计算机系统 上运行。从而,术语"远程桌面客户端"是指与用户建立桌面会话的应用,而不管该计算机 系统是否实际上远离该用户。该会话验证该用户的身份,认证该用户并为该用户建立虚拟 化的桌面(即,远程桌面)。该远程桌面向用户提供其自己的桌面,该桌面具有其自己选择 的背景、图标、应用和其他设置。该用户具有对他们已创建或以其他方式具有权利的文件的 访问权。以此方式,一旦该用户已登出,则另一用户可登录到该同一计算机系统上,建立会 话,并具有其自己的桌面,该桌面不同于任何其他用户的桌面。此外,如下所述,计算机系统 101可同时与多个不同用户建立会话112,从而为每个用户提供定制桌面。
[0046] 方法200接下来包括接收该一个或多个所请求帧缓冲区的动作(动作230)。从 而,响应于帧缓冲区请求116,远程桌面客户端110可向该插件软件模块发送帧缓冲区111。 所述帧缓冲区随后可被发送至显示器130,其中所述帧缓冲区可向用户显示(动作240A)或 可被发送至第三方120(动作240B)以由该第三方处理。该第三方可在独立显示器上显示 所述帧缓冲区或对其执行其他类型的处理。通过向第三方或向显示器(130)发送所述帧缓 冲区,该软件插件模块105可发送针对特定监视器的帧缓冲区,所述帧缓冲区已经以由该 插件的创建者指定的方式被处理。
[0047] 在一些实施例中,如图4中所示,所注册的插件软件模块105可被细分为一个或多 个区域。每个区域表示用于本地用户站的一桌面。从而,显示器设备440可在同一屏幕上显 示两个用户桌面(441A和441B)。每个桌面有其自己的会话(例如,112)和其自己的定制 呈现器。该插件软件模块告知计算机系统401和显示器设备440在何处分割屏幕,以及每 个会话应当在何处显示。每个会话有其自己的分别由用户425A和鼠标443A以及用户425B 和鼠标443B控制的鼠标光标(用于桌面441A的442A、以及用于桌面441B的442B)。相应 地,两个用户可坐在同一监视器处并观看独立的桌面,该独立的桌面具有独立的文件、独立 的背景和独立的外围设备(即,鼠标和键盘)。鼠标光标可以是硬件生成的鼠标光标、软件 生成的鼠标光标、或这两者的组合。取决于光标正在覆盖哪个Π 元件或者被哪个Π 元件 覆盖,当用户移动鼠标光标时,该鼠标光标可从对该用户(例如,425A)可见变为不可见。
[0048] 在其中多个监视器或定制呈现器站(包括外围设备)连接至中心计算机系统 101/501的情形中,不同用户站可与包括USB集线器在内的多功能集线器相关联。当定制呈 现器站与USB集线器相关联时(当显示器530A和外围设备531A连接至集线器550A时), 该显示器将接收实例ID。该实例ID可被用来维护一个或多个计算机系统显示器和集线器 之间的映射。类似ID可与外围设备一起使用。如此,显示器和集线器之间的映射不需要在 每次重启时被重新执行。该中心计算机系统还针对每个USB设备确定该USB设备是否与插 件软件模块相关联。如果是,则该USB设备(例如,图4的鼠标443A)与该插件软件模块相 关联并被提供实例ID。以此方式,许多不同显示器和外围设备可连接至中心计算机系统,而 许多不同用户可使用单个计算机系统登录并创建桌面会话。
[0049] 图3解说了用于将输入硬件与登录会话相关联的方法300的流程图。现在将频繁 地分别参照图1和图5的环境100和500的组件和数据来描述方法300。
[0050] 方法300包括确定哪些显示器设备连接至该计算机系统的动作(动作310)。例如, 计算机系统501可确定哪些集线器(例如,550A-550H)和/或哪些显示器设备(530A-530H) 连接至该计算机系统(直接地或通过中心集线器555)。每个连接的显示器设备随后被枚举 (动作320)。枚举显示器设备可包括定义设备类并搜索该类中的设备。例如,该设备类可 包括大于24"的所有显示器,或由指定制造商制造的所有显示器,或具有HDMI端口的所有 显示器,或某种其他特性或分组。枚举还可包括指定每个设备的全局唯一标识符(GUID)。
[0051] 方法300随后包括为每个所枚举的显示器设备创建定制会话的动作(动作330)。 创建定制会话包括向在该计算机系统上运行的远程桌面客户端注册插件软件模块的动作 (动作330A)(即,向远程桌面客户端110注册插件软件模块105),请求为在所枚举的显示 器设备中的至少一个上显示而渲染的一个或多个帧缓冲区的动作(动作330B)以及接收该 一个或多个所请求的帧缓冲区的动作(动作330C)。从而,帧缓冲区请求116可被从插件注 册模块115向该远程桌面客户端发送,作为响应,该远程桌面客户端发送帧缓冲区111。所 述帧缓冲区还可包括鼠标数据,该鼠标数据本身包括光标形状和光标位置信息。
[0052] 方法300接下来包括在所枚举的显示器设备上显示帧缓冲区的动作(动作330C1) 和/或向一个或多个所注册第三方发送所接收的帧缓冲区的动作(动作330C2)。该帧缓冲 区从而可由显示器130显示和/或被传输至第三方120。该第三方可按任何数量的方式来 处理所述帧缓冲区,包括压缩该帧缓冲区以及将其传输至另一计算机系统或计算机系统显 示器。
[0053] 在一些实施例中,在该显示器设备上显示帧缓冲区可包括检测该屏幕的哪些区域 正在播放视频以及针对该数据发起独立数据流。例如,如果用户正在观看h. 264编码的 视频,可通知该插件软件模块两个不同的数据流将进入,并且应当被不同地处理一一针对 h. 264视频的一个数据流以及针对该桌面的其他部分的一个数据流。可使用计算机系统硬 件来解码此h. 264视频流。以此方式,可与正常内容分开地处理视频流,并且可向视频流提 供硬件解码或改进终端用户体验的其他特性。
[0054] 相应地,提供了提供对图形用户界面(GUI)帧缓冲区的直接访问的方法、系统和 计算机程序产品。而且,提供了将输入硬件与登录会话相关联并且允许多个用户同时进行 远程桌面会话的方法、系统和计算机程序产品。
[0055] 此处描述的概念和特征能以其他具体形式来实现,而不背离本发明的精神或描述 特征。所描述的实施例在所有方面都应被认为仅是说明性而非限制性的。因此,本公开的 范围由所附权利要求书而非前述描述指示。落入权利要求书的等效方案的含义和范围内的 所有改变应被权利要求书的范围所涵盖。
【权利要求】
1. 一种计算机系统,包括w下: 一个或多个处理器; 系统存储器; 其上存储有计算机可执行指令的一个或多个计算机可读存储介质,所述计算机可执行 指令在由所述一个或多个处理器执行时使得所述计算系统执行一种用于提供对图形用户 界面(GUI)帖缓冲区的直接访问的方法,所述方法包括: 向远程桌面客户端注册插件软件模块的动作,其中所述注册包括请求为在计算机系统 显示器上显示而擅染的一个或多个帖缓冲区; 确定已在计算机系统用户和所述远程桌面客户端之间建立会话的动作; 接收一个或多个所请求的帖缓冲区的动作;W及 执行W下至少一个: 在所述计算机系统显示器上显示所述帖缓冲区的动作;W及 向一个或多个已注册第=方发送所接收的帖缓冲区的动作。
2. 如权利要求1所述的计算机系统,其特征在于,接收所请求的所述帖缓冲区的所述 已注册第=方在独立的计算机系统显示器上显示所述帖缓冲区。
3. 如权利要求1所述的计算机系统,其特征在于,已注册的插件软件模块包括唯一持 久标识符。
4. 如权利要求1所述的计算机系统,其特征在于,还包括定义用于已注册的插件软件 模块的显示器维度,其中所述显示器维度包括定制呈现设备的屏幕区域的像素数。
5. 如权利要求1所述的计算机系统,其特征在于,进一步包括将已注册的插件软件模 块细分为一个或多个区域的动作,其中每个区域表示用于一本地用户站的桌面。
6. 如权利要求5所述的计算机系统,其特征在于,进一步包括在所述计算机系统显示 器上呈现所述细分区域中的每一个。
7. -种计算机系统,包括W下: 一个或多个处理器; 系统存储器; 其上存储有计算机可执行指令的一个或多个计算机可读存储介质,所述计算机可执行 指令在由所述一个或多个处理器执行时使得所述计算系统执行一种用于将输入硬件与登 录会话相关联的方法,所述方法包括: 确定哪些显示器设备连接至所述计算机系统的动作; 枚举连接至所述计算机系统的每个显示器设备的动作; 为所枚举的每个显示器设备创建定制会话的动作,其中创建定制会话包括: 向所述计算机系统上运行的远程桌面客户端注册插件软件模块; 请求为在所枚举的显示器设备的至少一个上显示而擅染的一个或多个帖缓冲区;W及 接收一个或多个所请求的帖缓冲区;W及 执行W下至少一个: 在所枚举的显示器设备上显示所述帖缓冲区的动作;W及 向一个或多个已注册的第=方发送所接收的帖缓冲区的动作。
8. 如权利要求7所述的计算机系统,其特征在于,进一步包括将鼠标数据与所述帖缓 冲区包括在一起,其中所述鼠标数据包括光标形状和光标位置。
9. 如权利要求7所述的计算机系统,其特征在于,枚举每个显示器设备包括定义设备 类并捜索该类中的设备。
10. -种计算机系统,包括W下: 一个或多个处理器; 系统存储器; 其上存储有计算机可执行指令的一个或多个计算机可读存储介质,所述计算机可执行 指令在由所述一个或多个处理器执行时使得所述计算系统执行一种用于提供对图形用户 界面(GUI)帖缓冲区的直接访问的方法,所述方法包括: 向远程桌面客户端注册插件软件模块的动作,其中所述注册包括请求为在计算机系统 显示器上显示而擅染的一个或多个帖缓冲区; 确定已在计算机系统用户和所述远程桌面客户端之间建立会话的动作; 接收一个或多个所请求的帖缓冲区的动作; 将已注册的插件软件模块细分为一个或多个区域的动作,其中每个区域表示用于一本 地用户站的桌面;W及 在所述本地用户站的每一个上显示所述帖缓冲区的动作。
【文档编号】G06F3/14GK104471526SQ201380038065
【公开日】2015年3月25日 申请日期:2013年7月10日 优先权日:2012年7月16日
【发明者】D·J·瑟贝斯塔, R·C·埃尔莫, R·W·舒米德尔, M·T·咖恩斯, C·D·尼科尔森 申请人:微软公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1