阅读:3202回复:20
USB口的简单问题
我的机子有两个USB口,我要在其中一个口上插入一个CF卡Reader,我的程序要如何才能判断某一时刻这个读卡器到底插在哪个USB口上.请大虾一定要帮忙啊.
|
|
最新喜欢:afei_w...
|
沙发#
发布于:2003-05-16 18:21
枚举所有的设备啊!
|
|
板凳#
发布于:2003-05-19 09:43
有枚举整个机器上驱动器的函数吗?
我用了一个枚举所有可拆除设备的API,可惜达不到要求. |
|
|
地板#
发布于:2003-05-19 17:19
各位大侠,我的意思可能不明了,也就是想操作指定的USB口上的设备。所以我想要知道到底在哪个口上插了设备。
|
|
|
地下室#
发布于:2003-05-19 18:25
去看ddk中的usbview的代码
|
|
|
5楼#
发布于:2003-05-20 02:04
上面那位说得对,看USBVIEW
|
|
6楼#
发布于:2003-05-20 10:03
呵呵,各位大侠多谢捧场啊。不过我可是超级菜鸟,你们给我明说了不就省了小弟多少汗水了么?
|
|
|
7楼#
发布于:2003-05-20 10:47
一般人没事也不会去研究那个,怎么给你说明白啊?
你老弟不会这么懒吧? |
|
|
8楼#
发布于:2003-05-22 10:05
各位大哥,我下载了WIN2KDDK,但是装上了还是看不懂啊,哪有什么USB VIEW啊,USB口可不可以用CreateFile(\"usbscan0\")象打开串口那样打开,第一个USB口叫什么名字(usbscan0?)。
|
|
|
9楼#
发布于:2003-05-22 14:32
我顶
|
|
|
10楼#
发布于:2003-05-22 15:27
USBview是DDK里面的例程,你先看看源代码吧
|
|
11楼#
发布于:2003-05-22 19:56
插入后,windows中的I/O管理器会自动读取USB设备的设备ID,然后根据设备ID来装入相应的驱动程序,由驱动程序创立设备对象;应用软件对这个USB设备操作时,只要指出设备对象名即可,不必知道它到底接在那一个端口。
设备对象名是什么,你只能去查驱动程序了。 |
|
12楼#
发布于:2003-05-23 14:59
终于解决了两个USB口上判断是否接入设备的问题了,多谢各位大虾的帮忙!!!!!!
但接下来又有一个问题,哪就是我知道USB口上接了设备,但如何才能获得这个设备在文件系统里的盘符名,如G:,F:等。 |
|
|
13楼#
发布于:2003-05-27 09:44
各位大哥一定要帮我啊,不然的话................
一定一定啊。 |
|
|
14楼#
发布于:2003-05-28 17:02
本来要给分的,谁知道我刚来不几天,呵呵,可用分不足,唉......
|
|
|
15楼#
发布于:2003-05-28 17:03
问题是这样的,就是我通过DeviceIoControl()的方式枚举HCD0而得到了USB口上的连接情况,也就是知道我的机子上哪个USB口有设备连上,但是假如我在第一个USB口上连了一个CF READER,我通过上面的方法能够知道有设备连在这儿,也能通过IOCTL_USB_GET_NODE_CONNECTION_DRIVERKEY_NAME得到这个设备的在注册表里HKLM\\\\SYSTEM\\\\CurrentControlSet\\\\Enum\\\\Usb\\\\Vid_XXX&Pid_XXX\\\\..\\\\DRIVER的值,我通过查找注册的方法也能得到这个设备的SymbolicName,但是当我用这个名字来CreateFile(),想使用IOCTL_STORAGE_GET_DEVICE_NUMBER获得它的逻辑盘符就老是说调用不成功,还请各位大侠多多指点,如果我用这个设备对应的盘符如(G:)来CreateFile()后再获取其逻辑盘符就能调用成功。难道我上面得到的SymbolicName不是我这个设备的SymbolicName?????
|
|
|
16楼#
发布于:2003-05-28 17:06
我参照USBVIEW里的做法,做到了能够判断HUB的第一口是否有设备相连,但如果是一个READER的话,我要如何才能得到它的逻辑盘符呢,有了它我就算大功告成了,到时一定讨分都要给大家。 :(
|
|
|
17楼#
发布于:2003-05-29 10:11
我枚举到USB HUB上某一个口上的设备,并且获得了它在注册表里的Driver值,通过这个值我得到了它的SymbolicName,我是想打开这个NAME,再调用CreateFile()打开它获得一个句柄,再调用DeviceIoControl(HANDLE, IOCTL_STORAGE_GET_DEVICE_NUMBER,,,,)以获得它的逻辑盘符,可是在调用这个获取盘符的时候就失败了,难道是由于我得到的这个SymbolicName不是我那个盘的NAME么???我查注册表发现当我插上一个USB READER的时候,这个SymbolicName才会出现的啊,应该这个值就是那个逻辑盘对应的名字才对啊??? :( :(
|
|
|
18楼#
发布于:2003-06-03 11:50
有谁知道GUID_DEVINTERFACE_DISK的值到底是多少,定义在哪个文件中,我搜遍了我的系统都找不到这个值啊。
|
|
|
19楼#
发布于:2003-06-05 18:34
GUID是不是应该在INF驱动文件中定义?
其它的小生就不清楚了 |
|
上一页
下一页