码迷,mamicode.com
首页 > Windows程序 > 详细

C#读取USB的一些相关信息

时间:2015-03-18 17:50:26      阅读:1811      评论:0      收藏:0      [点我收藏+]

标签:

在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的一些相关信息

标签:

原文地址:http://www.cnblogs.com/junior/p/4347674.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!