qdyangjing
驱动小牛
驱动小牛
  • 注册日期2003-02-26
  • 最后登录2005-11-16
  • 粉丝0
  • 关注0
  • 积分11分
  • 威望3点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:782回复:5

求征源代码,我实在没招了

楼主#
更多 发布于:2003-02-28 20:59
要求:实时响应IRQ=3,频率大约2240Hz,
服务函数功能: 读0x300,如果为:xxxxxxx0B,读0x301
                             xxxxxx0xB,写0x301

Handphone: 13831342504


君子不相欺
***************************** *********向军旗敬礼!******** ********向给分者微笑!******* *****************************
arthurtu
驱动巨牛
驱动巨牛
  • 注册日期2001-11-08
  • 最后登录2020-12-19
  • 粉丝0
  • 关注0
  • 积分26分
  • 威望161点
  • 贡献值0点
  • 好评度35点
  • 原创分0分
  • 专家分0分
  • 社区居民
沙发#
发布于:2003-03-01 15:07
还不如把你的相关的代码详细贴上。 :D
qdyangjing
驱动小牛
驱动小牛
  • 注册日期2003-02-26
  • 最后登录2005-11-16
  • 粉丝0
  • 关注0
  • 积分11分
  • 威望3点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2003-03-02 13:50

OnHardwareInt()函数根本没反应
你说怪不怪?


// HKWTXK.h - include file for VxD HKWTXK

#include <vtoolscp.h>

#define DEVICE_CLASS HkwtxkDevice
#define HKWTXK_DeviceID UNDEFINED_DEVICE_ID
#define HKWTXK_Init_Order UNDEFINED_INIT_ORDER
#define HKWTXK_Major 1
#define HKWTXK_Minor 0

//通讯卡占用的中断号:IRQ=3
#define HKWTXK_IRQ     3

//通讯卡端口地址
#define HKWTXK_IN1     0x300
#define HKWTXK_IN2     0x301

//定义虚拟硬件中断类HkwtxkInt,方式:独占IRQ=3
class HkwtxkInt : public VHardwareInt
{
public:
HkwtxkInt():VHardwareInt(HKWTXK_IRQ,0,0,0){}; //定义构造函数
virtual VOID OnHardwareInt(VMHANDLE);  //重载中断通知处理成员函数
};

//定义虚拟设备类HkwtxkDevice
class HkwtxkDevice : public VDevice
{
public:
HkwtxkInt * pIRQInt;
virtual BOOL OnSysDynamicDeviceInit();
virtual BOOL OnSysDynamicDeviceExit();
virtual DWORD OnW32DeviceIoControl(PIOCTLPARAMS pDIOCParams);
};


// Hkwtxk.cpp - main module for VxD HKWTXK

#define DEVICE_MAIN
#include \"hkwtxk.h\"
Declare_Virtual_Device(HKWTXK)
#undef DEVICE_MAIN

//接收到的数据
unsigned char valuein;

//重载中断响应函数
VOID HkwtxkInt::OnHardwareInt(VMHANDLE hVM)
{
dprintf(\"I am waiting for you .........\");
sendPhysicalEOI();
}

//当W32调用CreateFile()时,此函数被VPICD调用
BOOL HkwtxkDevice::OnSysDynamicDeviceInit()
{
dprintf(\"StartInt!\");

pIRQInt=new HkwtxkInt();

//分配pIRQInt内存不成功,挂接OnHardwareInt()
if((!pIRQInt) || (!pIRQInt->hook()))
{
return FALSE;
}

pIRQInt->physicalUnmask();

    dprintf(\"OnSysDynamicDeviceInit\");

return TRUE;
}

//当W32调用CloseHandle()时,此函数被VPICD调用
BOOL HkwtxkDevice::OnSysDynamicDeviceExit()
{
if(pIRQInt)
{
delete pIRQInt;
}
  
    dprintf(\"OnSysDynamicDeviceExit\");

return TRUE;
}

//用于W32与HKWTXK.VxD接口
DWORD HkwtxkDevice::OnW32DeviceIoControl(PIOCTLPARAMS pDIOCParams)
{
return 0;
}




***************************** *********向军旗敬礼!******** ********向给分者微笑!******* *****************************
arthurtu
驱动巨牛
驱动巨牛
  • 注册日期2001-11-08
  • 最后登录2020-12-19
  • 粉丝0
  • 关注0
  • 积分26分
  • 威望161点
  • 贡献值0点
  • 好评度35点
  • 原创分0分
  • 专家分0分
  • 社区居民
地板#
发布于:2003-03-02 14:10
没有什么错呀,你确定硬件产生中断了吗?
qdyangjing
驱动小牛
驱动小牛
  • 注册日期2003-02-26
  • 最后登录2005-11-16
  • 粉丝0
  • 关注0
  • 积分11分
  • 威望3点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2003-03-02 14:15
你有源代瘁
***************************** *********向军旗敬礼!******** ********向给分者微笑!******* *****************************
arthurtu
驱动巨牛
驱动巨牛
  • 注册日期2001-11-08
  • 最后登录2020-12-19
  • 粉丝0
  • 关注0
  • 积分26分
  • 威望161点
  • 贡献值0点
  • 好评度35点
  • 原创分0分
  • 专家分0分
  • 社区居民
5楼#
发布于:2003-03-02 15:04
和你的一样的。
不过我没有3的中断产生,就没有验证了。
游客

返回顶部