基于用户模式的远程桌面协议(rdp)编码体系结构的制作方法

文档序号:7737843阅读:412来源:国知局
专利名称:基于用户模式的远程桌面协议(rdp)编码体系结构的制作方法
基于用户模式的远程桌面协议(RDP)编码体系结构
背景技术
视窗(Windows)家族中的某些操作系统提供一些工具,用户可以通过这些工具与属于在另一计算机上运行的应用程序的用户接口远程交互。这些工具被称为远程桌面或终端服务。这种工具的示例是WINDOWS TERMINAL SERVER 或远程桌面协议(RDP)设备。由于负责RDP协议编码的代码由一组内核模式驱动器实现这一事实,这些工具具有缺点。通常使用这些内核模式驱动器是因为这种驱动器能够轻易地访问编码到协议中的数据。然而, 这些驱动器难于维护,并且在功能上很难开发、维护或扩展。为此,如果可以在用户模式进程中实现这些工具,则这些限制可以得到降低。

发明内容
本发明的实施例包括基于用户模式的远程桌面协议(RDP)编码体系结构。在该实施例中,可以从会话空间进程提取数据并将数据编组(marshal)到系统空间用户模式进程以便进行编码。在该实施例中,进程在用户模式会话空间、内核模式会话空间和用户模式系统空间中的每一个中执行。将来自在用户模式会话空间中操作的用户模式桌面应用程序的图形数据通过在内核模式会话空间中操作的显示驱动器而发送。该驱动器将图形数据发送到内核模式会话空间中的图形反射器(reflector),该图形反射器编组该数据并将其发送到用户模式系统空间中的RDP编码器进程。类似地,将来自在用户模式会话空间中操作的用户模式虚拟通道应用程序的虚拟通道数据通过用户模式会话空间中的虚拟通道反射器而发送,该虚拟通道反射器编组该数据并将经编组的虚拟通道数据发送到RDP编码器进程。RDP编码器进程取得此二类数据,将其编码成RDP协议数据单元(PDU),并将这些单元发送到具有与执行该技术的计算机进行相应RDP会话的客户机。该解决方案提供将来自会话空间的图形数据接口(GDI)和虚拟通道数据编组到在系统空间中用户模式上下文中运行的进程的机制和体系结构。这允许终端服务实现,其中协议编码在单个、机器范围、用户模式组件中实现。这些技术可以应用于在单个操作系统(OS)上运行的会话、或应用于在具有主机 OS的主机上由客机OS主宿的虚拟机(VM)内的客机OS上运行的会话。在后一实施例的情况下,这些技术可以应用于多个这种客机OS。在一实施例中,通过低开销共享存储器机构编组图形数据,并且通过指定(named) 管道编组虚拟通道数据。可以使用指定管道以便保留用于任何现有终端服务器虚拟通道应用编程接口(API)的语义,而可以使用通常更快的共享存储器机构,在此共享存储器机构中这些指定管道没有必要保留这些语义。以上技术允许通过不取决于设备驱动器接口或会话应用线程的单个用户模式系统空间进程(RDP编码器进程)来控制图形和数据输出。即,用于实现这些技术的线程数可以是已知的,并限制、保持在性能优化的数量。
公开了执行以上和类似进程的系统、方法和计算机可读存储介质。本领域技术人员会意识到,本公开的一个或多个方面可包括但不限于用于实现本公开的本文所述方面的电路和/或编程;该电路和/或编程实质上可以是配置成实现本文所述方面的硬件、软件和/或固件的任何组合,这取决于系统设计者的设计选择。以上是概述,并且因此必然包含细节的简化、一般化及省略。本领域技术人员将明白,本概述只是说明性的并且决不旨在是限制性的。


