阅读:1068回复:0
一个关于串口的奇怪现象――也许并不奇怪只是我不理解
我用VToolsD试着写了一个VxD,有如下定义:
class TestPort : public VIOPort ....//实现监控IO端口,也就是简单的在有IO操作的时候count++ class PortDevice : public VDevice {public HelloDevice();//简单的count=0; virtual BOOL OnSysDynamicDeviceInit();//实例化TestPort,p3f8=new TestPort(0x3f8); virtual BOOL OnSysDynamicDeviceExit();//销毁TestPort实例 virtual DWORD OnW32DeviceIoControl(PIOCTLPARAMS //pDIOCParams); virtual VOID PM_API_Entry(VMHANDLE hVM, CLIENT_STRUCT* pRegs);//pDIOCParams->dioc_IOCtlCode为0x0101时dioc_bytesret=count; TestPort *p3f8//定义一个指针 结果问题出来了,在98下任凭你如何 mov dx,3f8 mov al,aa out dx,al 得到的count都是0 而且如果你用CreateFile打开com1(就是3f8),无论如何的WriteFile也是count=0 只有先用CreateFile打开com1,然后再 mov dx,3f8 mov al,aa out dx,al 这个时候count的数值才会改变, 不理解,请教 |
|