阅读:2056回复:8
请教如何得到VID,PID
如题。
各位大侠, 是用IRP_MN_QUERY_ID去取的吗? 可是,我试了下它好像已经把VID,PID替换成了具体的厂家和设备名了,如USBSTOR\Disk&Ven_Kingston&Prod_DataTraveler_2.0&Rev_PMAP这样。 怎样才能得到真正的VID,PID呢? |
|
沙发#
发布于:2008-06-12 04:16
DDK的usbview程序里面有
|
|
|
板凳#
发布于:2008-06-12 08:29
谢谢dragon_hn,可是我想在驱动里面得到,那该怎么办呢?
|
|
地板#
发布于:2008-06-12 19:59
读descriptor啊
|
|
地下室#
发布于:2008-06-13 10:50
可我的驱动并不直接放在BUS上,中间隔了微软的USBSTOR.SYS,如果往下发URB去取DESCRIPTOR会不会被过滤掉?
|
|
5楼#
发布于:2008-06-17 08:53
或者说,在usbstor.sys上面,发送什么IRP可以得到描述符?
大大们帮帮忙。 |
|
6楼#
发布于:2008-06-17 11:04
楼主可以找到代表你那个想查询的设备的物理设备对象(PDO),然后用IoGetDeviceProperty查询。这里,你想查询的那个设备的物理设备对象(PDO)应该是usbstor设备对象附着的那个设备对象(如果hub上没有其它过滤的话)。具体怎么查到那个PDO你自己试试看吧
|
|
7楼#
发布于:2008-06-17 15:57
直接向PDO发urb读descriptor不行?
|
|
8楼#
发布于:2008-06-18 09:40
终于搞清楚了,usbstor为一个U盘产生了两个DO,一个连到hub上,附着在U盘真正的PDO上。另一个却用来“冒充”PDO,Disk.sys,PartMgr.sys等等其它高层的都附着在这个“冒充”的PDO上。所以,往下发的IRP沿设备栈下传,最终其实是到达了那个“冒充”的PDO上。
也想在usbstor上做“手脚”的注意了,呵呵 |
|