liger
驱动牛犊
驱动牛犊
  • 注册日期2001-05-03
  • 最后登录
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:5786回复:13

usb制造商特定请求

楼主#
更多 发布于:2001-08-01 01:00
下面代码中:
        UsbBuildVendorRequest(urb,
                              URB_FUNCTION_VENDOR_DEVICE,
                              sizeof(struct _URB_CONTROL_VENDOR_OR_CLASS_REQUEST),
                              GetData ? USBD_TRANSFER_DIRECTION_IN :
                                  0,
                              0,
                              Request,
                              Value,
                              Index,
                              localBuffer,
                              NULL,
                              length,
                              NULL);
Request,Value,Index是什么意思?
能不能给我一个具体的数值?只要是能用的。
谢谢了。

最新喜欢:

mz_suyamz_suy...
不用
liger
驱动牛犊
驱动牛犊
  • 注册日期2001-05-03
  • 最后登录
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2001-08-01 01:03
我给出了一个数值,如
                              Request=0x0c,
                              Value=0x01,
                              Index=0x0,
这时机器立马蓝屏,说是usbd出错了。
不用
rayyang2000
管理员
管理员
  • 注册日期2001-03-23
  • 最后登录2012-09-13
  • 粉丝3
  • 关注0
  • 积分1036分
  • 威望925点
  • 贡献值3点
  • 好评度823点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2001-08-01 09:19
Request, Value, Index都是你自己定义的,只要你的firmware认识,格式参考usb spec 第9章。这些都是普通的数值,也不是指针,怎么会BSOD呢?你还是看看其他参数比如localBuffer是否是有效的指针吧!
天天coding-debugging中----超稀饭memory dump file ======================================================== [b]Windows Device Driver Development and Consulting Service[/b] [color=blue][url]http://www.ybwork.com[/url][/color] ========================================================
lcy
lcy
驱动牛犊
驱动牛犊
  • 注册日期2001-07-17
  • 最后登录2005-05-25
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2001-08-01 23:24
 Requst  是你的请求代码,由下位机固件需要而定,Wvalue,Index其实是你这个请求代码,所带的参数,这个厂商请求和你调用子程是一样的道理,你要清楚固件需要什么样的厂商请求!!!!
dallas
驱动牛犊
驱动牛犊
  • 注册日期2001-07-28
  • 最后登录2003-01-03
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2001-08-02 09:53
request就是USB说明书中的bmrequest
index就是USB说明书中的bwindex
value就是USB说明书中的bwvalue
这些都是你自己定义的,但request不要和标准的冲突
rayyang2000
管理员
管理员
  • 注册日期2001-03-23
  • 最后登录2012-09-13
  • 粉丝3
  • 关注0
  • 积分1036分
  • 威望925点
  • 贡献值3点
  • 好评度823点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2001-08-02 10:43
[QUOTE]原本由 dallas 发表
[B]request就是USB说明书中的bmrequest
index就是USB说明书中的bwindex
value就是USB说明书中的bwvalue
这些都是你自己定义的,但request不要和标准的冲突 [/B][/QUOTE]
不会冲突的。bmRequestType的D6..5已经决定了它是Vendor Request,不是Standard Request。
天天coding-debugging中----超稀饭memory dump file ======================================================== [b]Windows Device Driver Development and Consulting Service[/b] [color=blue][url]http://www.ybwork.com[/url][/color] ========================================================
halley
驱动小牛
驱动小牛
  • 注册日期2001-03-23
  • 最后登录2002-10-10
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2001-08-02 11:07
假设我的usb硬件设备是一个存储设备。只要求读写两种请求。我想问一下,我是不是可以这样做:
在硬件上:定义两种request,比如说request=1是读,request=2是写。value是读写的地址,(index不知道要写什么)。具体固件怎么读写省略。
在驱动程序中:也就有两个buildvendorrequest,一个是请求读,定义为:request=1,一个是请求写,定义为:request=2。value也就是所要读写的地址。

