Implement a RemoteFX Display Driver (Compact 7)
3/12/2014
Display drivers connect the Windows Embedded Compact 7 (Compact 7) operating system to the display hardware. These drivers, which OEMs create and load on their devices, are directly called by Graphics, Windowing and Events (GWES).
When you develop a RemoteFX-enabled driver, the RDC client, which is a component on your device that receives RemoteFX packets from the server, needs to communicate directly with your display driver in order to access the capabilities of the decoding and display hardware. This feature requires OEMs to create drivers for interacting with their hardware.
RemoteFX uses a set of escape sequences together with the DrvEscape function to enable the RDC client to communicate directly with the display driver and to offload the data to specialized coprocessor hardware, such as an ASIC or DSP.
The RDC client interacts with a display driver via a set of well-defined interfaces that use GDI escape sequences. You need to use the GDI escape sequence interface to implement your thin client device RemoteFX display driver. In addition to supporting the typical graphics-rendering operations, the display driver must support the applicable RemoteFX escape sequences shown the following table.
The RDC client invokes the Compact 7 ExtEscape function to pass an escape sequence and RemoteFX-encoded data stream to a RemoteFX-enabled display driver. ExtEscape, in turn, passes those parameters to the display driver's DrvEscape function. DrvEscape processes the escape code and returns a value to ExtEscape, which then returns the value to the application.
The escape sequences that you use in your driver depend on the display mode that you choose for your device. For more information about choosing a display mode, see Design a Display Driver.
Some escape sequences are used by both display modes. Others apply to just one display mode. The following table includes a Display mode column that shows you the escape sequences that are required by each display. When an escape sequence is required by both types of display modes, the column indicates Both.
Escape Sequence | Value | Display mode | Description |
---|---|---|---|
QUERYESCSUPPORT |
QUERYESCSUPPORT (8) |
Both |
Queries whether the driver supports a particular escape function. QUERYESCSUPPORT is the only predefined value. |
ESCAPE_GET_CAPABILITIES |
0x20103 (131331) |
Both |
Allows the codec library in the RDC client to query the hardware capabilities (for example, the supported tile size) of the display driver. |
ESCAPE_DEC3 |
0x20101 (131329) |
Both |
Allows the codec library to decode compressed data into the video memory buffer and optionally, to transfer decoded data back to system memory. |
ESCAPE_COPY_2BMP |
0x20102 (131330) |
Window-frame only |
Allows the codec library to copy decoded data directly to the shadow bitmap. |
ESCAPE_EXIT_CA |
0x20199 (131481) |
Full-screen only |
When full-screen mode is enabled and the RemoteFX session ends, the RDC client sends the ESCAPE_EXIT_CA escape sequence to the display driver. The display driver uses this notification to change back to non-RemoteFX display mode. |