usb禁止重定向 談USB重定向的方式

2021-10-17 02:22:31 字數 1259 閱讀 8330

在桌面虛擬化的專案中,常常會遇到使用者提出的各自外設需求,這時產品對外設的相容性就成為了專案成敗的攔路虎

本文試圖用通俗易懂的語言講講usb外設重定向的工作流程,先看看普通pc上usb裝置的工作流程

usb硬體只將資料交給usb匯流排驅動,而應用程式只會把請求提交給本usb裝置驅動處理,在usb裝置驅動提交usb匯流排驅動處理

從上圖可以看出,能夠被虛擬化的只有usb裝置驅動和usb匯流排驅動兩個物件

這也是目前業界對usb裝置虛擬化的兩大主流方式

一.  虛擬usb匯流排驅動的方案

又叫做usb埠重定向,工作流程如下圖

tc上所插usb裝置資料通過tc的usb匯流排提交給虛擬usb驅動,虛擬usb驅動負責在tc匯流排和usb客戶端之間雙向傳輸資料,如實傳輸usb硬體的一切細節,對虛擬機器來說,相當於在虛擬usb匯流排上插了乙個usb硬體,假如在tc上插了乙個閃迪的u盤,那在虛擬機器看來就是有乙個閃迪u盤插上來了,這時候虛擬機器的系統會自動打相應的裝置驅動

實質上,埠對映只是相當於將pc上usb工作流程裡的usb裝置驅動到usb匯流排驅動之間的這段進行了拉長,通過中間加入幾個**,最終還是將tc上usb外設的細節原原本本向虛擬機器上的usb應用呈現,只是隱瞞了裝置實際上是在遠端tc的事實,這樣應用根本感知不到和使用本地外設的差異,和執行在pc上是一樣的,因此,usb埠重定向具有良好的裝置相容性。

埠重定向也有一定侷限性,由於沒有經過裝置驅動層的壓縮和預處理,對於某些掃瞄器和攝像頭等影象類應用,可能會導致頻寬過大,網路時延敏感等問題

二.  虛擬usb裝置驅動的方案

又稱為usb裝置重定向,工作流程如下圖

usb裝置重定向是在應用層的實現,通過在虛擬機器上建立乙個虛擬的usb外設驅動(對作業系統來說,乙個驅動意味著乙個裝置),來使應用程式獲得資料,對於整個系統來說,虛擬usb外設驅動和tc上的usb裝置驅動本質上是兩個不同的usb裝置,而usb服務端和usb客戶端負責維護兩個驅動之間的資料通道(類似於在兩個u盤之間互相拷貝資料)

顯而易見,裝置重定向工作流程中的**環節少了很多,因而資料傳輸速率更高,延時更低,更適合像usb攝像頭等資料流量比較大,同時對延時也比較敏感的外設

事實上,目前主流的遠端桌面協議如hdx,spice等,都為每一類外設提供從客戶端到虛擬機器的對映,並在應用層提供專門的通道,將不同的流量隔離開來,如攝像頭、印表機、掃瞄類裝置、智慧卡裝置等,甚至針對不同外設應用場景的需求,提供不同的傳輸qos

裝置重定向的問題主要在tc上的usb裝置驅動和外設通道協議的usb客戶端之間,如果外設廠家提供的不是遵循外設協議標準的驅動,那麼usb客戶端可能會不能很好的將其識別到

usb禁止重定向 USB重定向

第一期中,我們一起簡要的看了下傳統pc和桌面雲下usb重定向和usb裝置重定向方式的差異,了解了桌面雲下外設相容性問題 的根源 usb裝置本身驅動不規範 不支援,或者虛擬機器驅動實現上與usb裝置對接存在疏漏。本期我們來詳細的了解下傳統pc和桌面雲的外設工作原理 目前,在通用作業系統上,usb外設佔...

SPICE 協議 USB 重定向

用spice協議來進行usb透傳的介紹,在spice官網上有 spice 官網 type usb index 0 model ich9 ehci1 type usb index 0 model ich9 uhci1 startport 0 controller type usb index 0 mo...

RemoteFX 中的USB重定向功能

emotefx 中的usb重定向功能 在這裡我們還是使用上篇文件中的實驗環境。首先開啟安裝了windows 7 sp1的要用來連線虛擬機器的物理機,在組策略中開啟允許開啟usb重定向的選項。1.單擊開始,鍵入gpedit.msc,然後回車,開啟組策略編輯器,然後找到允許remotefx,usb重定向...