0
A
回答
0
您可以使用GetDriveType获得基本的接口类型(如:可移动设备,CDROM,RAMDisk中)驱动器号,也看到了最后的评论在该页面的底部可移动设备上多一点信息。还检查了SetupDiGetDeviceRegistryProperty和DeviceIoControl
她是我能拿出最好的例子(未经测试,因为我没有WDK/DDK)
bool IsUSBDevice(const char* szDrivePath, bool& bRemovable)
{
if(GetDriveType(szDrivePath) != DRIVE_REMOVABLE)
return false;
HANDLE hDevice = CreateFile(szDrivePath,0,FILE_SHARE_READ|FILE_SHARE_WRITE,NULL,OPEN_EXISTING,0,NULL);
if(hDevice == INVALID_HANDLE_VALUE)
return false;
STORAGE_PROPERTY_QUERY pQuery = {0};
pQuery.PropertyId = StorageDeviceProperty;
pQuery.QueryType = PropertyStandardQuery;
STORAGE_DEVICE_DESCRIPTOR pDeviceDesc = {0};
pDeviceDesc.Size = sizeof(pDeviceDesc);
DWORD dwWritten = 0;
if(DeviceIoControl(hDevice,IOCTL_STORAGE_QUERY_PROPERTY,&pQuery,sizeof(STORAGE_PROPERTY_QUERY),pDeviceDesc,sizeof(pDeviceDesc),&dwWritten,NULL))
{
CloseHandle(hDevice);
return ((bRemovable = pDeviceDesc.RemovableMedia) && pDeviceDesc.BusType == BusTypeUsb);
}
else
CloseHandle(hDevice);
return false;
}
相关问题
- 1. Qt ::用户驱动关闭的Qt :: Drawer类型窗口信号
- 2. 如何确定驱动器的类型?
- 3. 从驱动器号获取特定设备类型
- 4. 接口类型的动作属性
- 5. 下一个可用的驱动器号后C:驱动器
- 6. 如何为JNDI InitialContext的PROVIDER_URL指定驱动器号(窗口)
- 7. 接口泛型类
- 8. Python检测USB驱动器,然后分配驱动器号?
- 9. 自动映射,其类型为接口
- 10. 演员的接口类型
- 11. java中的类型接口
- 12. 接口及其子类及其类型和子类型的泛型迭代器
- 13. 获取硬盘的驱动器号
- 14. 驱动器号与FileSystemObject的用法 - VBScript
- 15. 如何获取pendrive的驱动器号
- 16. 列出VC++中的USB驱动器号
- 17. 驱动程序启动类型属性
- 18. NDIS中级驱动程序接口C#
- 19. 流接口驱动程序入门
- 20. 如何使用Powershell查找新插入的USB驱动器的驱动器号?
- 21. Android谷歌驱动器集成 - 驱动器不连接
- 22. 接口的泛型类型约束?
- 23. 检测接口的泛型类型
- 24. 的Spring IoC和泛型接口类型,
- 25. 具有不同参数类型和编号的接口
- 26. 如何从Windows 7的驱动器号中获取可移动设备的物理驱动器号?
- 27. 搜索C驱动器的所有存在的文件类型
- 28. sata硬盘驱动器暴露的是什么类型的api?
- 29. VMWare服务器:虚拟硬盘驱动器类型
- 30. 安装ndis微型端口驱动程序时Wireshark不显示接口
嗨...我需要过滤的USB设备接口类型 – user198725878 2010-07-01 12:52:31
请查看底部的注释和/或SetupDiGetDeviceRegistryProperty中的USB驱动器,DeviceIoControl也会给出一些关于删除策略的信息等。 – Necrolis 2010-07-01 12:54:25
你能告诉我一个驱动器号的示例 – user198725878 2010-07-01 13:07:38