阅读:1503回复:3
piggy大虾 :这个函数ObReferenceObjectByName为什么编译无法链接?
我看到你在一个帖子里面写了这个:
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,谢谢啦! |
|
沙发#
发布于: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); |
|
板凳#
发布于: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); |
|
地板#
发布于:2004-11-02 08:56
谢谢大虾,这个问题昨天已经搞定,我在前面加了个extern "C"就可以了 ,再次谢谢,希望以后多帮助!
|
|