第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

獲取連接的USB設備列表

獲取連接的USB設備列表

慕桂英546537 2019-07-03 15:51:37
獲取連接的USB設備列表如何獲得Windows計算機上所有連接的USB設備的列表?
查看完整描述

3 回答

?
蕪湖不蕪

TA貢獻1796條經(jīng)驗 獲得超7個贊

我知道我是在回答一個老問題,但我只是做了同樣的練習,發(fā)現(xiàn)了一些更多的信息,我認為這些信息會對討論有很大的幫助,幫助其他人找到這個問題,并發(fā)現(xiàn)現(xiàn)有的答案有哪些不足。

這個接受答案是關閉的,并且可以使用內(nèi)德科的評論敬它。更詳細地理解所涉及的WMI類有助于完成這幅圖。

Win32_USBHub只返回usb樞紐..事后看來,這似乎是顯而易見的,但上述討論卻忽略了這一點。它并不包括所有可能的USB設備,只有那些(至少在理論上)可以充當附加設備的集線器的設備。它忽略了一些不是集線器的設備(特別是復合設備的部分)。

Win32_PnPEntity包括所有的USB設備,以及數(shù)百個更多的非USB設備.羅素甘特曼氏使用WHERE子句搜索的通知Win32_PnPEntity對于以“USB%”開頭的設備ID來說,篩選列表很有幫助,但稍微不完整;它忽略了藍牙設備、一些打印機/打印服務器以及符合HID的鼠標和鍵盤。我見過“USB”、“USBSTOR”、“USBPRINT”、“BTH”、“SWD”和“HID”。Win32_PnPEntity然而,當您擁有其他來源的PNPDeviceID時,它是一個很好的“主”引用來查找信息。

我發(fā)現(xiàn)枚舉usb設備的最佳方法是查詢Win32_USBControllerDevice..雖然它沒有給出設備的詳細信息,但是它完全枚舉了您的usb設備,并給出了一個預先/依賴的對PNPDeviceID對系統(tǒng)上的每一個USB設備(包括集線器、非集線器設備和符合HID的設備)都使用。從查詢中返回的每個依賴項都將是一個USB設備。前面的控制器將是它被分配給的控制器,它是通過查詢返回的USB控制器之一。Win32_USBController.

作為一項獎勵,WMI似乎在引擎蓋下遍歷設備樹響應Win32_USBControllerDevice查詢,因此返回這些結(jié)果的順序可以幫助識別父/子關系。(這是沒有記錄的,因此只是猜測;使用SetupDiAPI的cm取母(或兒童 + 兄弟姐妹)確定的結(jié)果。)作為SetupDiAPI的一個選項,看起來對于下面列出的所有設備Win32_USBHub它們可以在注冊表中查找(在HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\ + PNPDeviceID),并且將有一個參數(shù)ParentIdPrefix,它將是其子級的PNPDeviceID中最后一個字段的前綴,因此也可以在通配符匹配中使用它來篩選Win32_PnPEntity查詢。

在我的申請中,我做了以下工作:

  • (可選)

    Win32_PnPEntity

    并將結(jié)果存儲在鍵值映射中(以PNPDeviceID作為密鑰)以供以后檢索。如果以后要執(zhí)行單獨的查詢,這是可選的。
  • 被質(zhì)疑

    Win32_USBControllerDevice

    獲得我的系統(tǒng)上USB設備的明確列表(所有受撫養(yǎng)人),并提取這些設備的PNPDeviceID。我更進一步,根據(jù)設備樹后面的順序,將設備分配給根集線器(返回的第一個設備,而不是控制器),并基于ParentIdPrefix構建了一棵樹。查詢返回的順序與通過SetupDi進行的設備樹枚舉匹配,是每個根集線器(先導標識控制器的根集線器),然后是下面的設備迭代,例如,在我的系統(tǒng)上:
    • 第二個控制器根集線器下的第一個集線器(有ParentIdPrefix)
    • 第二控制器根輪轂下的第二個集線器
    • 第二個控制器根輪轂下的第三個集線器
    • 等。
    • 組合裝置的HID裝置部分
    • 復合設備的HID設備部分(PNPDeviceID與復合設備的ParentIDPrefix匹配)
    • 第一個復合設備在第二個控制器根集線器下的第一個復合設備(PNPDeviceID與集線器的ParentIdPrefix匹配;有自己的ParentIdPrefix)
    • 第二控制器根集線器下第一個集線器下的第二個裝置
    • 第二控制器根輪轂下的第一個裝置
    • 第一控制器的根輪轂
    • 第二控制器根輪轂
  • 被質(zhì)疑

    Win32_USBController

    ..這給了我控制器的PNPDeviceID的詳細信息,這些控制器位于設備樹的頂部(這是前面的查詢)。使用在前一步中派生的樹,遞歸地迭代其子節(jié)點(根集線器)、其子節(jié)點(其他集線器)及其子節(jié)點(非集線器設備和復合設備)及其子程序,等等。
    • 通過引用存儲在第一步中的映射來檢索樹中每個設備的詳細信息。(可以選擇跳過第一步,然后查詢

      Win32_PnPEntity

      單獨使用PNPDeviceId在這一步獲取信息;可能是CPU與內(nèi)存之間的權衡,以確定哪個順序更好。)

總之,Win32USBControllerDevice受撫養(yǎng)人是系統(tǒng)上USB設備的完整列表(控制器本身除外,控制器本身是同一查詢中的先決條件),并通過交叉引用這些設備。PNPDeviceId與注冊表和其他查詢中的信息配對,可以構造詳細的圖片。


查看完整回答
反對 回復 2019-07-03
  • 3 回答
  • 0 關注
  • 1873 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網(wǎng)微信公眾號