不知道我的想法对不对?
[halley 编辑于 2001-08-02 12:38]
yacht
驱动牛犊
驱动牛犊
  • 注册日期2001-06-22
  • 最后登录
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2001-08-03 14:48
作为USB标准接口ControlVendorCommand包括了厂商自定义命令,可以参看INTELCAM程序中的使用,当然这些命令完全取决你的USB厂商的SPEC,我想他们应该有SPEC提供给你,否则你的设置成功几率太小。
rayyang2000
管理员
管理员
  • 注册日期2001-03-23
  • 最后登录2012-09-13
  • 粉丝3
  • 关注0
  • 积分1036分
  • 威望925点
  • 贡献值3点
  • 好评度823点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2001-08-03 15:45
[QUOTE]原本由 halley 发表
[B]假设我的usb硬件设备是一个存储设备。只要求读写两种请求。我想问一下,我是不是可以这样做:
在硬件上:定义两种request,比如说request=1是读,request=2是写。value是读写的地址,(index不知道要写什么)。具体固件怎么读写省略。
在驱动程序中:也就有两个buildvendorrequest,一个是请求读,定义为:request=1,一个是请求写,定义为:request=2。value也就是所要读写的地址。

不知道我的想法对不对?
[halley 编辑于 2001-08-02 12:38] [/B][/QUOTE]
U are right.
不过,wIndex的意思更贴近address。
天天coding-debugging中----超稀饭memory dump file ======================================================== [b]Windows Device Driver Development and Consulting Service[/b] [color=blue][url]http://www.ybwork.com[/url][/color] ========================================================
halley
驱动小牛
驱动小牛
  • 注册日期2001-03-23
  • 最后登录2002-10-10
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2001-08-06 18:06
[QUOTE]原本由 rayyang2000 发表
U are right.
不过,wIndex的意思更贴近address。 [/B][/QUOTE]

现在明白了很多的,感谢杨版主的解答!!

rayyang2000
管理员
管理员
  • 注册日期2001-03-23
  • 最后登录2012-09-13
  • 粉丝3
  • 关注0
  • 积分1036分
  • 威望925点
  • 贡献值3点
  • 好评度823点
  • 原创分0分
  • 专家分0分
10楼#
发布于:2001-08-07 09:10
[QUOTE]原本由 halley 发表
[B][QUOTE]原本由 rayyang2000 发表
U are right.
不过,wIndex的意思更贴近address。 [/B][/QUOTE]

现在明白了很多的,感谢杨版主的解答!!

 [/B][/QUOTE]
不客气.
天天coding-debugging中----超稀饭memory dump file ======================================================== [b]Windows Device Driver Development and Consulting Service[/b] [color=blue][url]http://www.ybwork.com[/url][/color] ========================================================
lujunql
驱动小牛
驱动小牛
  • 注册日期2004-06-09
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分21分
  • 威望3点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
11楼#
发布于:2004-10-29 09:56
[QUOTE]原本由 halley 发表
[B]假设我的usb硬件设备是一个存储设备。只要求读写两种请求。我想问一下,我是不是可以这样做:
在硬件上:定义两种request,比如说request=1是读,request=2是写。value是读写的地址,(index不知道要写什么)。具体固件怎么读写省略。
在驱动程序中:也就有两个buildvendorrequest,一个是请求读,定义为:request=1,一个是请求写,定义为:request=2。value也就是所要读写的地址。

不知道我的想法对不对?
[halley 编辑于 2001-08-02 12:38] [/B]

U are right.
不过,wIndex的意思更贴近address。 [/quote]

感谢!我也明白了!
ke077
驱动牛犊
驱动牛犊
  • 注册日期2007-03-14
  • 最后登录2010-10-28
  • 粉丝1
  • 关注0
  • 积分362分
  • 威望134点
  • 贡献值0点
  • 好评度72点
  • 原创分0分
  • 专家分0分
12楼#
发布于:2007-04-09 17:30
不愧是斑竹
  终于搞定了vendor
qiuzhenqing
驱动牛犊
驱动牛犊
  • 注册日期2006-07-13
  • 最后登录2009-11-09
  • 粉丝0
  • 关注0
  • 积分610分
  • 威望62点
  • 贡献值0点
  • 好评度61点
  • 原创分1分
  • 专家分0分
13楼#
发布于:2007-08-30 17:08
没有通用性 呵呵
游客

返回顶部