午夜母猪魔
驱动牛犊
驱动牛犊
  • 注册日期2004-11-18
  • 最后登录2006-06-01
  • 粉丝0
  • 关注0
  • 积分29分
  • 威望4点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
阅读:1023回复:1

请教一下在驱动里是使用回调函数的问题

楼主#
更多 发布于:2005-01-04 09:05
请教一下在驱动里是使用回调函数的问题。
 1。在驱动中定义了回调函数:
typedef     DWORD (CALLBACKFUNC)(PULONG pData, ULONG length );
typedef     CALLBACKFUNC *PCALLBACKFUNC;
CALLBACKFUNC  CallBackFunc;
PCALLBACKFUNC v_pCallBackPtr = NULL;
  2。在xxx_iocontrol中使用如下语句:
     v_pCallBackPtr = (PCALLBACKFUNC)MapPtrToProcess(pFunc,GetCallerProcess());
   函数的指针用在evc中用DeviceIoControl传入:
3。在ist中使用传入的函数指针。
v_pCallBackPtr (DataBuffer1,BUFSIZE);
但是驱动调试到这里的时候就出现exception
请问我这里是出现了什么问题。请大家给一点建议。
wxl_50685330
论坛版主
论坛版主
  • 注册日期2002-11-19
  • 最后登录2018-09-25
  • 粉丝0
  • 关注0
  • 积分1000分
  • 威望521点
  • 贡献值0点
  • 好评度419点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2005-01-04 13:12
你的函数指针定义对不对阿,你试试下面的呢:

typedef DWORD (*PCALLBACKFUNC)(PULONG pData, ULONG length );

另外,v_pCallBackPtr(DataBuffer1,BUFSIZE)的参数是哪儿的,指针是不是也要映射一次啊
根据地的兄弟们,团结就是力量
游客

返回顶部