beyoar1
驱动牛犊
驱动牛犊
  • 注册日期2010-03-09
  • 最后登录2010-07-12
  • 粉丝0
  • 关注0
  • 积分9分
  • 威望71点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:2366回复:2

两个驱动程序互相通信

楼主#
更多 发布于:2010-04-07 11:33
我再驱动程序A的DriverEntry立面调用了    status = IoCreateDevice(DriverObject,
                            0,
                            &DriverNameStr,
                            FILE_DEVICE_UNKNOWN,
                            0,
                            FALSE,
                            &pDeviceObject);
这个函数,比如说DriverNameStr是RtlInitUnicodeString( &DriverNameStr, L"\\device\\kabc" );,然后安装,启动。
然后我在驱动B的DriverEntry里面调用    status = ObReferenceObjectByName(
        &DriverNameStr,
        OBJ_CASE_INSENSITIVE,
        NULL,
        0,
        IoDriverObjectType,
        KernelMode,
        NULL,
        &pDriverObject    //保存得到的驱动对象
        );
DriverNameStr同样是RtlInitUnicodeString( &DriverNameStr, L"\\device\\kabc" );
不知道为什么确实返回#define STATUS_OBJECT_NAME_NOT_FOUND     ((NTSTATUS)0xC0000034L)这个值,就是说Object Name not found.没有找到,不知道为什么,请各位帮帮忙,刚学习。。。呵呵
wwg266543
驱动小牛
驱动小牛
  • 注册日期2007-07-03
  • 最后登录2014-08-27
  • 粉丝3
  • 关注1
  • 积分3分
  • 威望882点
  • 贡献值0点
  • 好评度9点
  • 原创分0分
  • 专家分54分
沙发#
发布于:2010-04-07 18:54
驱动开发详解这本书上有实例,可以看看!
nudtsong
驱动牛犊
驱动牛犊
  • 注册日期2004-11-16
  • 最后登录2011-03-02
  • 粉丝0
  • 关注0
  • 积分27分
  • 威望268点
  • 贡献值0点
  • 好评度7点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2010-04-08 09:30
楼主是否把Driver和Device弄混淆了?
游客

返回顶部