在USB\VID_05A9&PID_2800\5&1BFE1C47&0&8裏面,USB表明設備類型,
5&1BFE1C47&0&8表明設備鏈接位置,包括總線位置,控制器位置,控制器編號,端口編號這幾項,
而VID_05A9&PID_2800則是設備信息,USB的驅動也正是依賴於這個,
VID實際上是Vendor ID(生產廠商ID),PID則是Product ID(產品ID),分別表明生產商的編號和生產商內部的產品編號。
原則上說一個USB設備必須有PID和VID,屬於USB接口芯片的可選設置。ide
///////////////////////////即插即用總線信息/////////////////////////////
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);
}
}ui
/////////////////////////////////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);
}
}接口
//////////////////////USB控制器以及當前與他們相關聯的設備的集合//////////////////////
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);
}
}
}it