blue44
驱动小牛
驱动小牛
  • 注册日期2006-05-17
  • 最后登录2012-03-31
  • 粉丝0
  • 关注0
  • 积分23分
  • 威望218点
  • 贡献值0点
  • 好评度84点
  • 原创分0分
  • 专家分0分
阅读:2566回复:8

请问vista下IoBuildPartialMdl的使用

楼主#
更多 发布于:2008-07-08 10:11
有USB驱动,在2000、XP下使用正常,在vista下运行到IoBuildPartialMdl就出错,不知道为什么,请大家赐教。
IoBuildPartialMdl在StartIO中,
ULONG_PTR va = (ULONG_PTR) MmGetMdlVirtualAddress(Irp->MdlAddress);
PMDL mdl = IoAllocateMdl((PVOID) va, MaximumTransferSize, FALSE, FALSE, NULL);
IoBuildPartialMdl(Irp->MdlAddress, mdl, (PVOID) va, seglen);

在我进行读操作的时候,seglen应该等于0x1000C,这在XP中没有问题,但在vista中只要运行这条命令就出错。调试中我随意将seglen改为8,则运行通过了,但很明显8不是我所需要的值。请问这是怎么回事?Vista和XP在驱动中主要有哪些不同呢?
AllenZh
驱动老牛
驱动老牛
  • 注册日期2001-08-19
  • 最后登录2015-11-27
  • 粉丝19
  • 关注10
  • 积分1316分
  • 威望2387点
  • 贡献值7点
  • 好评度321点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2008-07-08 16:58
MaximumTransferSize是多少?
1,承接Windows下驱动/应用开发 2,本人原创虚拟鼠标/键盘,触摸屏,虚拟显卡,Mirror驱动,XP无盘的SCSI虚拟磁盘驱动等 3,windows下有尝技术服务(包括BUG调试,员工培训等) 欢迎深圳和海外企业联系.msn:mfczmh@sina.com
watsonhua
驱动牛犊
驱动牛犊
  • 注册日期2008-04-23
  • 最后登录2009-07-27
  • 粉丝0
  • 关注0
  • 积分8分
  • 威望24点
  • 贡献值0点
  • 好评度10点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2008-07-09 10:26
感觉上mdl上没有区别啊,我用过1MBytes的
blue44
驱动小牛
驱动小牛
  • 注册日期2006-05-17
  • 最后登录2012-03-31
  • 粉丝0
  • 关注0
  • 积分23分
  • 威望218点
  • 贡献值0点
  • 好评度84点
  • 原创分0分
  • 专家分0分
地板#
发布于:2008-07-10 10:38
MaximumTransferSize才64KB。
请问watsonhua,你当时是怎么用的?
AllenZh
驱动老牛
驱动老牛
  • 注册日期2001-08-19
  • 最后登录2015-11-27
  • 粉丝19
  • 关注10
  • 积分1316分
  • 威望2387点
  • 贡献值7点
  • 好评度321点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2008-07-11 00:17
MmGetMdlByteCount(Irp->MdlAddress);的返回是多少? 1M????
1,承接Windows下驱动/应用开发 2,本人原创虚拟鼠标/键盘,触摸屏,虚拟显卡,Mirror驱动,XP无盘的SCSI虚拟磁盘驱动等 3,windows下有尝技术服务(包括BUG调试,员工培训等) 欢迎深圳和海外企业联系.msn:mfczmh@sina.com
blue44
驱动小牛
驱动小牛
  • 注册日期2006-05-17
  • 最后登录2012-03-31
  • 粉丝0
  • 关注0
  • 积分23分
  • 威望218点
  • 贡献值0点
  • 好评度84点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2008-07-11 09:46
返回值是0x1000C,64k+0xc
AllenZh
驱动老牛
驱动老牛
  • 注册日期2001-08-19
  • 最后登录2015-11-27
  • 粉丝19
  • 关注10
  • 积分1316分
  • 威望2387点
  • 贡献值7点
  • 好评度321点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2008-07-11 21:00
下层驱动能接收的包SIZE是多少?可能是你的SIZE太大了
1,承接Windows下驱动/应用开发 2,本人原创虚拟鼠标/键盘,触摸屏,虚拟显卡,Mirror驱动,XP无盘的SCSI虚拟磁盘驱动等 3,windows下有尝技术服务(包括BUG调试,员工培训等) 欢迎深圳和海外企业联系.msn:mfczmh@sina.com
blue44
驱动小牛
驱动小牛
  • 注册日期2006-05-17
  • 最后登录2012-03-31
  • 粉丝0
  • 关注0
  • 积分23分
  • 威望218点
  • 贡献值0点
  • 好评度84点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2008-07-14 09:20
可是在XP系统下使用没有问题,在Vista下才有这个问题,所以想问问XP和Vista的区别
blue44
驱动小牛
驱动小牛
  • 注册日期2006-05-17
  • 最后登录2012-03-31
  • 粉丝0
  • 关注0
  • 积分23分
  • 威望218点
  • 贡献值0点
  • 好评度84点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2008-07-16 17:30
自己顶,请大家帮忙
游客

返回顶部