📄 adcard_e.h
字号:
// ADCARD_E.h - include file for VxD ADCARD_E
#include <vtoolscp.h>
#include "all.h"
#define DEVICE_CLASS Adcard_eDevice
#define ADCARD_E_DeviceID UNDEFINED_DEVICE_ID
#define ADCARD_E_Init_Order UNDEFINED_INIT_ORDER
#define ADCARD_E_Major 1
#define ADCARD_E_Minor 0
#define MY_IRQ 7
//------------------------
class AdVMEvent:public VVMEvent//创建事件派生类
{
public:
AdVMEvent(VMHANDLE hVM):VVMEvent(hVM,0){};
virtual VOID handler(VMHANDLE hVM,CLIENT_STRUCT* pRegs,PVOID refData);
};
//--------------------定义时钟类
class AdTimeOut:public VGlobalTimeOut
{
public:
AdTimeOut(DWORD msec);
VOID handler(VMHANDLE hVM, THREADHANDLE th, PCLIENT_STRUCT pRegs,DWORD llag)
;
};
//--------------------
class AdHwInt:public VHardwareInt
{
public:
virtual VOID OnHardwareInt(VMHANDLE);
AdHwInt():VHardwareInt(MY_IRQ,0,0,0){};
AdVMEvent *pEvent;
};
//----------------------
class Adcard_eDevice : public VDevice
{
public:
virtual BOOL OnSysDynamicDeviceInit();
virtual BOOL OnSysDynamicDeviceExit();
virtual DWORD OnW32DeviceIoControl(PIOCTLPARAMS pDIOCParams);
AdHwInt *pMyIRQ;
AdTimeOut *pMyTimer;
WORD channel;
WORD frequency;//单位为hz
};
//------------------------vxd私有锁定内存类
class BuffClass : public VLockedPageObject // this class has a large data size
{
public:
BuffClass();
int read_i(char* buf, int count);
int write_i(char* buf, int count);
int read_o(char* buf, int count);
int write_o(char* buf, int count);
//read返回值为0表示操作成功,为1表示操作失败
//write返回值为0为成功,1为成功且缓冲已满,2为失败
//可分次写入,但只能一次读完整个缓冲
protected:
BYTE inputBuffer[BUFFER];//接收缓冲
BYTE outputBuffer[BUFFER];//发送缓冲
int ptr_i;//已填充的字节数
int ptr_o;//已填充的字节数
};
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -