阅读:2075回复:9
如何打开设备,是否可以不使用GUID就可以获得设备名称?
我想连接一个已经在系统中安装完驱动的USB设备(比如U盘),但是不知道GUID,怎么打开这个设备呢?我想了一个笨办法,在注册表中找这个设备的GUID,请问各位有没有好点的办法?
还有我以前看了一篇关于使用API操作U盘的文章,谁知道在哪里啊,我找不到了。谢谢~~~ |
|
沙发#
发布于:2005-01-05 16:21
我看了USBView,里面是用打开文件的发生查询的,有没有其他办法查询所有设备呢?
|
|
板凳#
发布于:2005-01-05 16:37
硬盘的Device Interface Class GUID在ddk的ntddstor.h文件里边有定义。是 {53f56307-b6bf-11d0-94f2-00a0c91efb8b}
你可以依次调用 SetupDiGetClassDevs SetupDiEnumDeviceInterfaces SetupDiGetDeviceInterfaceDetail 来得到disk device interface class下的所有设备。包括普通硬盘设备和可移动硬盘设备。 当然你也可以察看 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\DeviceClasses\{53f56307-b6bf-11d0-94f2-00a0c91efb8b} 下边的key,可以得到比较直观的印象。 hehe,给点分吧。 |
|
地板#
发布于:2005-01-05 17:41
硬盘的Device Interface Class GUID在ddk的ntddstor.h文件里边有定义。是 {53f56307-b6bf-11d0-94f2-00a0c91efb8b} 用GUID_DEVINTERFACE_DISK遍历磁盘设备,然后用SetupDiGetDeviceRegistryProperty + SPDRP_ENUMERATOR_NAME,判断结果是否为USBSTOR,如果是,则为USB存储设备。 |
|
|
地下室#
发布于:2005-01-05 17:52
[quote]硬盘的Device Interface Class GUID在ddk的ntddstor.h文件里边有定义。是 {53f56307-b6bf-11d0-94f2-00a0c91efb8b} 用GUID_DEVINTERFACE_DISK遍历磁盘设备,然后用SetupDiGetDeviceRegistryProperty + SPDRP_ENUMERATOR_NAME,判断结果是否为USBSTOR,如果是,则为USB存储设备。 [/quote] 讲得很清楚了 |
|
|
5楼#
发布于:2005-01-05 21:32
谢谢各位指点,分先送给各位了。
我刚学希望能再详细些,哪里有例子呢? |
|
6楼#
发布于:2005-01-05 21:38
我只是拿U盘举个例子,我想实现列举获取所有USB设备(在树或列表中显示),再根据用户的选择得到特定设备的句柄。
|
|
7楼#
发布于:2005-01-06 00:28
thk
|
|
8楼#
发布于:2005-01-06 08:56
我只是拿U盘举个例子,我想实现列举获取所有USB设备(在树或列表中显示),再根据用户的选择得到特定设备的句柄。 枚举所有的USB控制器比较容易,但是要再枚举控制器上的具体设备(磁盘,打印机,扫描仪,等等)可能就比较麻烦,因为USB设备的种类实在是太多了。 |
|
|
9楼#
发布于:2005-01-06 16:49
来晚了,分分光了
|
|
|