您的位置:首页 > 移动开发 > Objective-C

ObReferenceObjectByName 函数

2012-08-03 17:05 369 查看
这是一个DDK未公开的内核函数,DDK的所有.h头文件中没有关于这个函数的声明,因此不可能通过包含某个头文件后就能使用,需要自己声明.C++中如下声明:

#pragma once

#ifdef __cplusplus

extern "C"

{

#endif

#include <NTDDK.h>

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

);

extern POBJECT_TYPE IoDeviceObjectType;

#ifdef __cplusplus

}

#endif

ObReferenceObjectByName 函数可以通过对象名字得到包括设备对象在内的各种内核对象的指针,比如内核事件,互斥体对象等.他会增加内核对象的引用计数,使用完内核对象后要用ObDereferenceObject内核函数将引用计数减1.







记得 extern POBJECT_TYPE IoDeviceObjectType;

这句也是声明的一部分,不能丢写,也不能写在别的地方。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: