spice client 和 spice server 通信机制(5)

时间:2025-07-08

责发起创建,并通过VDI接口将此对象传递给libspice。

RedsState中一个数据成员为Channel*channels,Server端通过此变量来维护一个Channel链表,所有Server端支持的Channel都需要通过reds_register_channel注册到此链表。除了InputChannle是在spice_server_init中注册的外(即:在CoreInterface初始化时注册的),其余Channel都是在Qemu进行虚拟设备初始化时,通过调用spice_server_add_interface函数注册VDI时注册的,列举如下:

//spice_server_init

inputs_init中注册:SPICE_CHANNEL_INPUTS

//spice_server_add_interface(SPICE_INTERFACE_QXL)

red_dispatcher_init中注册:SPICE_CHANNEL_DISPLAY、SPICE_CHANNEL_CURSOR//spice_server_add_interface(SPICE_INTERFACE_PLAYBACK)

snd_attach_playback中注册:SPICE_CHANNEL_PLAYBACK

//spice_server_add_interface(SPICE_INTERFACE_RECORD)

snd_attach_record中注册:SPICE_CHANNEL_RECORD

//spice_server_add_interface(SPICE_INTERFACE_NET_WIRE)

red_tunnel_attach中注册:SPICE_CHANNEL_TUNNEL

所谓注册Channel,就是初始化一个Channel对象,然后将其插入到RedsState的channels链表中供后续的访问处理。Channel结构定义如下:

typedefstructChannel{

structChannel*next;

spice client 和 spice server 通信机制(5).doc 将本文的Word文档下载到电脑

精彩图片

热门精选

大家正在看

× 游客快捷下载通道(下载后可以自由复制和排版)

限时特价:7 元/份 原价:20元

支付方式:

开通VIP包月会员 特价:29元/月

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219