【问题标题】:What's the difference between DeviceID and PNPDeviceID?DeviceID 和 PNPDeviceID 有什么区别?
【发布时间】:2017-03-18 13:46:38
【问题描述】:

MSDN 提到他们:

设备ID:

用于唯一命名逻辑设备的地址或其他识别信息。

PNPDeviceID:

表示逻辑设备的 Win32 即插即用设备标识符。

但我还是不太明白。对于我的 USB 设备,它们的值是相同的。这是否意味着PNPDeviceID 是即插即用设备的DeviceID

【问题讨论】:

  • 设备驱动程序可以选择公开设备的逻辑设备名称,它比神秘的即插即用 ID 更易于使用。就像模拟串行端口的“COM3”一样。绝大多数设备都没有,而且它们的设备 ID 与即插即用 ID 相同,集线器当然不会。

标签: c# usb wmi


【解决方案1】:

区别至少在于限定符(特别是key)。 从内部复制 WMI Explorer:

*设备ID - String

预选赛CIM_KeyCIMTYPEDescriptionkeyMappingStringsMaxLenOverrideread p>

DeviceID 属性是地址或其他识别信息 唯一标识 USBHub。

PNPDeviceID - String

预选赛CIMTYPEDescriptionread

表示逻辑设备的 Win32 即插即用设备 ID。

如需更详细的了解,请尝试下一个 PowerShell 代码 sn-p:

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
    }

输出

Name     Value   Type IsLocal IsArray Origin            Qualifiers                       
----     -----   ---- ------- ------- ------            ----------                       
DeviceID       String   False   False CIM_LogicalDevice {CIM_Key, CIMTYPE, key, Mappin...


Qualifiers of DeviceID:

Name              Value IsAmended IsLocal PropagatesToInstance PropagatesToSubclass IsOve
                                                                                    rrida
                                                                                      ble
----              ----- --------- ------- -------------------- -------------------- -----
CIM_Key            True     False   False                False                 True  True
CIMTYPE          string     False    True                 True                 True  True
key                True     False    True                 True                 True False
MappingStrings       {}     False    True                False                 True  True
MaxLen              256     False    True                False                 True  True
Override       DeviceID     False    True                False                 True  True
read               True     False    True                False                 True  True



Name        Value   Type IsLocal IsArray Origin            Qualifiers     
----        -----   ---- ------- ------- ------            ----------     
PNPDeviceID       String   False   False CIM_LogicalDevice {CIMTYPE, read}


Qualifiers of PNPDeviceID:

Name    Value  IsAmended IsLocal PropagatesToInstance PropagatesToSubclass IsOverridable
----    -----  --------- ------- -------------------- -------------------- -------------
CIMTYPE string     False   False                 True                 True          True
read    True       False   False                False                 True          True

【讨论】:

  • “唯一标识 USBHub”,所以基本上 PNPDeviceID 是所有 PC 的唯一标识符?谢谢
猜你喜欢
  • 2010-10-02
  • 2011-12-12
  • 2010-09-16
  • 2012-03-14
  • 2012-02-06
  • 2011-02-25
  • 2011-11-22
  • 2015-03-26
  • 2013-08-19
相关资源
最近更新 更多