acx
acx
驱动小牛
驱动小牛
  • 注册日期2001-04-28
  • 最后登录2012-05-07
  • 粉丝0
  • 关注0
  • 积分61分
  • 威望57点
  • 贡献值0点
  • 好评度4点
  • 原创分0分
  • 专家分0分
阅读:1501回复:9

关于USB过滤驱动程序

楼主#
更多 发布于:2001-12-26 11:34
在USB过滤驱动程序中,怎么拦截读interface descriptor的过程?
拦截到后可以修改吗?
很想你,身不由己……
zhuwz
驱动牛犊
驱动牛犊
  • 注册日期2001-12-10
  • 最后登录2002-01-25
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2001-12-26 14:42
关注
zhuwz
rayyang2000
管理员
管理员
  • 注册日期2001-03-23
  • 最后登录2012-09-13
  • 粉丝3
  • 关注0
  • 积分1036分
  • 威望925点
  • 贡献值3点
  • 好评度823点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2001-12-28 10:06
你的filter是插在哪里的?
天天coding-debugging中----超稀饭memory dump file ======================================================== [b]Windows Device Driver Development and Consulting Service[/b] [color=blue][url]http://www.ybwork.com[/url][/color] ========================================================
acx
acx
驱动小牛
驱动小牛
  • 注册日期2001-04-28
  • 最后登录2012-05-07
  • 粉丝0
  • 关注0
  • 积分61分
  • 威望57点
  • 贡献值0点
  • 好评度4点
  • 原创分0分
  • 专家分0分
地板#
发布于:2001-12-28 10:53
谢谢关注,是LowerFilters,我的问题已解决.
很想你,身不由己……
mushy
驱动牛犊
驱动牛犊
  • 注册日期2001-07-30
  • 最后登录2004-06-29
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2001-12-28 11:32
谢谢关注,是LowerFilters,我的问题已解决.
 


怎么解决的呀?说说看
共同学习,一块进步 勤学,多问,善于思考
无心化语
禁止发言
禁止发言
  • 注册日期2001-03-23
  • 最后登录2018-06-01
  • 粉丝0
  • 关注0
  • 积分-103分
  • 威望2点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
  • 社区居民
5楼#
发布于:2001-12-28 22:02
用户被禁言,该主题自动屏蔽!
acx
acx
驱动小牛
驱动小牛
  • 注册日期2001-04-28
  • 最后登录2012-05-07
  • 粉丝0
  • 关注0
  • 积分61分
  • 威望57点
  • 贡献值0点
  • 好评度4点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2001-12-29 14:53
先谢谢各位的关注
 我用ds2.5的usbfilt的例子改的在98下解决了,可是2000下一插上USB设备就会重启并且只有拔了设备才能进2000了。
  我用if(p->UrbControlDescriptorRequest.DescriptorType!=USB_CONFIGURATION_DESCRIPTOR_TYPE)来拦截
在完成例程里
UCHAR* pdc=(UCHAR*)p->UrbControlDescriptorRequest.TransferBuffer;
pdc +=14;
*pdc=0x03;
T<<\"usage is \"<<*pdc<<\"\\n\";
//T << *p; // display URB contents using KDebugOnlyTrace
在98下没发现问题可是用于2000时就会自动重启动后只有拔了设备才能再进2000。
在2000下我改为 UCHAR* pdc=(UCHAR*)p->UrbControlDescriptorRequest.TransferBuffer;
T<<\"Report Descriptor from device is:\\n\";
*pdc=0x09;
for (ULONG i=0; i < p->UrbControlDescriptorRequest.TransferBufferLength; i++, pdc++)
{
T<<\" \"<<*pdc;
}
T<<\"Intercept completed\\n\";

if(p->UrbControlDescriptorRequest.TransferBufferLength>=22)
{
pdc=(UCHAR*)p->UrbControlDescriptorRequest.TransferBuffer;
pdc+=14;
T<<\"\\naaaaaaaaa \"<<*pdc<<\"#\\n\";
*pdc=0x03;
}
(注上面的aaaaaaaa和#只是突出显示)
如果没有把*pdc=0x03;注释了就没问题,如果没注释掉就会重启,可是*pdc=0x09有没问题
谁能告诉我为什么?或者有什么更好的办法,先谢谢了!
很想你,身不由己……
WOOD
驱动老牛
驱动老牛
  • 注册日期2001-09-14
  • 最后登录2008-06-15
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2001-12-30 22:57
INTEL网站上找东西很费尽
zhuwz
驱动牛犊
驱动牛犊
  • 注册日期2001-12-10
  • 最后登录2002-01-25
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2001-12-31 10:24
你的pdc +=14;指哪个寄存器,*pdc=0x3和*pdc=0x9代表什么意思?
我刚刚接触,多指教!
zhuwz
acx
acx
驱动小牛
驱动小牛
  • 注册日期2001-04-28
  • 最后登录2012-05-07
  • 粉丝0
  • 关注0
  • 积分61分
  • 威望57点
  • 贡献值0点
  • 好评度4点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2001-12-31 15:41
谢谢各位,改写了几行代码,可以了。放完假后再总结一下吧!
很想你,身不由己……
游客

返回顶部