当前位置: 代码迷 >> 驱动开发 >> 寒江独钓 键盘过滤驱动有关问题
  详细解决方案

寒江独钓 键盘过滤驱动有关问题

热度:104   发布时间:2016-04-28 10:53:16.0
寒江独钓 键盘过滤驱动问题
寒江独钓的键盘过滤驱动 
C/C++ code
// 初始化一个字符串,就是Kdbclass驱动的名字。    RtlInitUnicodeString(&uniNtNameString, KBD_DRIVER_NAME);     // 请参照前面打开设备对象的例子。只是这里打开的是驱动对象。    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);    }    // 这是设备链中的第一个设备        pTargetDeviceObject = KbdDriverObject->DeviceObject;    // 现在开始遍历这个设备链    while (pTargetDeviceObject)     {        //,...............    }


这段绑定代码, 在执行到 while (pTargetDeviceObject) , 由于 pTargetDeviceObject 为空直接退出了。
ObReferenceObjectByName 这个函数调用是成功的, 为什么会这样呢,抓狂了。


------解决方案--------------------

------解决方案--------------------
还在看前面的串口过滤
------解决方案--------------------
看我的博客,有个可以运行的源码供楼主参考。
http://blog.csdn.net/svtanto
  相关解决方案