C# 什么';DeviceID和PNPDeviceID之间的区别是什么?

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

提及它们为:

设备ID:

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

PNPDeviceID:

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


但我还是不太明白。对于我的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的唯一标识符?谢谢