My Project
Loading...
Searching...
No Matches
ob.h File Reference
#include "core.h"
#include "me.h"
#include "ht.h"

Go to the source code of this file.

Data Structures

struct  _OBJECT_TYPE_INITIALIZER
struct  _OBJECT_TYPE
struct  _OBJECT_HEADER

Macros

#define OBJECT_TO_OBJECT_HEADER(o)
#define OBJECT_HEADER_TO_OBJECT(h)

Typedefs

typedef void(* OB_DELETE_METHOD) (void *Object)
typedef void(* OB_CLOSE_METHOD) (void *Object, void *Process, uint64_t Handle)
typedef void(* OB_DUMP_METHOD) (void *Object)
typedef struct _OBJECT_TYPE_INITIALIZER OBJECT_TYPE_INITIALIZER
typedef struct _OBJECT_TYPE_INITIALIZERPOBJECT_TYPE_INITIALIZER
typedef struct _OBJECT_TYPE OBJECT_TYPE
typedef struct _OBJECT_TYPEPOBJECT_TYPE

Functions

struct _OBJECT_HEADER __attribute__ ((aligned(16))) OBJECT_HEADER
void ObInitialize (void)
MTSTATUS ObCreateObjectType (IN char *TypeName, IN POBJECT_TYPE_INITIALIZER ObjectTypeInitializer, OUT POBJECT_TYPE *ObjectType)
MTSTATUS ObCreateObject (IN POBJECT_TYPE ObjectType, IN uint32_t ObjectSize, OUT void **ObjectCreated)
MTSTATUS ObCreateHandleForObject (IN void *Object, IN ACCESS_MASK DesiredAccess, OUT PHANDLE ReturnedHandle)
MTSTATUS ObCreateHandleForObjectEx (IN void *Object, IN ACCESS_MASK DesiredAccess, OUT PHANDLE ReturnedHandle, IN PHANDLE_TABLE ObjectTable)
bool ObReferenceObject (IN void *Object)
MTSTATUS ObReferenceObjectByPointer (IN void *Object, IN POBJECT_TYPE DesiredType)
MTSTATUS ObReferenceObjectByHandle (IN HANDLE Handle, IN uint32_t DesiredAccess, IN POBJECT_TYPE DesiredType, OUT void **Object, _Out_Opt PHANDLE_TABLE_ENTRY HandleInformation)
void ObDereferenceObject (IN void *Object)

Variables

uint64_t PointerCount
union { 
   uint64_t   HandleCount 
   volatile void *   NextToFree 
}; 
POBJECT_TYPE Type
uint32_t Flags
struct _OBJECT_HEADERPOBJECT_HEADER

Macro Definition Documentation

◆ OBJECT_HEADER_TO_OBJECT

#define OBJECT_HEADER_TO_OBJECT ( h)
Value:
((void*)((char*)(h) + sizeof(OBJECT_HEADER)))
struct _ACPI_SDT_HEADER h
Definition mh.h:0

Definition at line 71 of file ob.h.

◆ OBJECT_TO_OBJECT_HEADER

#define OBJECT_TO_OBJECT_HEADER ( o)
Value:
((POBJECT_HEADER)((char*)(o) - sizeof(OBJECT_HEADER)))
struct _OBJECT_HEADER * POBJECT_HEADER
Definition ob.h:64

Definition at line 68 of file ob.h.

Typedef Documentation

◆ OB_CLOSE_METHOD

typedef void(* OB_CLOSE_METHOD) (void *Object, void *Process, uint64_t Handle)

Definition at line 33 of file ob.h.

◆ OB_DELETE_METHOD

typedef void(* OB_DELETE_METHOD) (void *Object)

Definition at line 32 of file ob.h.

◆ OB_DUMP_METHOD

typedef void(* OB_DUMP_METHOD) (void *Object)

Definition at line 34 of file ob.h.

◆ OBJECT_TYPE

typedef struct _OBJECT_TYPE OBJECT_TYPE

◆ OBJECT_TYPE_INITIALIZER

◆ POBJECT_TYPE

typedef struct _OBJECT_TYPE * POBJECT_TYPE

◆ POBJECT_TYPE_INITIALIZER

Function Documentation

◆ __attribute__()

struct _OBJECT_HEADER __attribute__ ( (aligned(16)) )

◆ ObCreateHandleForObject()

MTSTATUS ObCreateHandleForObject ( IN void * Object,
IN ACCESS_MASK DesiredAccess,
OUT PHANDLE ReturnedHandle )

Definition at line 318 of file ob.c.

◆ ObCreateHandleForObjectEx()

MTSTATUS ObCreateHandleForObjectEx ( IN void * Object,
IN ACCESS_MASK DesiredAccess,
OUT PHANDLE ReturnedHandle,
IN PHANDLE_TABLE ObjectTable )

Definition at line 363 of file ob.c.

◆ ObCreateObject()

MTSTATUS ObCreateObject ( IN POBJECT_TYPE ObjectType,
IN uint32_t ObjectSize,
OUT void ** ObjectCreated )

Definition at line 116 of file ob.c.

◆ ObCreateObjectType()

MTSTATUS ObCreateObjectType ( IN char * TypeName,
IN POBJECT_TYPE_INITIALIZER ObjectTypeInitializer,
OUT POBJECT_TYPE * ObjectType )

Definition at line 60 of file ob.c.

◆ ObDereferenceObject()

void ObDereferenceObject ( IN void * Object)

Definition at line 446 of file ob.c.

◆ ObInitialize()

void ObInitialize ( void )

Definition at line 33 of file ob.c.

◆ ObReferenceObject()

bool ObReferenceObject ( IN void * Object)

Definition at line 160 of file ob.c.

◆ ObReferenceObjectByHandle()

MTSTATUS ObReferenceObjectByHandle ( IN HANDLE Handle,
IN uint32_t DesiredAccess,
IN POBJECT_TYPE DesiredType,
OUT void ** Object,
_Out_Opt PHANDLE_TABLE_ENTRY HandleInformation )

Definition at line 247 of file ob.c.

◆ ObReferenceObjectByPointer()

MTSTATUS ObReferenceObjectByPointer ( IN void * Object,
IN POBJECT_TYPE DesiredType )

Definition at line 200 of file ob.c.

Variable Documentation

◆ [union]

union { ... }

◆ Flags

uint32_t Flags

Definition at line 6 of file ob.h.

◆ HandleCount

uint64_t HandleCount

Definition at line 2 of file ob.h.

◆ NextToFree

volatile void* NextToFree

Definition at line 3 of file ob.h.

◆ POBJECT_HEADER

struct _OBJECT_HEADER * POBJECT_HEADER

Definition at line 64 of file ob.h.

◆ PointerCount

uint64_t PointerCount

Definition at line 0 of file ob.h.

◆ Type

Definition at line 5 of file ob.h.