Expand description
DVC COM client plugin loader for IronRDP (Windows-only).
This crate enables loading native Windows DVC (Dynamic Virtual Channel) client plugin DLLs
such as webauthn.dll into IronRDP’s DVC channel infrastructure.
The plugin DLL is loaded via LoadLibraryW, its VirtualChannelGetInstance export is called
to obtain IWTSPlugin COM objects, and a Rust implementation of IWTSVirtualChannelManager
bridges data bidirectionally between the plugin’s COM callbacks and IronRDP’s DVC system.
§Architecture
A dedicated COM worker thread owns all COM objects (which are !Send). The [DvcComChannel]
structs (which implement DvcProcessor + Send) are registered as DVC channels in IronRDP’s
DrdynvcClient and communicate with the COM thread via std::sync::mpsc channels.
Outbound data from the plugin (IWTSVirtualChannel::Write) is injected into the active
session loop via the on_write_dvc callback, following the same pattern as
ironrdp-dvc-pipe-proxy.