eric.hee
驱动牛犊
驱动牛犊
  • 注册日期2002-05-21
  • 最后登录2002-10-10
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1439回复:7

关于DeviceIoControl,50分

楼主#
更多 发布于:2002-06-06 20:18
遇到一个很奇怪的事,
我用应用程序和驱动通信,
开始调createFile成功,
但是调

  DeviceIoControl( hDevice,
                   IOCTL_KNLDRV_WLOG,
                   NULL,
                   0,
                   pf,
                   sizeof(PINFO),
                   &dwDev,
                   NULL
                 )

总返回0,
我在驱动中加了
DriverObject->MajorFunction[IRP_MJ_DEVICE_CONTROL] = MydrvDispatchIoctl;

而且在 MydrvDispatchIoctl函数的第一行就加了
DbgPrint(.........)
也没有打印出来。。。。
为什么呢?
谢谢!
leaf
驱动牛犊
驱动牛犊
  • 注册日期2002-05-21
  • 最后登录2004-01-05
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2002-06-06 20:36
是否你CREATE的不是这个设备.你可以在IRP_MJ_CREATE中加一个打印语句看看.
或者是你的IRP_MJ_CREATE或IRP_MJ_DEVICE_CONTROL处理有什么特殊的地方,使用事件等同步对象,或没有正确返回Irp.不过可能性很小.
希望能有帮助.
eric.hee
驱动牛犊
驱动牛犊
  • 注册日期2002-05-21
  • 最后登录2002-10-10
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2002-06-06 20:46
多谢您的回复,我在create和close里打印
都没有问题。。。。

而且最让我费解的是
GetLastError居然=0
eric.hee
驱动牛犊
驱动牛犊
  • 注册日期2002-05-21
  • 最后登录2002-10-10
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2002-06-06 20:55
哦,我错了,
getlasterror返回应该是1,
也就是ERROR_INVALID_FUNCTION
Ares
驱动小牛
驱动小牛
  • 注册日期2001-03-28
  • 最后登录2020-04-09
  • 粉丝0
  • 关注0
  • 积分20分
  • 威望114点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
  • 社区居民
地下室#
发布于:2002-06-06 21:53
可能是IOCTL代码没有定义
易水
guardee
驱动巨牛
驱动巨牛
  • 注册日期2002-11-08
  • 最后登录2010-05-29
  • 粉丝2
  • 关注1
  • 积分2分
  • 威望34点
  • 贡献值0点
  • 好评度6点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2002-06-06 22:06
你要确定的是在创建该设备对象之后把设备对象的初始化标志清掉。
guardee
驱动巨牛
驱动巨牛
  • 注册日期2002-11-08
  • 最后登录2010-05-29
  • 粉丝2
  • 关注1
  • 积分2分
  • 威望34点
  • 贡献值0点
  • 好评度6点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2002-06-06 22:08
估计就是因为你没有清除该标志,不然应该可以得到IRP_MJ_CREATE请求的
zdhe
驱动太牛
驱动太牛
  • 注册日期2001-12-26
  • 最后登录2018-06-02
  • 粉丝0
  • 关注0
  • 积分72362分
  • 威望362260点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
  • 社区居民
7楼#
发布于:2002-06-07 23:02
在发出deviceiocontrol之前,用softice 的,driver yourdrive看一下, 或许你没有映射dispatch routine没有成功。
游客

返回顶部