讀取配置數據(與在0x200 wValue GET_DESCRIPTOR操作)的信息我與描述符類型爲0x22描述符塊。我不知道它是什麼。凡從USB設備找到定製USB描述符類型
描述塊(緊跟接口描述符):14,22,00,01,13,81,1d,00,17,01,02,08,13,01,0c,00,0c,01,02,08
因此,任何人可以請讓我知道它是什麼,但更重要的是,我應該在哪裏通常去尋找信息的自定義類型的描述,我將真的來臨跨越其他一些描述符類型?
讀取配置數據(與在0x200 wValue GET_DESCRIPTOR操作)的信息我與描述符類型爲0x22描述符塊。我不知道它是什麼。凡從USB設備找到定製USB描述符類型
描述塊(緊跟接口描述符):14,22,00,01,13,81,1d,00,17,01,02,08,13,01,0c,00,0c,01,02,08
因此,任何人可以請讓我知道它是什麼,但更重要的是,我應該在哪裏通常去尋找信息的自定義類型的描述,我將真的來臨跨越其他一些描述符類型?
我想我已經記錄究竟如何,我偶然發現了這樣的解釋,因爲我花了相當長一段時間,並@KuldeepSinghDhaka幫助重新追查我的腳步的搜索路徑。 USB規範有點偷偷摸摸,因爲它有點不明顯。
我使用USB 2.0 Spec供參考,在以後的版本中的部分數字可能不一致。
從USB 2.0 Spec,仲9.4.3的爲0x200 wValue裝置請求是針對標準(或第一,0低字節),配置描述符(高字節0×2)
從USB 2.0 Spec,仲9.5
如果類別或供應商特定描述符獨立於配置信息或使用非標準格式,則可以使用指定類別或供應商特定描述符類型和索引的GetDescriptor()請求來檢索描述符來自 設備。類或供應商規範將定義檢索這些描述符的適當方式。
從USB Common Class Specification says,秒3.11:
的bDescriptorType領域的最顯著位保留供未來使用。 ... 接下來的兩個bDescriptorType領域的最顯著位被用來表示標準,階級或 供應商特定的描述符。這些位使用與USB設備請求設置數據包的bmRequestType.Type字段相同的編碼。因爲bDescriptorType字段的高3位被用作如上所述 ,其可以爲任何類別 (標準,類或設備特定的)來定義的唯一描述符的最大數目是32
下面是如何我解釋了上述情況,並將其應用於我所看到的(某些M $)設備。
描述符類型具有定義的結構:
所以,描述符類型0x22表示:類特定描述符ID 2.
因此,一旦您看到非標準描述符類型,請檢查它是否基於供應商,然後您將需要查找供應商文檔。如果它是基於類的,那麼檢查接口(*)描述符的類。如果接口描述符使用標準類(例如HID),則查找相應的標準文檔。如果接口描述符使用供應商類,那麼需要供應商文檔來了解描述符的內容。 (*)描述符可適用於設備或接口。我的理解是,如果描述符類型是基於類的,則它適用於基於其位置的設備或接口的類。
您可以引用信息的來源(特別是描述符類型的位佈局)。 –
我很樂意閱讀原始規格。請在答案中提及文件和相關部分的鏈接。 –
如果文檔和規格說明是真的,我會很驚訝。我從來沒有讀過任何描述描述符類型的位佈局的文檔。即時通訊等待... :)(即時通訊懷疑也..) –
嘗試一些USB分析儀像USBVIEW,Ellysis視覺USB分析儀,它會爲你清晰的疑慮
的問題是真實的,信息是不是很知道有用。 –
之前曾經低調提出過這個問題的人,要麼是不瞭解USB,或者會造成滋擾。 –