LIXIAOLIN
驱动牛犊
驱动牛犊
  • 注册日期2002-06-10
  • 最后登录2002-08-23
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:993回复:3

驱动程序产生的冲突问题请教

楼主#
更多 发布于:2002-08-22 14:39
我用Driverstudio编了一个简单的驱动程序,用一个应用程序以实现和驱动程序的通信,通信语句如下:
b=DeviceIoControl(hDevice,READ_IOCTL_test,NULL,0,bufOutput,sizeof(bufOutput),&nOutput,NULL);
可确定通信结果正确。
应用程序退出后,当鼠标移到“开始”菜单旁的那一小块“任务栏“时(不是一般的任务栏),系统就会出现标题为“iexplore 错误”的提示,提示内容为该程序执行了非法操作。然后再运行应用程序,当鼠标移到应用程序的菜单上时系统就提示“访问冲突”,错误号为0x0000005。而且该现象有时有,有时又没有。

恳请指教!


[编辑 -  8/22/02 by  LIXIAOLIN]
arthurtu
驱动巨牛
驱动巨牛
  • 注册日期2001-11-08
  • 最后登录2020-12-19
  • 粉丝0
  • 关注0
  • 积分26分
  • 威望161点
  • 贡献值0点
  • 好评度35点
  • 原创分0分
  • 专家分0分
  • 社区居民
沙发#
发布于:2002-08-22 14:53
你是指quick launch栏吗?
估计是你的driver没有释放资源,尤其是指针引起的。
LIXIAOLIN
驱动牛犊
驱动牛犊
  • 注册日期2002-06-10
  • 最后登录2002-08-23
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2002-08-22 15:02
对,就是quick launch。
应用程序结束时,我已经关闭了设备指针Hdevie。
在驱动程序中,我没有用NEW申请内存空间。下面是驱动程序中实现
与应用程序通信的代码
const char* TEST_WAH = \"TEST OK! - WAH\";
ULONG fwLength=0;
NTSTATUS status;

    fwLength = strlen(TEST_WAH)+1;

    if (I.IoctlOutputBufferSize() >= fwLength)
    {
strcpy((PCHAR)I.IoctlBuffer(),TEST_WAH);
        I.Information() = fwLength;

        status = STATUS_SUCCESS;
    }
    else
    {
        I.Information() = 2;
        status = STATUS_BUFFER_TOO_SMALL;

    }

需要释放资源吗?
谢谢!
Tom.Cat
禁止发言
禁止发言
  • 注册日期2001-10-10
  • 最后登录2019-07-29
  • 粉丝1
  • 关注0
  • 积分-53792分
  • 威望197411点
  • 贡献值0点
  • 好评度5点
  • 原创分0分
  • 专家分0分
  • 社区居民
地板#
发布于:2002-08-22 15:42
用户被禁言,该主题自动屏蔽!
游客

返回顶部