各位大虾 :如何判断一个储存设备是usb接口的移动硬盘呢?

解决方案 »

  1.   

    首先我们要得到系统中所有物理设备和所有卷设备的信息,这是通过SetupAPI族实现的:SetupDiGetClassDevsW、SetupDiEnumDeviceInterfaces和SetupDiGetDeviceInterfaceDetailW。这些信息中,我们关系的是物理设备对象的名称。
    得到这些信息后,我们针对每个物理设备,搜寻和它对应的卷设备,如果相对应,我们再进一步得到当前卷的别名,这可以通过两次反查DOS符号连接实现(QueryDosDeviceW)。至于怎么反查,可以这样做,先定义一个足够大的宽字符vector,然后先调用一次QueryDosDeviceW得到所有当前存在的DOS设备名称(指定第二个参数为NULL即可),然后依次取出一个DOS设备名称,查询其物理设备名称,看是否和我们当前要找的设备相匹配。
    因为一个卷设备可以对应多个别名,其中必有一个是它的盘符,笨办法可以用字符串搜索,看别名长度是否为2,后一个字符是不是为冒号:。这样就找到了USB硬盘的盘符。判断出盘符后,访问就比较容易了吧,用一般的文件读写操作应该就可以了
      

  2.   

    判断盘的属性.是可移除磁盘就是usb磁盘