首页 > Windows驱动开发 > ObReferenceObjectByHandle返回-1073741788

ObReferenceObjectByHandle返回-1073741788

这几天依旧是在看张帆的《Windows驱动开发技术详解》一书,在写第11章的代码时,发现了一个小错误(事实上,本书存在很多很多的小错误,大部分都是印刷类的,这不得不让我怀疑编辑的水准。以往博文视点出的书基本上是看不到错误的。)

第300页中的第43行通过ObReferenceObjectByHandle来通过设备句柄来获取文件对象,运行的时候一直返回-1073741788。跟WDK文档中提到的返回值都对不上号。

网上一找,也基本职能找到“-1073741788, “{错误类型}\n请求的操作所请求的对象类型与在请求中指定的对象类型不符合。”(大家可以去搜一下“Win2000错误代码和提示”),而实际上也能看出这里确实是类型错了。明明是一个FILE_OBJECT,而牵扯到EVENT去了,这样复制粘贴代码而不去验证代码的正确性就往书上贴真的不好。

但是WDK文档中并没有对第二个参数做详细的解释,搞的我也看不太懂。但是将第三个参数改为*IoFileObjectType,程序就能正确运行了。至于第二个参数,仍然不明白具体意义。WDK是这样解释的:

Specifies the requested types of access to the object. The interpretation of this field is dependent on the object type. Do not use any generic access rights.


觉得文章还不错?点击此处对作者进行打赏!


本文地址: 程序人生 >> ObReferenceObjectByHandle返回-1073741788
作者:代码疯子(Wins0n) 本站内容如无声明均属原创,转载请保留作者信息与原文链接,谢谢!


更多



  1. 2011年2月23日22:31 | #1

    哦,该不会是买到翻版的书了吧?呵呵

    [回复]

  2. 2011年2月23日22:36 | #2

    @Winson
    不是的,这是图书馆借的书。这本书有一个读者QQ群,很多网友的书都是这样的

    [回复]

  3. 2011年2月25日20:36 | #3

    1、PDF很多的,我记得我就下了一个也是什么驱动开发的PDF
    2、搞驱动,和搞应用,以后完全是两个世界的人啊
    一个住天堂国际饭店,一个住地狱旅游会所
    一个开宝马桑塔纳,一个乘地铁公交车
    ……

    [回复]

  4. 2011年2月25日22:43 | #4

    @C瓜哥
    C瓜哥你博客怎么乱码好几天了,进不去哦。
    不再驱动与应用,而在精与不精,搞得好一样能赚钱 呵呵

    [回复]

  5. hlb310
    2012年7月1日22:37 | #5

    [em022]

    [回复]

  6. hlb310
    2012年7月1日22:43 | #6

    博主你好,我这几天也在看张帆的书,因为导师的一个项目要写cPCI的驱动,我是初学者
    请问一下您有没有什么qq号或者qq群或者邮箱什么的方便留一下么,我有几个问题想要请教一下
    我的qq 283013985
    谢谢

    [回复]

    代码疯子 回复:

    @hlb310, 呵呵 我好久没搞这个了 你可以加张帆的群,里面还是有很多热心的人的 群号是49944346

    [回复]

  7. hlb310
    2012年7月1日22:46 | #7

    我测试作者第一章的HelloWDM模型,windows xp build envirement下总不成功,错误 C2065,变量未定义
    可是我已经包含头文件wdm.h了呀,代码完全是按照第一章的代码写的
    我的系统是win7x64 WinDDK7.1.0(WDK7600.16385.1)

    [回复]

    代码疯子 回复:

    @hlb310, 怎么会有这样的错误,不过我都忘了,很久以前编译的

    [回复]