查找哪个驱动器对应于WinXP中的哪个USB大容量存储设备

查找哪个驱动器对应于WinXP中的哪个USB大容量存储设备,第1张

概述查找哪个驱动器对应于WinXP中的哪个USB大容量存储设备

我有几个USB驱动器连接到一个WinXP SP3电脑,我需要以编程方式告诉他们 – 我需要find哪个驱动器号对应哪个设备 (在这种情况下,一个设备〜一个卷)。 我可以使用mountvol来获得他们的卷ID和驱动器号,看起来像这样:

C:windows> mountvol \?Volume{bdb681b2-1ddf-11dd-bf71-806d6172696f} C: \?Volume{6a8784f8-7406-11dd-a8c3-001e8c829b67} A:

另外,使用devcon或设备pipe理器,我可以看到设备ID:

C:windows> devcon resources *STOR* STORAGEREMOVABLEMEDIA7&190C24E5&0&RM name: Generic volume STORAGEVolUME1&30A96598&0&SIGNATURED84ED84EOFFSET7E00LENGTH2543150400 name: Generic volume USBSTORdisK&VEN_KINGSTON&PROD_DATATRAVELER2.0&REV_1.00803240752536&0 name: Kingston DataTraveler2.0 USB Device

但是,我还没有find一种方法来链接设备ID和卷ID /字母,如“安全删除硬件”对话框(因此,我认为这是可能的):

通用量 – 答:sof/windows/safely_remove.png

在linux中知道一个设备特殊文件主要和次要的数字

主号码次号码和驾驶员加载

linux wake_up_interruptible()没有效果

IoGetDeviceObjectPointer()返回的设备对象上的I / O使用IRP

在linux内核模块中获取现有设备类(struct class)的指针

正如您所看到的,这些是我在devcon中看到的和Mountvol所看到的相同的设备。 但到目前为止,我还没有find他们之间的联系。

我发现了一些相关的 问题 ,但似乎使用的方法是“无论你首先find的是你的USB设备”,这对我来说不是很有用,因为会有几个类似的设备(相同的供应商,通常是相同的产品types) 连接的。

编辑:

@MSalters的答案看起来很有希望:在XP上, HKEY_LOCAL_MACHInesYstemMountedDevices具有REG_BINARY值DosDevicesx:其中x是[AZ]); 注释是正确设备(UTF-16)的名称


DosDevicesA: =“ ??STORAGE#RemovableMedia#7&190c24e5&0&RM#{53f5630d-b6bf-11d0-94f2-00a0c91efb8b}" ,对应


STORAGEREMOVABLEMEDIA7&190C24E5&0&RM在设备列表中看到)。

将看看如果这是要走的路。

在java中识别一个新的设备

检测接口是否处于与C的混杂模式

如何以编程方式禁用系统设备?

停止Perl的'tIE'来重置我的串行接口上​​的Arduino /脉冲DTR

是否有(免费)窗口testing/虚拟打印设备?

这是一个不平凡的问题。 据我所知,没有官方API。 所以,你需要一个未公开的API:注册表。 HKEY_LOCAL_MACHInesYstemMountedDevices包含驱动器号和卷ID的条目。 如果你看看实际的数据,你会发现它识别的驱动器。 将二进制数据看作一个Unicode字符串。 它会指向您HKEY_LOCAL_MACHInesYstemCurrentControlSetENUM 。 但是,XP和Vista的确切区别在哪些子键,以及如何。 (Vista更容易,所以先尝试一下)。

有一个官方API来做到这一点。 看到这个例子: http : //www.codeproject.com/KB/system/RemoveDriveByLetter.aspx

原则是windows上的每个存储卷都被分配一个全局编号。 首先,你问你的驱动器号码(打开“ X:”并发送一个IOCTL_STORAGE_GET_DEVICE_NUMBER请求)。 其次,你会遍历所有的磁盘设备,并询问每个磁盘设备的编号(通过打开它,通过不同的路径,所以你不能只是字符串比较)。

一旦找到与您查询驱动器时携带相同编号的磁盘设备,就知道您有赢家。

总结

以上是内存溢出为你收集整理的查找哪个驱动器对应于WinXP中的哪个USB大容量存储设备全部内容,希望文章能够帮你解决查找哪个驱动器对应于WinXP中的哪个USB大容量存储设备所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1274594.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-08
下一篇 2022-06-08

发表评论

登录后才能评论

评论列表(0条)

保存