Programming guide
Virtual channels are referred to by a seven-character (or shorter) ASCII name. In several previous versions of the ICA protocol, virtual channels were numbered; the numbers are now assigned dynamically based on the ASCII name, making implementation easier.
When developing virtual channel code for internal use only, you can use any seven-character name that does not conflict with existing virtual channels. Use only upper and lowercase ASCII letters and numbers. Follow the existing naming convention when adding your own virtual channels. The predefined channels, which begin with the OEM identifier CTX, are for use only by Citrix.
For more information, see Citrix Workspace app for Windows Virtual Channel SDK documentation.
Server-side functions overview
Server-side functions are entry points to virtual channel services provided by the Linux VDA. The ctxvdapi.h header file of this SDK contains constants and function prototypes. Use these functions to open and close virtual channels and to read, write, query, and purge incoming or outgoing data.
Virtual channel functions
| Function | Description |
|---|---|
| LFVirtualChannelOpen | Opens a handle to a specific virtual channel. |
| LFVirtualChannelWrite | Writes data to a virtual channel. |
| LFVirtualChannelRead | Reads data from a virtual channel. |
| LFVirtualChannelQuery | Returns data related to a virtual channel. |
| LFVirtualChannelPurgeInput | Purges all queued input data sent from the client to the server on a specific virtual channel. |
| LFVirtualChannelPurgeOutput | Purges all queued output data sent from the server to the client on a specific virtual channel. |
| LFVirtualChannelClose | Closes a handle to a specific virtual channel. |
Session event functions
| Function | Description |
|---|---|
| LFSessionEventInit | Opens a handle for session event monitoring. |
| LFWaitForSessionEvent | Subscribes to and waits for session events. |
| LFSessionEventDestroy | Closes the handle. |