arthurtu
驱动巨牛
驱动巨牛
  • 注册日期2001-11-08
  • 最后登录2020-12-19
  • 粉丝0
  • 关注0
  • 积分26分
  • 威望161点
  • 贡献值0点
  • 好评度35点
  • 原创分0分
  • 专家分0分
  • 社区居民
阅读:1909回复:9

程序在XP SP2下的问题

楼主#
更多 发布于:2004-11-05 10:05
我用DeviceIoControl,传个UCHAR类型的参数给驱动,结果在SP2下,传递的值会变成0!ft居然会有这种事。把SP2卸载就好了,2K下也OK。把类型改为DWORD也没有问题。

UCHAR type = 1;//无论给什么,驱动收到的都是0,偶尔会正常传递
DeviceIoControl(hMac,
                            IOCTL_XXX,
                            &Code,
                            sizeof(Code),
                            &type,
                            sizeof(type),
                            MyReturnedCount,
                            NULL);

不知道是不是SP2在传递参数的时候,把字节位置弄错了。调试的机器上没有装SoftIce,没有看驱动接受的参数的地址后面是什么值。

不知道还有哪位大虾碰见类似问题,给个解释?
xx_focus
驱动中牛
驱动中牛
  • 注册日期2003-08-06
  • 最后登录2007-06-08
  • 粉丝0
  • 关注0
  • 积分96分
  • 威望10点
  • 贡献值0点
  • 好评度8点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2004-11-05 12:58
呵,还好偶没装 SP2,太危险了 :D
结果期待中……
AllenZh
驱动老牛
驱动老牛
  • 注册日期2001-08-19
  • 最后登录2015-11-27
  • 粉丝19
  • 关注10
  • 积分1316分
  • 威望2387点
  • 贡献值7点
  • 好评度321点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2004-11-05 13:18
我用DeviceIoControl,传个UCHAR类型的参数给驱动,结果在SP2下,传递的值会变成0!ft居然会有这种事。把SP2卸载就好了,2K下也OK。把类型改为DWORD也没有问题。

UCHAR type = 1;//无论给什么,驱动收到的都是0,偶尔会正常传递
DeviceIoControl(hMac,
                            IOCTL_XXX,
                            &Code,
                            sizeof(Code),
                            &type,
                            sizeof(type),
                            MyReturnedCount,
                            NULL);

不知道是不是SP2在传递参数的时候,把字节位置弄错了。调试的机器上没有装SoftIce,没有看驱动接受的参数的地址后面是什么值。

不知道还有哪位大虾碰见类似问题,给个解释?
 

可能是你的代码有问题
如果MyReturnedCount是 ULONG MyReturnedCount;

type = x ;
DeviceIoControl(hMac,
                            IOCTL_XXX,
                            &type,
                            1,
                            NULL,
                            0,
                            &MyReturnedCount,
                            NULL);
如果MyReturnedCount是 ULONG *MyReturnedCount;
type = x ;
DeviceIoControl(hMac,
                            IOCTL_XXX,
                            &type,
                            1,
                            NULL,
                            0,
                            MyReturnedCount,
                            NULL);
1,承接Windows下驱动/应用开发 2,本人原创虚拟鼠标/键盘,触摸屏,虚拟显卡,Mirror驱动,XP无盘的SCSI虚拟磁盘驱动等 3,windows下有尝技术服务(包括BUG调试,员工培训等) 欢迎深圳和海外企业联系.msn:mfczmh@sina.com
arthurtu
驱动巨牛
驱动巨牛
  • 注册日期2001-11-08
  • 最后登录2020-12-19
  • 粉丝0
  • 关注0
  • 积分26分
  • 威望161点
  • 贡献值0点
  • 好评度35点
  • 原创分0分
  • 专家分0分
  • 社区居民
地板#
发布于:2004-11-05 13:32
当然不会那么低级的错误,已经是个指针了
snowStart
驱动老牛
驱动老牛
  • 注册日期2004-04-06
  • 最后登录2011-06-02
  • 粉丝0
  • 关注0
  • 积分95分
  • 威望19点
  • 贡献值177点
  • 好评度1点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2004-11-05 17:30
我XP升级到sp2,我的挂接程序也不好用了,
我是通过函数入口地址改写实现的
后来调试发现XP_sp2下函数入口无缘无故多了2字节,
导致指令顺序乱掉,系统进程over,

你还是跟踪一下好了
学习,关注,交流中... [email=fengyu@163.com]Email:snowstarth@163.com[/email] [url]http://bbs.zndev.com/?a=snowStart[/url]
wowocock
VIP专家组
VIP专家组
  • 注册日期2002-04-08
  • 最后登录2016-01-09
  • 粉丝16
  • 关注2
  • 积分601分
  • 威望1651点
  • 贡献值1点
  • 好评度1227点
  • 原创分1分
  • 专家分0分
5楼#
发布于:2004-11-05 20:39
把汇编代码贴出来,贴C代码能说明什么问题????
花开了,然后又会凋零,星星是璀璨的,可那光芒也会消失。在这样 一瞬间,人降生了,笑者,哭着,战斗,伤害,喜悦,悲伤憎恶,爱。一切都只是刹那间的邂逅,而最后都要归入死亡的永眠
qwdrv
驱动大牛
驱动大牛
  • 注册日期2004-03-19
  • 最后登录2005-12-15
  • 粉丝0
  • 关注0
  • 积分8分
  • 威望2点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2004-11-08 13:58
看看你的IoControlCode的定义,是不是出了什么问题。
lucaer
驱动老牛
驱动老牛
  • 注册日期2004-09-21
  • 最后登录2007-09-26
  • 粉丝0
  • 关注0
  • 积分518分
  • 威望60点
  • 贡献值0点
  • 好评度48点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2004-11-09 16:16
放分 OK?
只要回帖,别忘给分。 支持灌水,多多送分。 [img]http://www.hotik.com/sign.png[/img]
neworcom
驱动牛犊
驱动牛犊
  • 注册日期2004-06-14
  • 最后登录2009-08-26
  • 粉丝0
  • 关注0
  • 积分10分
  • 威望6点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2005-01-23 11:50
顶啊!
我的程序更加糟糕,应用端的线程好象都没法同步,结果IO命令没办法串行,最后设备STALL!
xuzheng318
驱动牛犊
驱动牛犊
  • 注册日期2005-01-24
  • 最后登录2005-03-04
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2005-01-25 11:48
sp2的问题多多呀,尤其是兼容性问题
游客

返回顶部