User-mode based remote desktop protocol (RDP) encoding architecture
First Claim
1. A method for encoding graphics data in the user-mode address space of a computer, comprising:
- sending graphics data corresponding to a request from a client from a user application executing in user-mode session space to a display driver executing in kernel mode;
converting the graphics data by the display driver into at least one graphics command in a format understandable by a RDP encoder process, the at least one graphics command in a format understandable by the RDP encoder process comprising a protocol data unit (PDU);
marshaling the PDU;
sending the marshaled PDU across a graphics reflector, the graphics reflector comprising shared memory, from the display driver executing in kernel mode to the RDP encoder processes executing in user-mode system space;
unmarshaling the PDU;
compressing, by the RDP encoder process, the PDU; and
sending the compressed PDU from the RDP encoder processes to the client over a communications network.
3 Assignments
0 Petitions
Accused Products
Abstract
Techniques are disclosed for a user-mode based remote desktop protocol (RDP) encoding architecture. A user mode desktop application and user mode virtual channel application run in user-mode session space. Virtual channel data from the virtual channel application is marshaled and sent to a RDP encoder process in user-mode system space. There it is converted to RDP protocol data units (PDU) and sent to a remote client across a communications network. Graphics data from the desktop application is sent to a display driver in kernel-mode session space and then to a graphics reflector that marshals the graphics data and sends it to the RDP encoder for a similar transformation.
24 Citations
20 Claims
-
1. A method for encoding graphics data in the user-mode address space of a computer, comprising:
-
sending graphics data corresponding to a request from a client from a user application executing in user-mode session space to a display driver executing in kernel mode; converting the graphics data by the display driver into at least one graphics command in a format understandable by a RDP encoder process, the at least one graphics command in a format understandable by the RDP encoder process comprising a protocol data unit (PDU); marshaling the PDU; sending the marshaled PDU across a graphics reflector, the graphics reflector comprising shared memory, from the display driver executing in kernel mode to the RDP encoder processes executing in user-mode system space; unmarshaling the PDU; compressing, by the RDP encoder process, the PDU; and sending the compressed PDU from the RDP encoder processes to the client over a communications network. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)
-
-
13. A system for encoding graphics data in the user-mode address space of a computer, comprising:
-
a processor; and a memory communicatively coupled to the processor when the system is operational, the memory bearing processor-executable instructions that, when executed on the processor, cause the system to at least; send graphics data corresponding to a request from a client from a user application executing in user-mode session space to a display driver executing in kernel mode; convert the graphics data by the display driver into at least one graphics command in a format understandable by a RDP encoder process, the at least one graphics command in a format understandable by the RDP encoder process comprising a protocol data unit (PDU); marshal the PDU; send the marshaled PDU across a graphics reflector, the graphics reflector comprising shared memory, from the display driver executing in kernel mode to the RDP encoder processes executing in user-mode system space; unmarshal the PDU; compress, by the RDP encoder process, the PDU; and send the compressed PDU from the RDP encoder processes to the client over a communications network. - View Dependent Claims (14, 15, 16, 17, 18)
-
-
19. A tangible computer-readable storage medium, bearing computer-readable instructions for encoding graphics data in the user-mode address space of a computer, that upon execution by a computer, cause the computer to perform comprising:
-
sending graphics data corresponding to a request from a client from a user application executing in user-mode session space to a display driver executing in kernel mode; converting the graphics data by the display driver into at least one graphics command in a format understandable by a RDP encoder process, the at least one graphics command in a format understandable by the RDP encoder process comprising a protocol data unit (PDU); marshaling the PDU; sending the marshaled PDU across a graphics reflector, the graphics reflector comprising shared memory, from the display driver executing in kernel mode to the RDP encoder processes executing in user-mode system space; unmarshaling the PDU; compressing, by the RDP encoder process, each PDU; sending the compressed PDU from the RDP encoder processes to the client over a communications network; marshaling virtual channel data corresponding to a request from the client from a virtual channel application executing in user-mode session space; sending the marshaled virtual channel data to the RDP encoder process across a virtual channel reflector, the virtual channel reflector comprising a named pipe; unmarshaling the virtual channel data; converting the virtual channel data into at least one virtual channel RDP PDU; compressing each virtual channel RDP PDU; and sending each compressed virtual channel RDP PDU from the RDP encoder processes to the client over a communications network. - View Dependent Claims (20)
-
Specification