MICROSOFT USB 裝置的OS描述項

Microsoft提供一組專屬裝置類別和 USB 描述元,稱為Microsoft OS 描述元(MOD)。

由於包含多個硬體功能的裝置迅速出現,許多製造商發現其裝置不適合任何目前的通用序列總線(USB)裝置類別。 這剝奪了這類製造商 USB 技術最具吸引力的功能之一:驅動程式軟體的標準化(根據裝置類別)。 Windows 為大部分屬於標準 USB 裝置類別的裝置提供原生類別驅動程式,而這些驅動程式可讓用戶輕鬆地將這類裝置連結至電腦,而不需要安裝特殊軟體。

為了容納裝置不符合目前USB裝置類別集的製造商,Microsoft開發了一組專屬裝置類別和USB描述元,稱為MicrosoftOS描述元(MOD)。 應用程式和系統軟體都可以藉由查詢裝置來判斷它們是否支援MOD,來識別屬於Microsoft定義裝置類別的裝置。

Microsoft OS 描述元除了支援專屬裝置類別之外,還有重要的用途。 特別是,它們提供一種機制來衍生裝置韌體的最大優點。 透過Microsoft OS 描述項的協助,您可以使用韌體來提供說明檔、特殊圖示、統一資源定位器(URL)、登錄設定,以及其他需要的數據,以簡化安裝和增強客戶滿意度。 在某些情況下,您可以放棄磁碟片和 CD 等儲存媒體,以簡化升級的傳遞和支援。

作業系統支援

支援Microsoft OS 1.0 描述元:

  • Windows 11
  • Windows 10
  • Windows 8.1
  • Windows 8
  • Windows 7
  • Windows Vista、Windows Server 2008
  • Windows XP with Service Pack 1 (SP1),Windows Server 2003

支援Microsoft OS 2.0 描述元:

  • Windows 11
  • Windows 10
  • Windows 8.1

為什麼 Windows 發出字串描述元要求來編製索引0xEE?

支援Microsoft OS 描述元的裝置必須在固定字串索引的韌體中儲存特殊的 USB 字串描述元,0xEE。 這個字串描述元稱為Microsoft OS 字串描述元。

  • 其存在表示裝置包含一或多個OS功能描述元。
  • 其中包含擷取相關聯OS功能描述元所需的數據。
  • 它包含簽章欄位,可區分OS字串描述元與其他IHD可能選擇儲存在0xEE的字串。
  • 它包含版本號碼,允許未來Microsoft OS 描述元的修訂。

如果0xEE沒有字串描述元,或該索引處的字串描述元不是有效的OS字串描述元,Windows 會假設裝置不包含任何OS功能描述元。

當新裝置第一次連接到計算機時,支援Microsoft OS 描述元的操作系統會要求索引0xEE的字串描述元。 Microsoft OS 字串描述元包含一個內嵌簽章欄位,操作系統用來區分它與其他可能位於索引0xEE的字串。 在索引0xEE包含適當簽章欄位的字串描述元存在,會向操作系統指出裝置支援Microsoft OS 描述元。 Microsoft OS 字串描述元也會提供操作系統版本資訊。

操作系統會在裝置列舉期間查詢索引0xEE的字串描述元,也就是在設備載入的驅動程式之前,這可能會造成某些裝置故障。 支援 Microsoft OS 描述元的 Windows 作業系統版本不支援這類裝置。

如果裝置在索引0xEE中未包含有效的字串描述元,則必須以停滯封包回應(換句話說,包含 STALL 類型的封包標識碼的封包),如通用序列總線規格的「要求錯誤」一節所述。 如果裝置沒有回應停滯封包,系統就會對裝置發出單一結束的零重設封包,以協助它從其停滯狀態中復原(僅限 Windows XP)。

操作系統從裝置要求Microsoft OS 字串描述元之後,它會建立下列登錄機碼:

HLKM\SYSTEM\CurrentControlSet\Control\UsbFlags\vvvvpppprrrrr

操作系統會在此登錄機碼下建立名為 osvc的登錄專案,指出裝置是否支援Microsoft OS描述元。 如果裝置在操作系統第一次查詢操作系統時未提供有效的回應,Microsoft OS 字串描述元,則操作系統不會對該描述項提出進一步要求。

如需該機碼下的登錄專案,請參閱 USB 裝置登錄專案

如需詳細資訊,請參閱 Microsoft OS 1.0 描述項規格

Windows 支援哪些類型的 OS 功能描述元?

任何要儲存為功能描述元的資訊都必須符合其中一個Microsoft定義的標準格式。 若未經Microsoft同意,就無法定義或實作其他功能描述元。 Microsoft定義下列功能描述元:

  • 擴充相容性標識碼。 Windows 使用類別和子類別代碼來協助找出 USB 裝置的適當預設驅動程式。 不過,USB 裝置工作組必須配置這些代碼。 這表示實作新類型功能的裝置通常還沒有適當的類別和子類別代碼,因此 Windows 無法使用程式代碼來選取預設驅動程式。 IHV 可以將資訊儲存在韌體中作為擴充相容標識碼OS功能描述元,來規避此問題。 Windows 接著可以在裝置插入電源時擷取此資訊,並用它來協助判斷要載入的預設驅動程式。
  • 擴充屬性。 目前,有兩個層級可以針對USB裝置宣告屬性:類別層級或開發節點層級。 擴充屬性OS功能描述元可讓廠商儲存更多屬性,例如說明頁面、URL和圖示內裝置韌體。