kangzh
驱动小牛
驱动小牛
  • 注册日期2004-03-09
  • 最后登录2012-08-06
  • 粉丝0
  • 关注0
  • 积分4分
  • 威望22点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1503回复:3

piggy大虾 :这个函数ObReferenceObjectByName为什么编译无法链接?

楼主#
更多 发布于:2004-11-01 17:28
我看到你在一个帖子里面写了这个:
ObReferenceObjectByName() is an undocumented kernel API. You should define this routine in your driver as following.

extern POBJECT_TYPE *IoDriverObjectType;

extern
NTKERNELAPI
NTSTATUS
ObReferenceObjectByName (
IN PUNICODE_STRING ObjectName,
IN ULONG Attributes,
IN PACCESS_STATE PassedAccessState OPTIONAL,
IN ACCESS_MASK DesiredAccess OPTIONAL,
IN POBJECT_TYPE ObjectType,
IN KPROCESSOR_MODE AccessMode,
IN OUT PVOID ParseContext OPTIONAL,
OUT PVOID *Object
);

我按照这个做法作了,但提示无法链接,另外,这个函数的Attributes是使用InitializeObjectAttributes创建的对象属性么?
函数怎么调用阿a,谢谢啦!
piggy
驱动牛犊
驱动牛犊
  • 注册日期2001-08-24
  • 最后登录2012-01-14
  • 粉丝0
  • 关注0
  • 积分4分
  • 威望27点
  • 贡献值0点
  • 好评度16点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2004-11-02 04:30
我不知道你为什么没法连接, 具体的错误是什么?

调用的方法很简单, 如下所示:

NTSTATUS          Status;
PDRIVER_OBJECT    lpDriverObject;
UNICODE_STRING    YourDriverName;

RtlInitUnicodeString( &YourDriverName,
                      L"\\Driver\\YourDriverName");
Status = ObReferenceObjectByName( &YourDriverName,
 OBJ_CASE_INSENSITIVE,
 NULL,
 0,
 *IoDriverObjectType,
 KernelMode,
 NULL,
 &lpDriverObject);
piggy
驱动牛犊
驱动牛犊
  • 注册日期2001-08-24
  • 最后登录2012-01-14
  • 粉丝0
  • 关注0
  • 积分4分
  • 威望27点
  • 贡献值0点
  • 好评度16点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2004-11-02 04:32
我不知道你为什么没法连接, 具体的错误是什么?

调用的方法很简单, 如下所示:

NTSTATUS Status;
PDRIVER_OBJECT lpDriverObject;
UNICODE_STRING YourDriverName;

RtlInitUnicodeString( &YourDriverName,
                      L"\Driver\YourDriverName");
Status = ObReferenceObjectByName( &YourDriverName,
                                  OBJ_CASE_INSENSITIVE,
                                  NULL,
                                  0,
                                  *IoDriverObjectType,
                                  KernelMode,
                                  NULL,
                                  &lpDriverObject);

kangzh
驱动小牛
驱动小牛
  • 注册日期2004-03-09
  • 最后登录2012-08-06
  • 粉丝0
  • 关注0
  • 积分4分
  • 威望22点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2004-11-02 08:56
谢谢大虾,这个问题昨天已经搞定,我在前面加了个extern "C"就可以了 ,再次谢谢,希望以后多帮助!
游客

返回顶部