Files
mirror-processhacker/2.x/trunk/ProcessHacker/include/extmgri.h
T
wj32 7cc8b7f9e0 implemented extension manager and object extensions
git-svn-id: svn://svn.code.sf.net/p/processhacker/code@4365 21ef857c-d57f-4fe0-8362-d861dc6d29cd
2011-07-29 09:49:18 +00:00

62 lines
1.4 KiB
C

#ifndef PH_EXTMGRI_H
#define PH_EXTMGRI_H
#include <extmgr.h>
typedef struct _PH_EM_OBJECT_TYPE_STATE
{
SIZE_T InitialSize;
SIZE_T ExtensionOffset;
LIST_ENTRY ExtensionListHead;
} PH_EM_OBJECT_TYPE_STATE, *PPH_EM_OBJECT_TYPE_STATE;
typedef struct _PH_EM_OBJECT_EXTENSION
{
LIST_ENTRY ListEntry;
SIZE_T ExtensionSize;
SIZE_T ExtensionOffset;
PPH_EM_OBJECT_CALLBACK Callbacks[EmMaximumObjectOperation];
} PH_EM_OBJECT_EXTENSION, *PPH_EM_OBJECT_EXTENSION;
VOID PhEmInitialization(
VOID
);
VOID PhEmInitializeAppContext(
__out PPH_EM_APP_CONTEXT AppContext,
__in PPH_STRINGREF AppName
);
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
);
PVOID PhEmGetObjectExtension(
__in PPH_EM_APP_CONTEXT AppContext,
__in PH_EM_OBJECT_TYPE ObjectType,
__in PVOID Object
);
SIZE_T PhEmGetObjectSize(
__in PH_EM_OBJECT_TYPE ObjectType,
__in SIZE_T InitialSize
);
VOID PhEmCallObjectOperation(
__in PH_EM_OBJECT_TYPE ObjectType,
__in PVOID Object,
__in PH_EM_OBJECT_OPERATION Operation
);
BOOLEAN PhEmParseCompoundId(
__in PPH_STRINGREF CompoundId,
__out PPH_STRINGREF AppName,
__out PULONG SubId
);
#endif