[發(fā)明專利]一種新型的USB存儲(chǔ)設(shè)備重定向方法有效
| 申請(qǐng)?zhí)枺?/td> | 202010439263.8 | 申請(qǐng)日: | 2020-05-22 |
| 公開(公告)號(hào): | CN111666122B | 公開(公告)日: | 2022-05-27 |
| 發(fā)明(設(shè)計(jì))人: | 劉平;劉武;陳冬冬;袁紹永;姜喜華;陳銘 | 申請(qǐng)(專利權(quán))人: | 湖南云之翼軟件有限公司 |
| 主分類號(hào): | G06F9/451 | 分類號(hào): | G06F9/451;H04L67/025;H04L67/146 |
| 代理公司: | 北京和信華成知識(shí)產(chǎn)權(quán)代理事務(wù)所(普通合伙) 11390 | 代理人: | 顏思文 |
| 地址: | 410100 湖南省長(zhǎng)沙市長(zhǎng)沙縣湘龍街道汽配城路89號(hào)愷悅花園*** | 國(guó)省代碼: | 湖南;43 |
| 權(quán)利要求書: | 查看更多 | 說(shuō)明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 一種 新型 usb 存儲(chǔ) 設(shè)備 定向 方法 | ||
1.一種新型的USB存儲(chǔ)設(shè)備重定向方法,其特征在于:所述重定向方法包括終端與云桌面,所述終端包括內(nèi)核層iSCSI目標(biāo)驅(qū)動(dòng)與應(yīng)用層重定向客戶端程序,所述云桌面包括應(yīng)用層重定向服務(wù)程序、應(yīng)用層iSCSI發(fā)起端服務(wù)與內(nèi)核層iSCSI發(fā)起端驅(qū)動(dòng),所述內(nèi)核層iSCSI目標(biāo)驅(qū)動(dòng)與應(yīng)用層重定向客戶端程序通過(guò)內(nèi)核在應(yīng)用層的接口進(jìn)行交互,所述應(yīng)用層重定向客戶端程序與應(yīng)用層重定向服務(wù)程序通過(guò)網(wǎng)絡(luò)套接字進(jìn)行交互,所述應(yīng)用層重定向服務(wù)程序與應(yīng)用層iSCSI發(fā)起端服務(wù)通過(guò)本地網(wǎng)絡(luò)套接字進(jìn)行交互,所述應(yīng)用層iSCSI發(fā)起端服務(wù)與內(nèi)核層iSCSI發(fā)起端驅(qū)動(dòng)通過(guò)內(nèi)核在應(yīng)用層的接口進(jìn)行交互;
其中,所述重定向方法包括USB存儲(chǔ)設(shè)備重定向與SCSI存儲(chǔ)設(shè)備重定向,具體內(nèi)容如下:
1、USB存儲(chǔ)設(shè)備重定向:
1)用戶在終端插入U(xiǎn)SB存儲(chǔ)設(shè)備,終端應(yīng)用層重定向客戶端程序從終端本地操作系統(tǒng)接收到USB設(shè)備插入事件,判斷該USB設(shè)備是否為USB存儲(chǔ)設(shè)備,僅當(dāng)該USB設(shè)備為USB存儲(chǔ)設(shè)備時(shí)進(jìn)行下面的處理流程;
2)終端應(yīng)用層重定向客戶端程序?yàn)榻尤虢K端的USB存儲(chǔ)設(shè)備加載終端內(nèi)核層iSCSI目標(biāo)驅(qū)動(dòng),連接到云桌面應(yīng)用層重定向服務(wù)程序,并發(fā)送消息通知云桌面應(yīng)用層重定向服務(wù)程序;
3)云桌面應(yīng)用層重定向服務(wù)程序接受云終端的連接請(qǐng)求,接收到終端應(yīng)用層重定向客戶端程序發(fā)過(guò)來(lái)的新增接入設(shè)備消息后,在內(nèi)存中建立iSCSI目標(biāo)名稱與網(wǎng)絡(luò)連接套接字描述符的對(duì)應(yīng)關(guān)系列表,調(diào)用云桌面應(yīng)用層iSCSI發(fā)起程序命令接連到云桌面應(yīng)用層重定向服務(wù)程序掛載該iSCSI目標(biāo)(卷);
4)云桌面應(yīng)用層重定向服務(wù)程序接受云桌面應(yīng)用層iSCSI發(fā)起端服務(wù)的連接請(qǐng)求,接收云桌面應(yīng)用層iSCSI發(fā)起端服務(wù)發(fā)過(guò)來(lái)的SCSI任務(wù)管理請(qǐng)求、登錄請(qǐng)求、Text請(qǐng)求、注銷請(qǐng)求、SNACK請(qǐng)求,在云桌面應(yīng)用層重定向服務(wù)程序內(nèi)部進(jìn)行響應(yīng),將響應(yīng)發(fā)送給云桌面應(yīng)用層iSCSI發(fā)起端服務(wù);
5)當(dāng)云桌面發(fā)起數(shù)據(jù)讀寫操作后,云桌面操作系統(tǒng)會(huì)生成SCSI指令集,該SCSI指令集被iSCSI發(fā)起端服務(wù)封裝成iSCSI命令報(bào)文,發(fā)送給云桌面應(yīng)用層重定向服務(wù)程序,云桌面應(yīng)用層重定向服務(wù)程序?qū)⒃搃SCSI命令報(bào)文發(fā)送給云終端應(yīng)用層重定向客戶端程序,云終端應(yīng)用層重定向客戶端程序收到iSCSI命令報(bào)文后進(jìn)行解析,讀取其中的SCSI指令,發(fā)送給終端內(nèi)核層iSCSI目標(biāo)驅(qū)動(dòng);
6)終端內(nèi)核層iSCSI目標(biāo)驅(qū)動(dòng)判斷該USB設(shè)備為USB存儲(chǔ)設(shè)備時(shí),終端內(nèi)核層iSCSI目標(biāo)驅(qū)動(dòng)按照USB存儲(chǔ)設(shè)備協(xié)議進(jìn)行封裝,構(gòu)造URB,取CBD(命令描述塊)并在之前增加CBW(CommandBlockWrapper),將USB存儲(chǔ)設(shè)備協(xié)議不支持的SCSI命令描述塊進(jìn)行轉(zhuǎn)換,填充到URB的transfer_buffer中,提交到USB存儲(chǔ)設(shè)備;
7)當(dāng)前SCSI命令為寫(Data-Out)時(shí),終端內(nèi)核層iSCSI目標(biāo)驅(qū)動(dòng)構(gòu)造SCSIR2T(ReadytoTransfer)報(bào)文,發(fā)送給云終端應(yīng)用層重定向客戶端程序,云終端應(yīng)用層重定向客戶端程序發(fā)送給云桌面應(yīng)用層重定向服務(wù)程序,云桌面應(yīng)用層重定向服務(wù)程序發(fā)送給iSCSI發(fā)起端服務(wù),iSCSI發(fā)起端服務(wù)解開其iSCSIPDU包,讀取其中的SCSI響應(yīng)內(nèi)容,并將其提交給操作系統(tǒng)進(jìn)行處理,云桌面操作系統(tǒng)會(huì)繼續(xù)生成SCSI寫(Data-Out)報(bào)文,被iSCSI發(fā)起端服務(wù)發(fā)送給云桌面應(yīng)用層重定向服務(wù)程序,云桌面應(yīng)用層重定向服務(wù)程序?qū)⒃搃SCSI寫報(bào)文發(fā)送給云終端應(yīng)用層重定向客戶端程序,云終端應(yīng)用層重定向客戶端程序發(fā)送給終端內(nèi)核層iSCSI目標(biāo)驅(qū)動(dòng),終端內(nèi)核層iSCSI目標(biāo)驅(qū)動(dòng)構(gòu)造URB,從iSCSI寫報(bào)文取需要寫的數(shù)據(jù)填充到URB的transfer_buffer中,提交到USB存儲(chǔ)設(shè)備,如果整個(gè)數(shù)據(jù)沒(méi)有完全接收完,會(huì)再發(fā)出下一個(gè)R2T要求iSCSI發(fā)起端服務(wù)繼續(xù)發(fā)數(shù)據(jù),重復(fù)上面過(guò)程直到接收全部數(shù)據(jù);當(dāng)前SCSI命令為讀(Data-In)時(shí),終端內(nèi)核層iSCSI目標(biāo)驅(qū)動(dòng)構(gòu)造URB,設(shè)置transfer_buffer長(zhǎng)度為讀取長(zhǎng)度,提交到USB存儲(chǔ)設(shè)備,從URB響應(yīng)中取得需要讀的數(shù)據(jù)構(gòu)造SCSI讀(Data-In)報(bào)文,如果數(shù)據(jù)長(zhǎng)度太長(zhǎng),就分成多個(gè)SCSI讀(Data-In)報(bào)文,發(fā)送給云終端應(yīng)用層重定向客戶端程序,云終端應(yīng)用層重定向客戶端程序發(fā)送給云桌面應(yīng)用層重定向服務(wù)程序,云桌面應(yīng)用層重定向服務(wù)程序發(fā)送給iSCSI發(fā)起端服務(wù),iSCSI發(fā)起端服務(wù)解開其iSCSIPDU包,讀取其中的SCSI響應(yīng)內(nèi)容,并將其提交給操作系統(tǒng)進(jìn)行處理,然后操作系統(tǒng)在將其處理后的內(nèi)容返回給應(yīng)用程序;
8)SCSI讀寫完成后,終端內(nèi)核層iSCSI目標(biāo)驅(qū)動(dòng)構(gòu)造URB,在transfer_buffer中填充CSW,提交到USB存儲(chǔ)設(shè)備,從URB響應(yīng)中取得需要讀的數(shù)據(jù)構(gòu)造SCSI響應(yīng)報(bào)文,發(fā)送給云終端應(yīng)用層重定向客戶端程序,云終端應(yīng)用層重定向客戶端程序發(fā)送給云桌面應(yīng)用層重定向服務(wù)程序,云桌面應(yīng)用層重定向服務(wù)程序發(fā)送給iSCSI發(fā)起端服務(wù),iSCSI發(fā)起端服務(wù)解開其iSCSIPDU包,讀取其中的SCSI響應(yīng)內(nèi)容,并將其提交給操作系統(tǒng)進(jìn)行處理;
2、SCSI存儲(chǔ)設(shè)備重定向:
1)用戶設(shè)置終端本地第二磁盤存儲(chǔ)設(shè)備重定向時(shí),終端應(yīng)用層重定向客戶端程序?yàn)榻K端本地的第二磁盤存儲(chǔ)設(shè)備加載終端內(nèi)核層iSCSI目標(biāo)驅(qū)動(dòng),連接到云桌面應(yīng)用層重定向服務(wù)程序,并發(fā)送消息通知云桌面應(yīng)用層重定向服務(wù)程序;
2)云桌面應(yīng)用層重定向服務(wù)程序接受云終端的連接請(qǐng)求,接收到終端應(yīng)用層重定向客戶端程序發(fā)過(guò)來(lái)的新增接入設(shè)備消息后,在內(nèi)存中建立iSCSI目標(biāo)名稱與網(wǎng)絡(luò)連接套接字描述符的對(duì)應(yīng)關(guān)系列表,調(diào)用云桌面應(yīng)用層iSCSI發(fā)起程序命令接連到云桌面應(yīng)用層重定向服務(wù)程序掛載該iSCSI目標(biāo)(卷);
3)云桌面應(yīng)用層重定向服務(wù)程序接受云桌面應(yīng)用層iSCSI發(fā)起端服務(wù)的連接請(qǐng)求,接收云桌面應(yīng)用層iSCSI發(fā)起端服務(wù)發(fā)過(guò)來(lái)的SCSI任務(wù)管理請(qǐng)求、登錄請(qǐng)求、Text請(qǐng)求、注銷請(qǐng)求、SNACK請(qǐng)求,在云桌面應(yīng)用層重定向服務(wù)程序內(nèi)部進(jìn)行響應(yīng),將響應(yīng)發(fā)送給云桌面應(yīng)用層iSCSI發(fā)起端服務(wù);
4)當(dāng)云桌面發(fā)起數(shù)據(jù)讀寫操作后,云桌面操作系統(tǒng)會(huì)生成SCSI指令集,該SCSI指令集被iSCSI發(fā)起端服務(wù)封裝成iSCSI命令報(bào)文,發(fā)送給云桌面應(yīng)用層重定向服務(wù)程序,云桌面應(yīng)用層重定向服務(wù)程序?qū)⒃搃SCSI命令報(bào)文發(fā)送給云終端應(yīng)用層重定向客戶端程序,云終端應(yīng)用層重定向客戶端程序收到iSCSI命令報(bào)文后進(jìn)行解析,讀取其中的SCSI指令,發(fā)送給終端內(nèi)核層iSCSI目標(biāo)驅(qū)動(dòng);
5)終端內(nèi)核層iSCSI目標(biāo)驅(qū)動(dòng)將SCSI指令提交到第二磁盤存儲(chǔ)設(shè)備;
6)當(dāng)前SCSI命令為寫(Data-Out)時(shí),終端內(nèi)核層iSCSI目標(biāo)驅(qū)動(dòng)構(gòu)造SCSIR2T(ReadytoTransfer)報(bào)文,發(fā)送給云終端應(yīng)用層重定向客戶端程序,云終端應(yīng)用層重定向客戶端程序發(fā)送給云桌面應(yīng)用層重定向服務(wù)程序,云桌面應(yīng)用層重定向服務(wù)程序發(fā)送給iSCSI發(fā)起端服務(wù),iSCSI發(fā)起端服務(wù)解開其iSCSIPDU包,讀取其中的SCSI響應(yīng)內(nèi)容,并將其提交給操作系統(tǒng)進(jìn)行處理,云桌面操作系統(tǒng)會(huì)繼續(xù)生成SCSI寫(Data-Out)報(bào)文,被iSCSI發(fā)起端服務(wù)發(fā)送給云桌面應(yīng)用層重定向服務(wù)程序,云桌面應(yīng)用層重定向服務(wù)程序?qū)⒃搃SCSI寫報(bào)文發(fā)送給云終端應(yīng)用層重定向客戶端程序,云終端應(yīng)用層重定向客戶端程序發(fā)送給終端內(nèi)核層iSCSI目標(biāo)驅(qū)動(dòng),終端內(nèi)核層iSCSI目標(biāo)驅(qū)動(dòng)從iSCSI寫報(bào)文取需要寫的數(shù)據(jù)提交到第二磁盤存儲(chǔ)設(shè)備,如果整個(gè)數(shù)據(jù)沒(méi)有完全接收完,會(huì)再發(fā)出下一個(gè)R2T要求iSCSI發(fā)起端服務(wù)繼續(xù)發(fā)數(shù)據(jù),重復(fù)上面過(guò)程直到接收全部數(shù)據(jù);當(dāng)前SCSI命令為讀(Data-In)時(shí),終端內(nèi)核層iSCSI目標(biāo)驅(qū)動(dòng)從第二磁盤存儲(chǔ)設(shè)備取得需要讀的數(shù)據(jù)構(gòu)造SCSI讀(Data-In)報(bào)文,如果數(shù)據(jù)長(zhǎng)度太長(zhǎng),就分成多個(gè)SCSI讀(Data-In)報(bào)文,發(fā)送給云終端應(yīng)用層重定向客戶端程序,云終端應(yīng)用層重定向客戶端程序發(fā)送給云桌面應(yīng)用層重定向服務(wù)程序,云桌面應(yīng)用層重定向服務(wù)程序發(fā)送給iSCSI發(fā)起端服務(wù),iSCSI發(fā)起端服務(wù)解開其iSCSIPDU包,讀取其中的SCSI響應(yīng)內(nèi)容,并將其提交給操作系統(tǒng)進(jìn)行處理,然后操作系統(tǒng)在將其處理后的內(nèi)容返回給應(yīng)用程序;
7)SCSI讀寫完成后,終端內(nèi)核層iSCSI目標(biāo)驅(qū)動(dòng)從第二磁盤存儲(chǔ)設(shè)備取得SCSIResponse構(gòu)造SCSI響應(yīng)報(bào)文,發(fā)送給云終端應(yīng)用層重定向客戶端程序,云終端應(yīng)用層重定向客戶端程序發(fā)送給云桌面應(yīng)用層重定向服務(wù)程序,云桌面應(yīng)用層重定向服務(wù)程序發(fā)送給iSCSI發(fā)起端服務(wù),iSCSI發(fā)起端服務(wù)解開其iSCSIPDU包,讀取其中的SCSI響應(yīng)內(nèi)容,并將其提交給操作系統(tǒng)進(jìn)行處理。
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于湖南云之翼軟件有限公司,未經(jīng)湖南云之翼軟件有限公司許可,擅自商用是侵權(quán)行為。如果您想購(gòu)買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請(qǐng)聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202010439263.8/1.html,轉(zhuǎn)載請(qǐng)聲明來(lái)源鉆瓜專利網(wǎng)。
- 動(dòng)態(tài)存儲(chǔ)管理裝置及方法
- 一種存儲(chǔ)方法、服務(wù)器及存儲(chǔ)控制器
- 一種基于存儲(chǔ)系統(tǒng)的控制方法及裝置
- 一種信息的存儲(chǔ)控制方法
- 一種數(shù)據(jù)存儲(chǔ)方法及裝置
- 數(shù)據(jù)存儲(chǔ)方法、裝置、計(jì)算機(jī)設(shè)備以及存儲(chǔ)介質(zhì)
- 一種數(shù)據(jù)存儲(chǔ)控制方法及裝置
- 存儲(chǔ)設(shè)備、存儲(chǔ)系統(tǒng)及存儲(chǔ)方法
- 物料存儲(chǔ)方法及系統(tǒng)
- 基于雙芯智能電表的數(shù)據(jù)分類存儲(chǔ)方法和裝置
- 傳感設(shè)備、檢索設(shè)備和中繼設(shè)備
- 簽名設(shè)備、檢驗(yàn)設(shè)備、驗(yàn)證設(shè)備、加密設(shè)備及解密設(shè)備
- 色彩調(diào)整設(shè)備、顯示設(shè)備、打印設(shè)備、圖像處理設(shè)備
- 驅(qū)動(dòng)設(shè)備、定影設(shè)備和成像設(shè)備
- 發(fā)送設(shè)備、中繼設(shè)備和接收設(shè)備
- 定點(diǎn)設(shè)備、接口設(shè)備和顯示設(shè)備
- 傳輸設(shè)備、DP源設(shè)備、接收設(shè)備以及DP接受設(shè)備
- 設(shè)備綁定方法、設(shè)備、終端設(shè)備以及網(wǎng)絡(luò)側(cè)設(shè)備
- 設(shè)備、主設(shè)備及從設(shè)備
- 設(shè)備向設(shè)備轉(zhuǎn)發(fā)





