?? inte.cpp
字號:
// INTE.cpp - main module for VxD INTE
#define DEVICE_MAIN
#include "inte.h"
Declare_Virtual_Device(INTE)
#undef DEVICE_MAIN
//////////////////////////////////////////////
void OurInt::OnHardwareInt(VMHANDLE hVM)
{
int port_value;
_outp(PAR_PORT,_inp(PAR_PORT)+1);
sendPhysicalEOI();
}
OurInt::OurInt():VHardwareInt(TestIrq,VPICD_OPT_CAN_SHARE,0,0)
{}
BOOL InteDevice::OnSysDynamicDeviceInit()
{
pOurInt=new OurInt();
if(pOurInt==NULL||(!pOurInt->hook()))
return FALSE;
pOurInt->physicalUnmask();
_outp(PAR_PORT,0x0);
return TRUE;
}
BOOL InteDevice::OnSysDynamicExit()
{
pOurInt->unhook();
pOurInt->physicalMask();
delete pOurInt;
return TRUE;
}
DWORD InteDevice::OnW32DeviceIoControl(PIOCTLPARAMS pDIOCParams)
{
int *inx,*outx;
inx=(int *)pDIOCParams->dioc_InBuf;
outx=(int *)pDIOCParams->dioc_OutBuf;
switch(pDIOCParams->dioc_IOCtlCode)
{case DIOC_OPEN:break;
case SHOW_INT_COUNTER:
outx[0]=UCHAR(_inp(PAR_PORT));
break;
case INT_COUNTER_ADD:
_outp(PAR_PORT,_inp(PAR_PORT)+inx[0]);
break;
case INT_COUNTER_SUB:
_outp(PAR_PORT,_inp(PAR_PORT)-inx[0]);
break;
case INT_COUNTER_SET:
_outp(PAR_PORT,inx[0]);
break;
}
return 0;
}
InteVM::InteVM(VMHANDLE hVM) : VVirtualMachine(hVM) {}
InteThread::InteThread(THREADHANDLE hThread) : VThread(hThread) {}
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -