首页
社区
课程
招聘
[求助]帮忙看一下驱动教程的代码
发表于: 2016-9-1 20:48 3467

[求助]帮忙看一下驱动教程的代码

2016-9-1 20:48
3467
教程的代码:

    status = ObReferenceObjectByName (
        &uniNtNameString,
        OBJ_CASE_INSENSITIVE,
        NULL,
        0,
        IoDriverObjectType,
        KernelMode,
        NULL,
        &KbdDriverObject
        );
    // 如果失败了就直接返回
    if(!NT_SUCCESS(status))
    {
        KdPrint(("MyAttach: Couldn't get the MyTest Device Object\n"));
        return( status );
    }
    else
    {
        // 这个打开需要解应用。早点解除了免得之后忘记。
        ObDereferenceObject(DriverObject);
    }

代码调用ObDereferenceObject填入的参数是本身的驱动对象,按理说应该填KbdDriverObjec吧?

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (4)
雪    币: 209
活跃值: (818)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
没错!

LONG_PTR
ObDereferenceObject (
    PVOID Object
    );

前面的函数引用的是哪个对象,后面的ObDereferenceObject要减少引用计数的就是那个对象!
2016-9-1 21:48
0
雪    币: 6
活跃值: (26)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
DriverObject 引用KbdDriverObject ,然后ObDereferenceObject填DriverObject ?
2016-9-2 09:49
0
雪    币: 0
活跃值: (143)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
就应该是kbddriverobject啊
2016-9-2 09:52
0
雪    币: 70
活跃值: (72)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
5
有趣 肯定是KbdDriverObject ,引用谁就解除谁
2016-9-2 11:18
0
游客
登录 | 注册 方可回帖
返回
//