coolicelee
驱动牛犊
驱动牛犊
  • 注册日期2003-08-04
  • 最后登录2012-09-29
  • 粉丝0
  • 关注0
  • 积分20分
  • 威望2点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
阅读:1017回复:0

一个关于串口的奇怪现象――也许并不奇怪只是我不理解

楼主#
更多 发布于:2003-08-15 09:24
我用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的数值才会改变,
不理解,请教

游客

返回顶部