阅读:1341回复:3
使用VXD服务的问题
我用Vtoolsd生成了一个简单的vxd,它有一个服务(以下是Vtoolsd自动生成的)
#define AAA_DeviceID 0x2000 class AAADevice : public VDevice { public: virtual BOOL OnSysDynamicDeviceInit(); virtual BOOL OnSysDynamicDeviceExit(); virtual DWORD OnW32DeviceIoControl(PIOCTLPARAMS pDIOCParams); static _cdecl AAA_GetData(); //service在这里 static _cdecl AAA_SetData(); //service在这里 }; .................... Begin_VxD_Service_Table(AAA) VxD_Service(AAA_GetData) VxD_Service(AAA_SetData) End_VxD_Service_Table 在另一个BBB.VXD中想调用这个服务,另一个是汇编写的 vxdcall AAA_GetData 在inc文件中包含了下面的东东(我也不知为什么(抄来的),没它编译就出错) Begin_Service_Table AAA AAA_Service AAA_GetData, LOCAL AAA_Service AAA_SetData, LOCAL End_Service_Table AAA 结果:两个VXD分别工作都很成功,但就是调用不出预期的结果,也没报错 问题:一个VC编译的VXD和一个MASM编译的VXD如何相互调用服务 |
|
最新喜欢:flyaji |
沙发#
发布于:2001-11-10 19:09
我前两天刚回答过这个问题,里面付了一个头文件,说明如何调用。
“50分大赠送:谁能提供一个调用_VXD_Service的使用DDK制作的例子驱动VXD程序 。” http://www.driverdevelop.com/forum/showthread.php?threadid=5061 |
|
|
板凳#
发布于:2001-11-11 13:04
你的VXD_service都不含参数,应该好处理,你的BBB.vxd能调到AAA.vxd吗?
另外你少输出一项服务: AAA_GetVision,一般VXD服务都要有此项服务,当然你的AAA.vxd是静态的,可能也无所谓。 |
|
地板#
发布于:2001-11-11 23:06
1)你的VXD_service都不含参数,应该好处理,你的BBB.vxd能调到AAA.vxd吗?
在VXD_service定义中,当然不能带参数。你可以定义函数声明,在里面定义参数。 2)另外你少输出一项服务: AAA_GetVision,一般VXD服务都要有此项服务,当然你的AAA.vxd是静态的,可能也无所谓。 我的服务表中有GetVersion。 |
|
|