Skip to main content
RDP virtual channels enable extending the protocol with custom functionality. IronRDP supports both static virtual channels (SVC) and dynamic virtual channels (DVC), along with built-in implementations for common channels.

Channel Types

Static Virtual Channels (SVC)

Established during connection setup. Examples:
  • CLIPRDR - Clipboard redirection
  • RDPSND - Audio output
  • RDPDR - Device redirection
  • DRDYNVC - Dynamic channel transport

Dynamic Virtual Channels (DVC)

Created on-demand over the DRDYNVC static channel. More flexible for custom protocols.

Built-in Channels

Clipboard (CLIPRDR)

The clipboard channel enables copy/paste between client and server.

Client-side Implementation

Server-side Implementation

Custom Clipboard Backend

Implement your own clipboard logic:

Audio Output (RDPSND)

Stream audio from server to client.

Server Implementation

Sending Audio Frames

Device Redirection (RDPDR)

Redirect local devices (drives, printers, serial ports) to the remote session.

Implementing Custom Static Channels

Define Channel Trait

Register Channel

Channels are registered during connection setup through the connector configuration:

Implementing Dynamic Channels (DVC)

Client-side DVC

Creating DVC Messages

Channel Processing Patterns

Stateful Channel

Request-Response Channel

Best Practices

Error Handling

Logging

Buffer Management

Use WriteBuf and ReadCursor for efficient encoding/decoding:

Next Steps