我正在检测我们的专有USB设备何时连接到PC.当我们检测到这个时,我们得到相关的Win32_PnPEntity.我们希望使用此Win32_PnPEntity作为以下信息的来源:
- USB描述符VID,PID,REV,固件版本.
- 逻辑磁盘驱动器卷和分区信息以获取驱动器号信息.
我遇到的问题是试图弄清楚如何使用WMI和WMQ从Win32_PnPEntity获取逻辑磁盘和分区信息.该Win32_PnPEntity是服务类型USBSTOR(USB存储怎么想吗?)
以下是我目前正在进行的流程的描述:
我使用事件监视器监听Win32_USBControllerDevice,以便检测USB设备何时连接或从PC上分离.我使用以下查询来约束事件中发生的事情:
"SELECT*FROM
__InstanceOperationEvent WITHIN 1 WHERE TargetInstance
ISA'Win32_USBControllerDevice'和
TargetInstance .__ RELPATH LIKE'%DeviceId =%VID_1111%'"
当这个事件发生时我拉出" Win32_USBControllerDevice.Dependent "属性并拉出" DeviceId "值.然后,我使用Win32_PNPEntity类的" DeviceId "值来获取关联的实例.
对我来说,事情变得棘手......
我需要去的Win32_DiskDrive的Win32_PnPEntity实例涉及.我需要这个实例以获取卷信息,因此我可以获取每个分区的驱动器号.但我不知道如何达到它.
我经历了这个过程,因为Win32_PnPEntity提供了VID,PID用于事件监听和搜索的约束......但它也提供了我需要的固件版本.所以从这个角度我想要得到的Win32_DiskDrive为Win32_PnPEntity.
任何输入将不胜感激.
---提供更好的信息描述问题:
到目前为止我已经完成的步骤如下:
- 收听'__InstanceModificaitionEvent'获取'Win32_USBControllerDevice'
- 从'__InstanceModificaitionEvent'的'TargetInstnace' 获取'Win32_PnPEntity' - 从'Win32_PnPEntity
获取'DeviceId' '包含PID,VID信息.
我现在的问题是试图找到'Win32_LogicalDisk'和/或'Win32_DiskDrive'和/或'Win32_DiskPartition'或其他一些ASSOCIATOR或REFERENCES链接到USB设备附加的驱动器号已被分配给'Mass Storge'实例.
我可以想到这个问题的最佳方式在下面的"图表"中描述:
USB DEVICE
| |
----------| |----
| Win32_DiskDrive | …Run Code Online (Sandbox Code Playgroud) 我想现在ASP Classic/VB6 FOR EACH循环如何工作.我知道.NET IEnumberable/IEnumerator涉及到了,但是VB6/ASP Classic是如何做到的呢?
谢谢!