C# 什么';DeviceID和PNPDeviceID之间的区别是什么?
提及它们为: 设备ID: 用于唯一命名逻辑设备的地址或其他标识信息 PNPDeviceID: 指示逻辑设备的Win32即插即用设备标识符C# 什么';DeviceID和PNPDeviceID之间的区别是什么?,c#,usb,wmi,C#,Usb,Wmi,提及它们为: 设备ID: 用于唯一命名逻辑设备的地址或其他标识信息 PNPDeviceID: 指示逻辑设备的Win32即插即用设备标识符 但我还是不太明白。对于我的USB设备,它们的值是相同的。这是否意味着PNPDeviceID是即插即用设备的DeviceID。从内部复制: *设备ID-字符串 限定符:CIM_-Key,CIMTYPE,说明,键,映射字符串,MaxLen,覆盖,读取 DeviceID属性是地址或其他标识信息 唯一标识USBHub的 PNPDeviceID-String 限定符:C
但我还是不太明白。对于我的USB设备,它们的值是相同的。这是否意味着
PNPDeviceID
是即插即用设备的DeviceID
。从内部复制:
*设备ID-字符串
限定符:CIM_-Key
,CIMTYPE
,说明
,键,映射字符串
,MaxLen
,覆盖
,读取
DeviceID
属性是地址或其他标识信息
唯一标识USBHub的 PNPDeviceID-
String
限定符:CIMTYPE
,Description
,read
指示逻辑设备的Win32即插即用设备ID
有关详细信息,请尝试下一个PowerShell代码段:
Get-WmiObject -query "SELECT * FROM meta_class WHERE __class = 'Win32_USBHub'" |
Select-Object -ExpandProperty Properties |
Where-Object {$_.Name -match "DeviceID"} |
ForEach-Object {
$_ | Format-Table -AutoSize
"Qualifiers of $($_.Name):"
$_.Qualifiers | Format-Table -AutoSize -Wrap
}
输出:
名称值类型IsLocal IsArray原点限定符
---- ----- ---- ------- ------- ------ ----------
DeviceID字符串False False CIM_LogicalDevice{CIM_Key,CIMTYPE,Key,Mappin。。。
DeviceID的限定符:
名称值为改进的IsLocal PropagatesToInstance PropagatesToSubclass IsOve
瑞达
ble
---- ----- --------- ------- -------------------- -------------------- -----
CIM_键True False False True
CIMTYPE字符串False True True
键True False True True False
映射字符串{}False True False True
MaxLen 256假真假真
覆盖设备ID False True False True
读对错对错对错
名称值类型IsLocal IsArray原点限定符
---- ----- ---- ------- ------- ------ ----------
PNPDeviceID字符串False False CIM_LogicalDevice{CIMTYPE,read}
PNPDeviceID的限定符:
名称值为改进的IsLocal PropagatesToInstance PropagatesToSubclass IsOverridable
---- ----- --------- ------- -------------------- -------------------- -------------
CIMTYPE字符串False True True True
读真假假假真
设备驱动程序可以选择公开设备的逻辑设备名称,该名称比神秘的即插即用id更易于使用。例如模拟串行端口的“COM3”。绝大多数设备都没有逻辑设备名称,并且它们的设备id与即插即用id相同,集线器肯定不会。“它唯一地标识USBHub”,所以基本上PNPDeviceID是所有PC的唯一标识符?谢谢