Tom.Cat
禁止发言
禁止发言
  • 注册日期2001-10-10
  • 最后登录2019-07-29
  • 粉丝1
  • 关注0
  • 积分-53792分
  • 威望197411点
  • 贡献值0点
  • 好评度5点
  • 原创分0分
  • 专家分0分
  • 社区居民
阅读:843回复:5

老猪,进来,问个问题

楼主#
更多 发布于:2004-01-28 15:42
用户被禁言,该主题自动屏蔽!
猪爸爸
论坛版主
论坛版主
  • 注册日期2001-08-15
  • 最后登录2018-06-01
  • 粉丝0
  • 关注0
  • 积分1040分
  • 威望438点
  • 贡献值0点
  • 好评度129点
  • 原创分0分
  • 专家分0分
  • 社区居民
沙发#
发布于:2004-01-28 15:54
有什么好处 :D
不过这问题我也不会解决!555
我帮你问问 ;)
俺是[color=red]猪爸爸[/color] [img]http://bbs.zndev.com/image/post/smile/mrgreen.gif[/img] 【[url=http://shop33397538.taobao.com][color=red]猪爸爸本本美容[/color][/url]】 BELKIN贝尔金核心代理
Tom.Cat
禁止发言
禁止发言
  • 注册日期2001-10-10
  • 最后登录2019-07-29
  • 粉丝1
  • 关注0
  • 积分-53792分
  • 威望197411点
  • 贡献值0点
  • 好评度5点
  • 原创分0分
  • 专家分0分
  • 社区居民
板凳#
发布于:2004-01-28 15:55
用户被禁言,该主题自动屏蔽!
猪爸爸
论坛版主
论坛版主
  • 注册日期2001-08-15
  • 最后登录2018-06-01
  • 粉丝0
  • 关注0
  • 积分1040分
  • 威望438点
  • 贡献值0点
  • 好评度129点
  • 原创分0分
  • 专家分0分
  • 社区居民
地板#
发布于:2004-01-28 15:59
你为什么把问题给删了啊?
我写wdm驱动,怎么用DO_DIRECT_IO模式,怎么在IoControl里一访问MdlAddress就死机,调试提示是访问内存错误,这是怎么回事?
俺是[color=red]猪爸爸[/color] [img]http://bbs.zndev.com/image/post/smile/mrgreen.gif[/img] 【[url=http://shop33397538.taobao.com][color=red]猪爸爸本本美容[/color][/url]】 BELKIN贝尔金核心代理
Tom.Cat
禁止发言
禁止发言
  • 注册日期2001-10-10
  • 最后登录2019-07-29
  • 粉丝1
  • 关注0
  • 积分-53792分
  • 威望197411点
  • 贡献值0点
  • 好评度5点
  • 原创分0分
  • 专家分0分
  • 社区居民
地下室#
发布于:2004-01-28 20:53
用户被禁言,该主题自动屏蔽!
jinghuiren
驱动巨牛
驱动巨牛
  • 注册日期2002-06-01
  • 最后登录2008-10-27
  • 粉丝0
  • 关注0
  • 积分291分
  • 威望460点
  • 贡献值0点
  • 好评度428点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2004-01-28 22:15
会不会应用程序传到驱动里的BUFFER是NULL的?
或者你访问的方法不对?
下面是一个usb的ioctl例程:
BOOL bResult = FALSE;
char *Buffer = (char *)malloc(1024);
unsigned long ulLength = 1024;
unsigned long nBytes = 0;

bResult = DeviceIoControl(hDevice,//设备句柄
IOCTL_ISP1581_BULK_READ,
NULL,
0,
Buffer,
uiLength,
&nBytes,
NULL);//读取数据
if(!bResult)
{
//如果是同步传输此处加上报错信息。
}

驱动里作如下操作:
ULONG  bufferLength = MmGetMdlByteCount(Irp->MdlAddress);
UsbBuildInterruptOrBulkTransferRequest(urb, //ptr to urb   urbSize,             //size of urb
pipeHandle,                   //usbd pipe handle
NULL,                         //TransferBuffer
Irp->MdlAddress,//NULL,              //mdl
bufferLength,                 //bufferlength
transferFlags,                //flags
NULL);                        //link

可以用softice跟踪到驱动里,看看对应的参数是否是期望的。

游客

返回顶部