Process Hacker
extmgr.c File Reference
#include <phapp.h>
#include <extmgri.h>

Go to the source code of this file.

Functions

VOID PhEmInitialization (VOID)
 Initializes the extension manager module.
 
VOID PhEmInitializeAppContext (_Out_ PPH_EM_APP_CONTEXT AppContext, _In_ PPH_STRINGREF AppName)
 Initializes an extension application context.
 
VOID PhEmSetObjectExtension (_Inout_ PPH_EM_APP_CONTEXT AppContext, _In_ PH_EM_OBJECT_TYPE ObjectType, _In_ SIZE_T ExtensionSize, _In_opt_ PPH_EM_OBJECT_CALLBACK CreateCallback, _In_opt_ PPH_EM_OBJECT_CALLBACK DeleteCallback)
 Sets the object extension size and callbacks for an object type.
 
PVOID PhEmGetObjectExtension (_In_ PPH_EM_APP_CONTEXT AppContext, _In_ PH_EM_OBJECT_TYPE ObjectType, _In_ PVOID Object)
 Gets the object extension for an object.
 
SIZE_T PhEmGetObjectSize (_In_ PH_EM_OBJECT_TYPE ObjectType, _In_ SIZE_T InitialSize)
 Determines the size of an object, including extensions.
 
VOID PhEmCallObjectOperation (_In_ PH_EM_OBJECT_TYPE ObjectType, _In_ PVOID Object, _In_ PH_EM_OBJECT_OPERATION Operation)
 Invokes callbacks for an object operation.
 
BOOLEAN PhEmParseCompoundId (_In_ PPH_STRINGREF CompoundId, _Out_ PPH_STRINGREF AppName, _Out_ PULONG SubId)
 Parses an application name and sub-ID pair.
 

Variables

LIST_ENTRY PhEmAppContextListHead = { &PhEmAppContextListHead, &PhEmAppContextListHead }
 
ULONG PhEmAppContextCount = 0
 
PH_EM_OBJECT_TYPE_STATE PhEmObjectTypeState [EmMaximumObjectType] = { 0 }
 

Function Documentation

VOID PhEmCallObjectOperation ( _In_ PH_EM_OBJECT_TYPE  ObjectType,
_In_ PVOID  Object,
_In_ PH_EM_OBJECT_OPERATION  Operation 
)

Invokes callbacks for an object operation.

Parameters
ObjectTypeThe object type.
ObjectThe object.
OperationThe operation being performed.

Definition at line 155 of file extmgr.c.

PVOID PhEmGetObjectExtension ( _In_ PPH_EM_APP_CONTEXT  AppContext,
_In_ PH_EM_OBJECT_TYPE  ObjectType,
_In_ PVOID  Object 
)

Gets the object extension for an object.

Parameters
AppContextThe application context.
ObjectTypeThe type of object for which an extension has been registered.
ObjectThe object.

Definition at line 116 of file extmgr.c.

SIZE_T PhEmGetObjectSize ( _In_ PH_EM_OBJECT_TYPE  ObjectType,
_In_ SIZE_T  InitialSize 
)

Determines the size of an object, including extensions.

Parameters
ObjectTypeThe object type.
InitialSizeThe initial size of the object.

Definition at line 138 of file extmgr.c.

VOID PhEmInitialization ( VOID  )

Initializes the extension manager module.

Definition at line 39 of file extmgr.c.

VOID PhEmInitializeAppContext ( _Out_ PPH_EM_APP_CONTEXT  AppContext,
_In_ PPH_STRINGREF  AppName 
)

Initializes an extension application context.

Parameters
AppContextThe application context.
AppNameThe application name.

Definition at line 57 of file extmgr.c.

BOOLEAN PhEmParseCompoundId ( _In_ PPH_STRINGREF  CompoundId,
_Out_ PPH_STRINGREF  AppName,
_Out_ PULONG  SubId 
)

Parses an application name and sub-ID pair.

Parameters
CompoundIdThe compound identifier.
AppNameA variable which receives the application name.
SubIdA variable which receives the sub-ID.

Definition at line 196 of file extmgr.c.

VOID PhEmSetObjectExtension ( _Inout_ PPH_EM_APP_CONTEXT  AppContext,
_In_ PH_EM_OBJECT_TYPE  ObjectType,
_In_ SIZE_T  ExtensionSize,
_In_opt_ PPH_EM_OBJECT_CALLBACK  CreateCallback,
_In_opt_ PPH_EM_OBJECT_CALLBACK  DeleteCallback 
)

Sets the object extension size and callbacks for an object type.

Parameters
AppContextThe application context.
ObjectTypeThe type of object for which the extension is being registered.
ExtensionSizeThe size of the extension, in bytes.
CreateCallbackThe object creation callback.
DeleteCallbackThe object deletion callback.

Definition at line 78 of file extmgr.c.

Variable Documentation

ULONG PhEmAppContextCount = 0

Definition at line 33 of file extmgr.c.

LIST_ENTRY PhEmAppContextListHead = { &PhEmAppContextListHead, &PhEmAppContextListHead }

Definition at line 32 of file extmgr.c.

PH_EM_OBJECT_TYPE_STATE PhEmObjectTypeState[EmMaximumObjectType] = { 0 }

Definition at line 34 of file extmgr.c.