yetty
驱动牛犊
驱动牛犊
  • 注册日期2004-01-10
  • 最后登录2009-07-21
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1227回复:6

VxD中使用memcpy时的困惑

楼主#
更多 发布于:2004-06-09 09:36
struct DataTransfer
{
HANDLE hCurrentProcess;
PROC DatapfnNew;
PROC Datappfn;
int isize;
};
应用层将结构为DataTransfer的数据传入VxD以后,作如下拷贝动作

DataTransfer datatransferin;
DataTransfer datatransferout;
memcpy(&datatransferin,(DataTransfer*)pDIOCParams->dioc_InBuf,sizeof(DataTransfer));
memcpy(datatransferin.Datappfn,datatransferin.DatapfnNew,datatransferout.isize);
其中datatransferout.isize=sizeof(datatranferin.DatapfnNew),第二个memcpy出错,出错信息是98下大概是"`该程序不正确处理,请与制造商联系"字样。想不通,请问应该如何修改


[编辑 -  6/9/04 by  yetty]
yetty_forever
yetty
驱动牛犊
驱动牛犊
  • 注册日期2004-01-10
  • 最后登录2009-07-21
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2004-06-09 12:34
是不是要lock一下?
yetty_forever
AllenZh
驱动老牛
驱动老牛
  • 注册日期2001-08-19
  • 最后登录2015-11-27
  • 粉丝19
  • 关注10
  • 积分1316分
  • 威望2387点
  • 贡献值7点
  • 好评度321点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2004-06-09 16:22
如果这样你需要lock,并且取保在访问完成前你不能在ring3中释放该指针。
DatapfnNew和Datappfn地址无效了
1,承接Windows下驱动/应用开发 2,本人原创虚拟鼠标/键盘,触摸屏,虚拟显卡,Mirror驱动,XP无盘的SCSI虚拟磁盘驱动等 3,windows下有尝技术服务(包括BUG调试,员工培训等) 欢迎深圳和海外企业联系.msn:mfczmh@sina.com
yetty
驱动牛犊
驱动牛犊
  • 注册日期2004-01-10
  • 最后登录2009-07-21
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2004-06-09 16:37
又犯了一个小错误,改为这样就可以了
memcpy(&datatransferin.Datappfn,&datatransferin.DatapfnNew,datatransferout.isize);
yetty_forever
AllenZh
驱动老牛
驱动老牛
  • 注册日期2001-08-19
  • 最后登录2015-11-27
  • 粉丝19
  • 关注10
  • 积分1316分
  • 威望2387点
  • 贡献值7点
  • 好评度321点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2004-06-09 16:49
memcpy(&datatransferin.Datappfn,&datatransferin.DatapfnNew,datatransferout.isize);
哈哈,不是指针的指针了吗?
1,承接Windows下驱动/应用开发 2,本人原创虚拟鼠标/键盘,触摸屏,虚拟显卡,Mirror驱动,XP无盘的SCSI虚拟磁盘驱动等 3,windows下有尝技术服务(包括BUG调试,员工培训等) 欢迎深圳和海外企业联系.msn:mfczmh@sina.com
yetty
驱动牛犊
驱动牛犊
  • 注册日期2004-01-10
  • 最后登录2009-07-21
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2004-06-09 16:52
是不是错了,哥们一笑我就更没信心了。
正好还不会调试,也不知对不对,反正应用层打开设备再没有出现那个郁闷的非法操作对话框了。
yetty_forever
AllenZh
驱动老牛
驱动老牛
  • 注册日期2001-08-19
  • 最后登录2015-11-27
  • 粉丝19
  • 关注10
  • 积分1316分
  • 威望2387点
  • 贡献值7点
  • 好评度321点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2004-06-09 16:56
或许这样可以侥幸通过,但可能有问题。
看看http://www.driverdevelop.com/forum/html_69860.html?1086771332这里的答案
1,承接Windows下驱动/应用开发 2,本人原创虚拟鼠标/键盘,触摸屏,虚拟显卡,Mirror驱动,XP无盘的SCSI虚拟磁盘驱动等 3,windows下有尝技术服务(包括BUG调试,员工培训等) 欢迎深圳和海外企业联系.msn:mfczmh@sina.com
游客

返回顶部