图1示出其中可实现本发明的各方面的示例计算机系统。图2示出基于内核模式的终端服务体系结构的示例。图3示出基于用户模式的终端服务体系结构的示例。图3A示出基于用户模式的终端服务体系结构的另一示例。
具体实施例方式本公开的实施例可以在一个或更多计算机上执行。图1和以下讨论旨在提供其中可以实现本发明的适当计算环境的简要描述。本领域技术人员可以理解,图1计算机系统组件的某些或全部可以用于实现图2、3和3A的计算机。本公开中使用的术语“电路”可以包括专用硬件组件,诸如硬件中断控制器、硬驱动、网络适配器、图形处理器和音频编解码器。在相同实施例或其他实施例中,电路可包括配置成通过固件或设定开关执行功能的微处理器。在相同或其他示例性实施例中,电路可以包括一个或多个逻辑处理器,例如多核通用处理单元的一个或多个核。本示例中的逻辑处理器可以由从例如RAM、ROM、固件和/或虚拟存储器之类的存储器加载的软件指令来配置,软件指令体现为可用于执行功能的逻辑。在电路包括硬件和软件的组合的示例性实施例中,实现者可以编写体现为逻辑的源代码,该源代码随后被编译成可由逻辑处理器执行的机器可读代码。因为本领域技术人员可以明白现有技术已经进化到硬件、软件或硬件/ 软件组合之间几乎没有差别的地步,因而选择硬件或是软件来实现具体功能是留给实现者的设计选择。更具体而言,本领域技术人员可以明白软件进程可被变换成等价的硬件结构, 而硬件结构本身可被变换成等价的软件进程。因此,是硬件实现还是软件实现的选择是设计选择之一并留给实现者。现在参考图1,示出了示例性通用计算机系统。通用计算系统可包括常规的计算机20或类似设备,它包括可以包含一个或多个逻辑处理器的通用处理单元21、系统存储器 22和将包括系统存储器在内的各种系统组件耦合到处理单元21的系统总线23。系统总线 23可以是几种类型的总线结构中的任何一种,包括存储器总线或存储控制器、外围总线、以及使用各种总线体系结构中的任一种的局部总线。系统存储器包括只读存储器(ROM)M和随机存取存储器(RAM) 25。基本输入/输出系统沈¢10 被存储在ROM M中,包含了诸如在启动期间帮助在计算机20内的元件之间转移信息的基本例程。计算机20还可以包括用于读写硬盘(未示出)的硬盘驱动器27、用于读写可移动磁盘四的磁盘驱动器28,以及用于读写诸如CD ROM或其他光学介质之类的可移动光盘31的光盘驱动器30。在一些示例性实施例中,实施本公开各方面的计算机可执行指令可以存储在ROM 24、硬盘(未示出)、RAM25、可移动磁盘四、光盘31和/或通用处理单元21的高速缓存中。硬盘驱动器27、磁盘驱动器28,以及光驱动器30分别通过硬盘驱动器接口 32、磁盘驱动器接口 33,以及光驱动器接口 34连接到系统总线23。驱动器以及它们相关联的计算机可读介质为计算机20提供了对计算机可读指令、数据结构、程序模块,及其他数据的非易失性存储。虽然本文描述的示例性环境采用硬盘、可移动磁盘四和可移动光盘31,但本领域技术人员应当理解,在该示例性操作环境中也能使用可存储能由计算机访问的数据的其它类型计算机可读介质,如盒式磁带、闪存卡、数字视频盘、柏努利(Bernoulli)盒式磁带、随机存取存储器(RAM)、只读存储器(ROM)等。可以有若干个程序模块存储在硬盘、磁盘四、光盘31、ROM 24、或RAM 25上,包括操作系统35、一个或多个应用程序36、其他程序模块37、以及程序数据38。用户可以通过诸如键盘40和定点设备42之类的输入设备向计算机20中输入命令和信息。其他输入设备(未示出)可以包括麦克风、游戏杆、游戏手柄、圆盘式卫星天线、扫描仪等等。这些和其它输入设备常通过耦合到系统总线的串行端口接口 46连接到通用处理单元21,但也可通过其它接口连接,诸如并行端口、游戏端口或通用串行总线(USB)。显示器47或其他类型的显示设备也可以通过诸如视频适配器48之类的接口连接到系统总线23。除了显示器47 之外,计算机通常还包括其他外围输出设备(未示出),如扬声器和打印机。图1的示例性系统也包括主机适配器55、小型计算机系统接口(SCSI)总线56,以及连接到SCSI总线56 的外部存储设备62。计算机20可以使用到诸如远程计算机49之类的一个或多个远程计算机的逻辑连接在联网环境中操作。远程计算机49可以是另一计算机、服务器、路由器、网络PC、对等设备或其他公共网络节点,并且通常可包括上文参考计算机20所描述的许多或全部元件,但是在图1中只示出了存储设备50。图1中所描绘的逻辑连接可包括局域网(LAN)51和广域网(WAN)52。这样的联网环境在办公室、企业范围的计算机网络、内联网和因特网中是普遍现象。当在LAN网络环境中使用时,计算机20可通过网络接口或适配器53连接到LAN 51。当在WAN网络环境中使用时,计算机20通常可包括调制解调器M,或用于通过广域网 52 (如通过因特网)建立通信的其他装置。可以是内置或外置的调制解调器M可通过串行端口接口 46连接到系统总线23。在联网环境中,相对于计算机20所描述的程序模块或其部分可被存储在远程存储器存储设备中。可以理解,所示的网络连接是示例性的,且可以使用在计算机之间建立通信链路的其他手段。此外,尽管可以预想本发明的很多实施例特别适合于计算机化系统,但是本文中没有任何表述旨在将本公开限制于这样的实施例。上述详细描述通过示例和/或操作图阐明了系统和/或进程的各种实施例。就这些框图和/或示例包含一个或多个功能和/或操作而言,本领域技术人员将理解,这些框图或示例中的每一功能和/或操作都可由各种各样的硬件、软件、固件、或实际上其任意组合来单独地和/或共同地实现。虽然已示出和描述了本文中描述的主题内容的特定方面,但是本领域技术人员将明白,基于本文中的教导,可作出改变和修改而不脱离本文中描述的主题内容,并且其更广泛的诸方面以及因此所附权利要求旨在涵盖落在本文中描述的主题内容的真实精神和范围内的所有此类改变和修改。
图2示出基于内核模式的终端服务体系结构的示例。在这些实施例中,进程可以在用户模式会话空间、内核模式会话空间和内核模式系统空间中的每一个中执行。内核模式空间通常是为运行内核、内核扩展和某些设备驱动器而保留的存储器空间。用户模式空间通常是其中执行所有用户模式应用程序的存储器。 会话空间是为特定用户会话保留的存储器空间。系统空间是在系统操作时为系统保留的存储器。内核模式和用户模式空间可以与会话或系统空间组合以提供上述空间,诸如用户模式系统空间。其它实施例可以利用用户模式系统空间。用户模式会话空间202中的应用程序(诸如文字处理器或web浏览器)首先生成图形数据。在应用程序202是文字处理器的情况下,该图形数据可以是以特定排列(诸如在正被编辑的文档页上居中并被加粗)在屏幕上显示的文本或图像。然后,根据设备驱动器接口(DDI) 206将该图形数据发送到设备驱动器204用于处理。驱动器204和DDI 206 存在于内核模式会话空间中。设备驱动器是允许诸如文字处理器之类的高级计算机程序与诸如计算机打印机或计算机监视器之类的硬件设备通信的组件或计算机程序。驱动器204 通常通过与硬件物理连接的计算机通信子系统与关联硬件通信。相应DDI 206采用该驱动器专用的应用编程接口(API)的形式。程序202根据DDI 206进行调用,该调用由DDI 206 和驱动器204翻译成相应硬件理解的通信。当从硬件收到对程序202的通信时,DDI 206和驱动器204进行类似转换。在实施例中,DDI 204可以包括图形设备接口(⑶I),即表示图形对象并将它们发送到监视器和打印机之类的输出设备的MICROSOFT WINDOWS 的API。⑶I执行诸如画线和画曲线、呈现字体以及处理调色板之类的任务。在其他实施例中,DDI 204可以包括支持 DirectX(DX)或桌面视窗管理器(DWM)的接口。在其中经由远程桌面协议(RDP)跨通信网络发送图形数据的实施例中,驱动器 204部分地将所接收的数据编码成至少一个RDP图形协议数据单元(PDU)。RDP PDU是在 RDP协议中规定的单元。然后,驱动器204将每个RDP PDU发送到实现余下编码的系统空间内核模式驱动器208。该系统空间内核模式驱动器208存在于内核模式系统空间中。编码可以包括压缩和加密两者。在系统空间内核模式驱动器208编码PDU之后,它将PDU发送到低级内核传送驱动器210。该内核传送驱动器210存在于内核模式系统空间中。内核传送驱动器210将PDU发送到PDU的预期接收方212。例如,在客户机212上的用户与当前机器进行RDP会话的情况下,内核传送驱动器210根据RDP跨通信网络将PDU发送到客户机 212。与用户模式桌面应用程序202类似,用户模式虚拟通道应用程序214可以存在于用户模式会话空间中。例如,虚拟通道应用程序214可以是远程剪切板,其中在与当前机器 200通信的远程客户机212上的用户可以将在相同会话中运行的另一应用程序(诸如桌面应用程序20 上的文本或图像复制到远程剪切板,然后将所复制的数据粘贴到另一文档。 该虚拟通道数据直接通过存在于内核模式会话空间中的文件输入/输出(I/O)子系统驱动器216发送。与设备驱动器204如何将其所接收数据处理成至少一个RDPPDU相类似,I/O 子系统216可以向所接收的虚拟通道数据施加成帧、压缩和加密以产生至少一个RDP PDU, 并且将每个PDU发送到子系统空间RDP内核模式驱动器208。RDP内核模式驱动器208将每个PDU发送到系统空间内核模式传送驱动器210,后者将PDU发送到PDU的预期接收方212。图2的该系统允许数据通过堆栈而无需任何显式编组。这产生不需要复杂数据处理和编组的基于简单内核模式的RDP编码体系结构。该体系结构被限制为编码代码在内核模式中运行。图3示出与图2形成对比、基于用户模式的终端服务体系结构示例的对比系统。在该实施例中,用户模式桌面应用程序302和用户模式虚拟通道应用程序320存在于用户模式会话空间中。用户模式桌面应用程序302(诸如文字处理器或web浏览器)首先生成图形数据。在应用程序302是文字处理器的情况下,该图形数据可以是以特定排列(诸如在正被编辑的文档页上居中并被加粗)在屏幕上显示的文本或图像。然后,根据设备驱动器接口 (DDI) 306将该图形数据发送到设备驱动器304用于处理。驱动器304和DDI 306存在于内核模式会话空间中。设备驱动器是允许诸如文字处理器之类的高级计算机程序与诸如计算机打印机或计算机监视器之类的硬件设备通信的组件或计算机程序。驱动器304通常通过与硬件物理连接的计算机通信子系统与关联硬件通信。相应DDI 306采用针对驱动器的应用编程接口(API)的形式。程序302根据DDI 306进行调用,该调用由DDI 306和驱动器304翻译成相应硬件理解的通信。当从硬件收到对程序302的通信时,DDI 306和驱动器304进行类似转换。在实施例中,DDI 304可以包括图形设备接口(⑶I),即表示图形对象并将它们发送到监视器和打印机之类的输出设备的MICROSOFT WINDOWS 的API。⑶I执行诸如画线和画曲线、呈现字体以及处理调色板之类的任务。在其中经由远程桌面协议(RDP)跨通信网络发送图形数据的实施例中,驱动器 304部分地将所接收的数据编码成能够被RDP编码器进程理解的至少一个命令。驱动器306 将每个命令发送到存在于内核模式会话空间中的共享存储器图形反射器308。共享存储器图形反射器308包括可以由多个程序同时访问以便在它们之间提供通信的存储器。该共享存储器图形反射器308编组所有接收到的数据并将其发送到用户模式系统空间中的图形反射器310。反射器确保在用户会话空间与系统空间之间互换数据的通常复杂的任务以高效的方式进行。编组是将对象的存储器表示转换成适合存储或传输的数据格式的进程,并且通常在必需在计算机程序的不同部分之间或者从一个程序向另一个程序移动数据时使用。相反的操作被称为“逆编组”。两个反射器308、310基于在内核模式会话空间驱动器(共享存储器图形反射器 310)和用户模式系统空间进程(图形反射器310)之间映射的共享存储器来通信。在一实施例中,图形反射器310连同RDP输出调度器和编码器314以及用户模式传送316 —起是RDP编码器进程312的一部分。RDP编码器进程312存在于用户模式系统空间中。图形反射器310取得所接收的图形数据并将其发送到RDP输出调度器和编码器 314。如图2所示,内核模式体系结构使用产生RDP数据的应用程序的实际线程来编码该数据并跨网络发送该数据。在大多数情形中,在编码数据时阻挡这些应用程序。在如图3所示的用户模式体系结构中,编码由RDP输出调度器和编码器组件314来执行。输出调度器组件314负责消耗虚拟通道数据和图形编组数据并将该数据在其自身的一组线程上编码成RDP格式。该体系结构允许对机器上出现的每个RDP会话的编码由单个组件在有限和最佳的一组线程上执行。当RDP输出调度器和编码器314已经将所接收的图形数据编码成至少一个RDP PDU时,它将每个PDU发送到用户模式传送316。用户模式传送316将PDU发送到PDU的预期接收方318。例如,在客户机318上的用户与当前机器进行RDP会话时,用户模式传送316 根据RDP跨通信网络地将PDU发送到客户机318。与用户模式桌面应用程序302类似,用户模式虚拟通道应用程序320可以存在于用户模式会话空间中。例如,虚拟通道应用程序320可以是远程剪切板,其中在与当前机器 300通信的远程客户机318上的用户可以将在相同会话中运行的另一应用程序(诸如桌面应用程序30 上的文本或图像复制到远程剪切板,然后将所复制的数据粘贴到另一文档。 将该虚拟通道数据从用户模式虚拟通道应用程序320通过虚拟通道反射器322发送到RDP 输出调度器和编码器314。虚拟通道反射器322编组所接收的虚拟通道数据并将相应的所编组虚拟通道数据发送到RDP输出调度器和编码器314。在一实施例中,虚拟通道反射器322使用指定管道和指定管道句柄。可以对进程间通信使用指定管道,例如由虚拟通道反射器322来完成。指定管道是对多个进程提供系统持久进程间通信(IPC)通道以彼此通信并且通常对进程呈现为文件的API。进程通常附加到指定管道上以执行与另一进程的进程间通信。在一实施例中,指定管道存储并取得存储器中的数据,而且在需要时对数据进行检索(retrieve)。指定管道句柄是对指定管道的句柄。通过使用指定管道句柄,通道句柄上的I/O操作可以与诸如WINDOWS TERMINAL SERVER API之类的预先存在的终端服务器API兼容。这对提供与基于虚拟通道的当前应用程序的兼容性至关重要。如果虚拟通道反射器322未使用指定管道,则基于虚拟通道的当前应用程序通过虚拟通道反射器322呈现为不可操作。与RDP输出调度器和编码器314如何将从图形反射器310接收的图形数据编码成至少一个RDP PDU类似,RDP输出调度器和编码器314将从虚拟通道反射器322接收的虚拟通道数据编码成至少一个RDP PDU0然后,RDP输出调度器和编码器314将每个PDU发送到用户模式传送316,后者将PDU发送到PDU的预期接收方318。图3A示出图3系统的实现,其中图形和虚拟通道数据由在该系统上运行的虚拟机 (VM)产生。通过反射器308a、310a、32^i从在VM 3 上运行的客机中运行的用户会话收集数据,并将其发送到在机器300a上的主机OS中运行的RDP编码器进程31 用于编码。在该实施例中,主机OS编码器进程31 可以编码从多个VM到达的数据。在该实施例中,反射器组件308a、310a、32^i的实现基于主机-客机数据交换专用的机制。图形反射器308a、310a 可以使用在客机和主机之间共享的存储器,而VC反射器可以利用VM总线(VMBUS) 322a。在该实施例中,用户模式桌面应用程序30 和用户模式虚拟通道应用程序320a在客机OS用户模式会话空间326a中执行。设备驱动器接口 306a和用户会话DRP内核模式显示驱动器 304a在客机OS内核模式会话空间326b中执行。此外,RDP编码器进程31 在主机OS用户模式系统空间32 中执行。为了清晰和简洁,有必要将某些组件从以上附图中省略。例如,在图2和图3、3A的实现之间,传输控制协议(TCP)或传送接听者(listener)可以不同。在图2的内核模式体系结构中的TCP接听者使用内核模式接听者,而图3和3A的TCP接听者使用基于用户模式的接听者。用于处理输入入射组件中可以采用类似方法。本领域技术人员会明白图2和图3、3A的实现之间的其它辅助性不同。
权利要求
1.一种用于在计算机的用户模式地址空间中编码图形数据的方法,包括将与来自客户机的请求相对应的图形数据从在用户模式会话空间(3Ma)中执行的用户应用程序发送到在内核模式(3Mb)中执行的显示驱动器;将所述图形数据发送到在用户模式系统空间(3Mc)中执行的远程桌面协议(RDP)编码器进程(312);以及将所述图形数据从所述RDP编码器进程(31 通过通信网络发送到所述客户机 (318a)。
2.如权利要求1所述的方法,其特征在于,所述图形数据经由共享存储器机构发送到所述RDP编码器进程。
3.如权利要求2所述的方法,还包括在将所述图形数据发送到所述RDP编码器进程之前编组所述图形数据。
4.如权利要求1所述的方法,其特征在于,所述用户应用程序在计算机虚拟机(VM)上执行的客机操作系统(OS)的用户模式会话空间中执行,并且所述显示驱动器在所述客机 OS的内核模式会话空间中执行。
5.如权利要求1所述的方法,其特征在于,所述显示驱动器在内核模式会话空间中执行。
6.如权利要求1所述的方法,其特征在于,所述图形数据包括图形设备接口(GDI)格式、桌面视窗管理器(DWM)格式或DirectX(DX)格式的数据。
7.如权利要求1所述的方法,其特征在于,还包括将与来自所述客户机的请求相对应的虚拟通道数据从在用户模式会话空间中执行的虚拟通道应用程序发送到所述RDP编码器进程;以及将所述虚拟通道数据从所述RDP编码器进程通过通信网络发送到所述客户机。
8.如权利要求7所述的方法,其特征在于,所述虚拟通道数据经由指定管道发送到所述RDP编码器进程。
9.如权利要求8所述的方法,还包括在将所述虚拟通道数据发送到所述RDP编码器进程之前编组所述虚拟通道数据。
10.如权利要求7所述的方法,其特征在于,所虚拟通道数据对应于所述图形数据。
11.如权利要求1所述的方法,其特征在于,所述RDP编码器进程在所述图形数据上执行一组动作中的至少一个,所述组包括使所述图形数据成帧、压缩所述图形数据、以及加密所述图形数据。
12.如权利要求1所述的方法,其特征在于,还包括在将所述图形数据发送到所述RDP编码器进程之前,由所述显示驱动器将所述图形数据编码成能够由所述RDP编码器进程理解的至少一个命令。
13.一种用于在计算机的用户模式地址空间中编码图形数据的系统,包括处理器;在内核模式空间(3 )中执行的显示驱动器,被配置成从在用户模式会话空间 (326a)中执行的用户应用程序(302a)接收图形数据;在用户模式系统空间(3Mc)中执行的远程桌面协议(RDP)编码器(31 ),被配置成从所述显示驱动器接收所述图形数据、编码所述图形数据、并且跨通信网络将所编码的图形数据发送到与所述图形数据对应的客户机(318a)。
14.如权利要求13所述的系统,其特征在于,所述RDP编码器还被配置成从在用户模式会话空间中执行的虚拟通道应用程序接收虚拟通道数据,编码所述虚拟通道数据,并跨所述通信网络将所编码的虚拟通道数据发送到所述客户机。
15.如权利要求14所述的系统,其特征在于,所述RDP编码器还被配置成 跨虚拟通道反射器接收所述虚拟通道数据,所述虚拟通道反射器包括指定管道。
16.如权利要求13所述的系统,其特征在于,所述RDP编码器还被配置成 跨图形反射器接收所述图形数据,所述图形反射器包括共享存储器。
17.如权利要求13所述的系统,其特征在于,所述用户应用程序在所述计算机的虚拟机(VM)上执行的客机操作系统(OS)的用户模式会话空间中执行,并且所述显示驱动器在所述客机OS的内核模式会话空间中执行。
18.如权利要求13所述的系统,其特征在于,所编码的图形数据包括远程桌面协议 (RDP)格式的图形数据。
19.一种包括用于在计算机的用户模式地址空间中编码图形数据的计算机可读指令的计算机可读存储介质,当在处理器上执行时,所述计算机可读指令执行包括以下的操作将与来自客户机(318a)的请求对应的图形数据从在用户模式会话空间(3 ^)中执行的用户应用程序发送到在内核模式(3 )中执行的显示驱动器;由所述显示驱动器将所述图形数据转换成采用能够由RDP编码器进程理解的格式的至少一个图形命令; 编组每个PDU ;跨图形反射器将每个经编组的PDU发送到在用户模式系统空间中执行的所述RDP编码器进程,所述图形反射器包括共享存储器; 逆编组每个PDU ;由所述RDP编码器进程压缩每个PDU ;将每个经压缩的PDU从所述RDP编码器进程(312a)通过通信网络发送到所述客户机 (318a)。将来自在用户模式会话空间(3 ^)中执行的虚拟通道应用程序(320a)的与所述来自客户机的请求相对应的虚拟通道数据进行编组;跨虚拟通道反射器将经编组的虚拟通道数据发送到所述RDP编码器进程(31 ),所述虚拟通道反射器包括指定管道; 逆编组所述虚拟通道数据;将所述虚拟通道数据转换成至少一个虚拟通道RDP PDU ; 压缩每个虚拟通道RDP PDU ;以及将每个经压缩的虚拟通道RDP PDU从所述RDP编码器进程通过通信网络发送到所述客户机(318a)。
20.如权利要求19所述的方法,其特征在于,所述用户应用程序在所述计算机的虚拟机(VM)上执行的客机操作系统(OS)的用户模式会话空间中执行,并且所述显示驱动器在所述客机OS的内核模式会话空间中执行。
全文摘要
公开了用于基于用户模式的远程桌面协议(RDP)编码体系结构。用户模式桌面应用程序和用户模式虚拟通道应用程序在用户模式会话空间中运行。来自虚拟通道应用程序的虚拟通道数据被编组并被发送到用户模式系统空间中的RDP编码器进程。它被转换成RDP协议数据单元(PDU)并被跨通信网络发送到远程客户机。将来自桌面应用程序的图形数据发送到内核模式会话空间中的显示驱动器,然后发送到图形反射器,图形反射器编组图形数据并将其发送到RDP编码器用于类似的转换。
文档编号H04L29/06GK102246154SQ200980150145
公开日2011年11月16日 申请日期2009年11月11日 优先权日2008年12月9日
发明者A·M·图勒巴, C·哈古, G·斯瓦米纳坦, N·K·斯里尼瓦斯, N·Y·阿布多, S·R·尼如杜, V·K·斯托亚诺夫, W·R·舒米德尔 申请人:微软公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1