- IUDEVMAN Interface UDEV Manager
classDiagram IUDEVMAN --|> urbdrc_main_C IWTSListenerCallback --> URBDRC_LISTENER_CALLBACK URBDRC_LISTENER_CALLBACK --> URBDRC_PLUGIN IWTSPlugin --|> URBDRC_PLUGIN IWTSListener --|> URBDRC_PLUGIN IUDEVMAN o-- IWTSPlugin urbdrc_main_C o-- URBDRC_PLUGIN
classDiagram class drdynvcPlugin{ +drdynvc_virtual_channel_init_event_ex() +drdynvc_virtual_channel_event_connected() +dvcman_load_addin() } drdynvcPlugin -- DVCMAN_ENTRY_POINTS class DVCMAN_ENTRY_POINTS{ +DVCMAN* dvcman } DVCMAN_ENTRY_POINTS -- DVCMAN class IWTSVirtualChannelManager{ CreateListener()* } IWTSVirtualChannelManager --|> DVCMAN class DVCMAN{ +CreateListener> dvcman_create_listener() } _IWTSPlugin --|> URBDRC_PLUGIN class URBDRC_PLUGIN{ +IUDEVMAN* udevman +urbdrc_load_udevman_addin() +urbdrc_plugin_initialize() +udev_init() +udev_new_by_addr() +udev_new_by_id() } URBDRC_PLUGIN o-- IUDEVMAN URBDRC_PLUGIN -- IWTSVirtualChannelManager class IUDEVMAN{ listener_created_callback()* register_udevice()* } IUDEVMAN --|> UDEVMAN UDEVMAN --|> libusb_udevman class libusb_udevman{ +udevman_listener_created_callback() +udevman_register_udevice() +urbdrc_udevman_register_devices() +add_device() } class IUDEVICE { +attach_kernel_driver()* +detach_kernel_driver()* +query_device_descriptor()* } IUDEVICE --|> UDEVICE UDEVICE --|> libusb_udevice class libusb_udevice{ +attach_kernel_driver> libusb_udev_attach_kernel_driver() +detach_kernel_driver> libusb_udev_detach_kernel_driver() +query_device_descriptor> libusb_udev_query_device_descriptor() } rdpContext o-- rdpChannels class rdpChannels{ +CHANNEL_CLIENT_DATA clientDataList[CHANNEL_MAX_COUNT] +freerdp_client_load_static_channel_addin() +freerdp_channels_load_plugin() +freerdp_channels_client_load() } rdpChannels o-- pChannelClientData class pChannelClientData{ +entry()* } pChannelClientData --|> urbdrc_main _IWTSPlugin --|> urbdrc_main _IWTSVirtualChannelManager --|> urbdrc_main _IWTSListenerCallback --|> urbdrc_main class _IWTSListenerCallback{ +OnNewChannelConnection()* } class urbdrc_main{ +DVCPluginEntry() +OnNewChannelConnection> urbdrc_on_new_channel_connection() +urbdrc_on_data_received() } urbdrc_main -- URBDRC_PLUGIN
- 本文作者: crazyboy
- 本文链接: http://crazyboy.www.crazyboy.info/blog/blog/2022/07/27/it/linux/xfreerdp/urbdrc/
- 版权声明: 本博客所有文章除特别声明外,均采用 MIT 许可协议。转载请注明出处!