springl
驱动牛犊
驱动牛犊
  • 注册日期2001-05-08
  • 最后登录
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:2963回复:5

to dolphin

楼主#
更多 发布于:2001-05-29 10:40
dolpin:
   我看了你发的一个关于“不能捕捉硬件中断”的帖子。你现在解决了吗?
   我现在也在调试一个中断的程序,用SOFTICE跟踪,发现在OnSysDynamicDeviceInit()中,执行if (myirq->hook())时,hook返回值为false,也不能进入OnHardwareInt()函数中,为什么会这样?
   请赐教!
dolphin
驱动中牛
驱动中牛
  • 注册日期2001-04-30
  • 最后登录2013-03-08
  • 粉丝0
  • 关注0
  • 积分14分
  • 威望23点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2001-06-07 11:23
    嗨,Springl 对不起,前段时间网络老出错,上网少,没注意到你的贴子。不知你的问题解决了没有?hook返回值为false 你应该仔细看看class VHardwareInt ,是否继承正确,没有具体代码, 我也不能妄言。
[b]弃我去者昨日之日不可留,乱我心者今日之日多烦忧。[/b]
springl
驱动牛犊
驱动牛犊
  • 注册日期2001-05-08
  • 最后登录
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2001-06-12 15:04
dolphin,谢谢你地关注,不好意思的是这两天我也没注意到你的回帖。
那个问题我仍然没有解决。其实我的程序就是《win9x虚拟设备驱动程序编程指南》中的例程,可就是调不通。不知你有这本书没有。我的程序与你在坛子中发的帖子所附的程序基本一样。

还有就是,我前几天换了一台新机子,结果在新机子上调试vxd程序,连编译都通不过,(包括以前已经调通的程序)。搞得我没脾气。

#define DEVICE_MAIN
#include "mouse.h"
Declare_Virtual_Device(MOUSE)
#undef DEVICE_MAIN

PDWORD pval=(PDWORD)0x9FFFC;


void Myhwint::onHardwareInt(VMHANDLE hVM)
{
(*pval)++;
_inp(0x2fa);
_inp(0x2fd);
_inp(0x2f8);
sendPhysicalEOI();
}

MouseVM::MouseVM(VMHANDLE hVM) : VVirtualMachine(hVM) {}

MouseThread::MouseThread(THREADHANDLE hThread) : VThread(hThread) {}

BOOL MouseDevice::OnSysDynamicDeviceInit()
{
dout<<"OnSysDynamicDeviceInit"<<endl;

pmyirq=new Myhwint();
*pval=0;



if(pmyirq&&pmyirq->hook())  
{
_outp(0x2f9,1);
_outp(0x2fa,0);
_outp(0x2fc,0x0b);
pmyirq->physicalUnmask();
return TRUE;
}
else
return FALSE;
}

BOOL MouseDevice::OnSysDynamicDeviceExit()
{
dout<<"OnSysDynamicDeviceExit"<<endl;

_outp(0x2f9,0);
_outp(0x2fc,0);

delete pmyirq;
return TRUE;
}

DWORD MouseDevice::OnW32DeviceIoControl(PIOCTLPARAMS pDIOCParams)
{
return 0;
}

springl
驱动牛犊
驱动牛犊
  • 注册日期2001-05-08
  • 最后登录
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2001-06-12 15:07
忘了附头文件

class Myhwint : public VHardwareInt
{
public:
Myhwint(): VHardwareInt(MY_IRQ,VPICD_OPT_CAN_SHARE,0,0) {};
virtual void onHardwareInt(VMHANDLE);

};

class MouseDevice : public VDevice
{
public:
virtual BOOL OnSysDynamicDeviceInit();
virtual BOOL OnSysDynamicDeviceExit();
virtual DWORD OnW32DeviceIoControl(PIOCTLPARAMS pDIOCParams);
Myhwint *pmyirq;
};

class MouseVM : public VVirtualMachine
{
public:
MouseVM(VMHANDLE hVM);
};

dolphin
驱动中牛
驱动中牛
  • 注册日期2001-04-30
  • 最后登录2013-03-08
  • 粉丝0
  • 关注0
  • 积分14分
  • 威望23点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2001-06-13 13:03
    给我email ,我把我做的发给你。
[b]弃我去者昨日之日不可留,乱我心者今日之日多烦忧。[/b]
springl
驱动牛犊
驱动牛犊
  • 注册日期2001-05-08
  • 最后登录
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2001-06-19 10:40
不好意思,这几天没注意到你的回复。
我的MAIL是:llccyb@263.net

顺便问一下,你能不能给我推荐一些关于DDK方面的文章,若有书是系统地介绍DDK的使用就更好喽。在给我的MAIL中告诉我吧。多谢!
游客

返回顶部