C#讀取USB的一些相關資訊

來源:互聯網
上載者:User

標籤:

在USB\VID_05A9&PID_2800\5&1BFE1C47&0&8裡面,USB代表裝置類型,
5&1BFE1C47&0&8代表裝置串連位置,包括匯流排位置,控制器位置,控制器編號,連接埠編號這幾項,
而VID_05A9&PID_2800則是裝置資訊,而USB的驅動也正是依賴於這個,
VID其實是Vendor ID,而PID則是Product ID,分別代表生產商的編號和生產商內部的產品編號。
原則上說一個USB裝置必須有PID和VID,屬於USB介面晶片的可選設定。

VID和PID分別是指 Vendor ID(生產廠商ID) 和 Product ID(產品ID)。
“裝置範例ID”為例:USBVID_090C&PID_37A4&MI_00\6&3AE50101&0&0000
USB代表裝置類型,
6&3AE50101&0&0000代表裝置串連位置,包括匯流排位置,控制器位置,控制器編號,連接埠編號這幾項,
VID_090C&PID_37A4&MI_00則是裝置資訊,VID是Vendor ID,PID是Product ID,分別代表生產商的編號和生產商內部的產品編號。


///////////////////////////隨插即用匯流排資訊/////////////////////////////
ManagementObjectSearcher mos0 = new ManagementObjectSearcher(@"select * from Win32_Bus where DeviceID like ‘PNP_BUS%‘");
            foreach (ManagementObject mo in mos0.Get())
            {
                foreach (PropertyData p in mo.Properties)
                {
                    Console.WriteLine(p.Name + "--------" + p.Value);
                }
            }

/////////////////////////////////USB控制器以及串連的裝置/////////////////////////////////
ManagementObjectSearcher moc1 = new ManagementObjectSearcher(@"select * from Win32_USBController where Manufacturer=‘Intel‘");
            foreach (ManagementObject mo1 in moc1.Get())
            {
                foreach (PropertyData p in mo1.Properties)
                {
                    Console.WriteLine(p.Name + "--------" + p.Value);
                }
            }


ManagementObjectSearcher mos1 = new ManagementObjectSearcher(@"select * from Win32_USBControllerDevice");
            foreach (ManagementObject mo1 in mos1.Get())
            {
                foreach (PropertyData p in mo1.Properties)
                {
                    Console.WriteLine(p.Name + "--------" + p.Value);
                }
            }


////////////////////////////////隨插即用的某一個USB裝置//////////////////////////////////
ManagementObjectSearcher mos = new ManagementObjectSearcher(@"select * from Win32_PnPEntity where DeviceID like ‘%usb%mi%‘ and (Manufacturer like ‘microsoft‘ or Service=‘usbvideo‘)");
            foreach (ManagementObject mo in mos.Get())
            {
                foreach (PropertyData p in mo.Properties)
                {
                    if ((p.Name == "Caption") || (p.Name == "ClassGuid") || (p.Name == "DeviceID") || (p.Name == "PNPDeviceID"))
                    {
                        Console.WriteLine(p.Name + "--------" + p.Value);
                    }
                }
            }

 

C#讀取USB的一些相關資訊

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.