物理盘,逻辑盘对应?

 首先通过指定GUID,用SetupDiGetClassDevs,得到Harddisk类和Volume两大类设备的所有设备信息。  
DEFINE_GUID /  
(HARDDISK_GUID,   0x53f56307,   0xb6bf,   0x11d0,   0x94,   0xf2,   0x00,   0xa0,   0xc9,   0x1e,   0xfb,   0x8b);  
DEFINE_GUID /  
VOLUME_GUID,   0x53f5630d,   0xb6bf,   0x11d0,   0x94,   0xf2,   0x00,   0xa0,   0xc9,   0x1e,   0xfb,   0x8b);  
   
hDevInfoSet   =   SetupDiGetClassDevsW(lpGuid,   NULL,NULL,DIGCF_PRESENT|DIGCF_INTERFACEDEVICE);  
   
接着用SetupDiEnumDeviceInterfaces依次枚举设备信息集中各个设备的接口信息。  
如果成功,进一步调用SetupDiGetDeviceInterfaceDetail得到每个设备的详细信息。  
然后依次用CM_Get_Parent、CM_Get_Device_ID取得该设备实例的device instance   ID   这个东西是类似下面这样的串:PCIIDE/IDECHANNEL/4&E3EC092&0&0、USB/VID_0D7D&PID_0150/4D3B190303C0。  
想必你已经注意到USB设备都以USB开头,同时包含了该设备的PID和VID,这样就可以判断是否是特定厂商的设备。接着要取得该USB设备对应的盘符,因为每个设备可能包含多个卷,所以用上面类似的方法取得所有卷的信息,通过比对设备号可以判断多个卷是否属于同一个设备,接着用卷设备的物理设备名称反查符号连接(QueryDosDevice)就能得到该卷对应的盘符,进一步可以得到,一个物理磁盘所有卷的盘符。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值