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. 單片機接口與LED驅動器
- 4. 如何確定驅動器的類型?
- 5. 從驅動器號獲取特定設備類型
- 6. 磁盤部分如果根據卷號或驅動器類型?
- 7. 谷歌驅動器MIME類型
- 8. 接口類型的動作屬性
- 9. Windows:如何將驅動器符號鏈接到另一個驅動器?
- 10. 下一個可用的驅動器號後C:驅動器
- 11. 驅動器號與DevicePath
- 12. 驅動器號在C#
- 13. vbscript更改驅動器號
- 14. 列出驅動器號和文件系統不是$ null的驅動器號
- 15. 如何爲JNDI InitialContext的PROVIDER_URL指定驅動器號(窗口)
- 16. 接口泛型類
- 17. 的Plone 4.3.3 - 模式驅動類型 - plone.directives.form不進口
- 18. Python檢測USB驅動器,然後分配驅動器號?
- 19. 自動映射,其類型爲接口
- 20. java中的類型接口
- 21. 不同類型的接口
- 22. 演員的接口類型
- 23. 如何區分C#4.0中的硬盤驅動器型號
- 24. 實體框架5 ASP.Net實現接口型號類型
- 25. NDIS和微型端口驅動程序
- 26. 接口及其子類及其類型和子類型的泛型迭代器
- 27. 映射驅動器的Linux符號鏈接
- 28. 獲取硬盤的驅動器號
- 29. 列出VC++中的USB驅動器號
- 30. 如何獲取pendrive的驅動器號
嗨...我需要過濾的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