Files
mirror-processhacker/2.x/trunk/ProcessHacker/include/phplug.h
T
wj32 7103b0a646 added NTAPI to some more functions
git-svn-id: svn://svn.code.sf.net/p/processhacker/code@3638 21ef857c-d57f-4fe0-8362-d861dc6d29cd
2010-09-17 04:18:59 +00:00

215 lines
5.4 KiB
C

#ifndef _PH_PHPLUG_H
#define _PH_PHPLUG_H
#ifdef __cplusplus
extern "C" {
#endif
// Callbacks
typedef enum _PH_GENERAL_CALLBACK
{
GeneralCallbackMainWindowShowing = 0, // INT ShowCommand [main thread]
GeneralCallbackProcessesUpdated = 1, // [main thread]
GeneralCallbackGetProcessHighlightingColor = 2, // PPH_PLUGIN_GET_HIGHLIGHTING_COLOR Data [main thread]
GeneralCallbackGetProcessTooltipText = 3, // PPH_PLUGIN_GET_TOOLTIP_TEXT Data [main thread]
GeneralCallbackProcessPropertiesInitializing = 4, // PPH_PLUGIN_PROCESS_PROPCONTEXT Data [properties thread]
GeneralCallbackGetIsDotNetDirectoryNames = 5, // PPH_PLUGIN_IS_DOT_NET_DIRECTORY_NAMES Data [process provider thread]
GeneralCallbackNotifyEvent = 6, // PPH_PLUGIN_NOTIFY_EVENT Data [main thread]
GeneralCallbackServicePropertiesInitializing = 7, // PPH_PLUGIN_OBJECT_PROPERTIES Data [properties thread]
GeneralCallbackHandlePropertiesInitializing = 8, // PPH_PLUGIN_OBJECT_PROPERTIES Data [properties thread]
GeneralCallbackMaximum
} PH_GENERAL_CALLBACK, *PPH_GENERAL_CALLBACK;
typedef struct _PH_PLUGIN_GET_HIGHLIGHTING_COLOR
{
// Parameter is:
// PPH_PROCESS_ITEM for GeneralCallbackGetProcessHighlightingColor
PVOID Parameter;
COLORREF BackColor;
BOOLEAN Handled;
BOOLEAN Cache;
} PH_PLUGIN_GET_HIGHLIGHTING_COLOR, *PPH_PLUGIN_GET_HIGHLIGHTING_COLOR;
typedef struct _PH_PLUGIN_GET_TOOLTIP_TEXT
{
// Parameter is:
// PPH_PROCESS_ITEM for GeneralCallbackGetProcessTooltipText
PVOID Parameter;
PPH_STRING_BUILDER StringBuilder;
} PH_PLUGIN_GET_TOOLTIP_TEXT, *PPH_PLUGIN_GET_TOOLTIP_TEXT;
typedef struct _PH_PLUGIN_PROCESS_PROPCONTEXT
{
PPH_PROCESS_PROPCONTEXT PropContext;
PPH_PROCESS_ITEM ProcessItem;
} PH_PLUGIN_PROCESS_PROPCONTEXT, *PPH_PLUGIN_PROCESS_PROPCONTEXT;
typedef struct _PH_PLUGIN_IS_DOT_NET_DIRECTORY_NAMES
{
PH_STRINGREF DirectoryNames[16];
ULONG NumberOfDirectoryNames;
} PH_PLUGIN_IS_DOT_NET_DIRECTORY_NAMES, *PPH_PLUGIN_IS_DOT_NET_DIRECTORY_NAMES;
typedef struct _PH_PLUGIN_NOTIFY_EVENT
{
// Parameter is:
// PPH_PROCESS_ITEM for Type = PH_NOTIFY_PROCESS_*
// PPH_SERVICE_ITEM for Type = PH_NOTIFY_SERVICE_*
ULONG Type;
BOOLEAN Handled;
PVOID Parameter;
} PH_PLUGIN_NOTIFY_EVENT, *PPH_PLUGIN_NOTIFY_EVENT;
typedef struct _PH_PLUGIN_OBJECT_PROPERTIES
{
// Parameter is:
// PPH_SERVICE_ITEM for GeneralCallbackServicePropertiesInitializing
// PPH_PLUGIN_HANDLE_PROPERTIES_CONTEXT for GeneralCallbackHandlePropertiesInitializing
PVOID Parameter;
ULONG NumberOfPages;
ULONG MaximumNumberOfPages;
HPROPSHEETPAGE *Pages;
} PH_PLUGIN_OBJECT_PROPERTIES, *PPH_PLUGIN_OBJECT_PROPERTIES;
typedef struct _PH_PLUGIN_HANDLE_PROPERTIES_CONTEXT
{
HANDLE ProcessId;
PPH_HANDLE_ITEM HandleItem;
} PH_PLUGIN_HANDLE_PROPERTIES_CONTEXT, *PPH_PLUGIN_HANDLE_PROPERTIES_CONTEXT;
typedef enum _PH_PLUGIN_CALLBACK
{
PluginCallbackLoad = 0, // [main thread]
PluginCallbackUnload = 1, // [main thread]
PluginCallbackShowOptions = 2, // HWND ParentWindowHandle [main thread]
PluginCallbackMenuItem = 3, // PPH_PLUGIN_MENU_ITEM MenuItem [main thread]
PluginCallbackMaximum
} PH_PLUGIN_CALLBACK, *PPH_PLUGIN_CALLBACK;
typedef struct _PH_PLUGIN
{
PH_AVL_LINKS Links;
PWSTR Name;
PVOID DllBase;
PPH_STRING FileName;
PWSTR DisplayName;
PWSTR Author;
PWSTR Description;
BOOLEAN HasOptions;
PH_CALLBACK Callbacks[PluginCallbackMaximum];
} PH_PLUGIN, *PPH_PLUGIN;
typedef struct _PH_PLUGIN_INFORMATION
{
PWSTR DisplayName;
PWSTR Author;
PWSTR Description;
BOOLEAN HasOptions;
} PH_PLUGIN_INFORMATION, *PPH_PLUGIN_INFORMATION;
PHAPPAPI
PPH_PLUGIN
NTAPI
PhRegisterPlugin(
__in PWSTR Name,
__in PVOID DllBase,
__in_opt PPH_PLUGIN_INFORMATION Information
);
PHAPPAPI
PPH_PLUGIN
NTAPI
PhFindPlugin(
__in PWSTR Name
);
PHAPPAPI
PPH_CALLBACK
NTAPI
PhGetPluginCallback(
__in PPH_PLUGIN Plugin,
__in PH_PLUGIN_CALLBACK Callback
);
PHAPPAPI
PPH_CALLBACK
NTAPI
PhGetGeneralCallback(
__in PH_GENERAL_CALLBACK Callback
);
PHAPPAPI
ULONG
NTAPI
PhPluginReserveIds(
__in ULONG Count
);
typedef struct _PH_PLUGIN_MENU_ITEM
{
PPH_PLUGIN Plugin;
ULONG Id;
ULONG RealId;
PVOID Context;
} PH_PLUGIN_MENU_ITEM, *PPH_PLUGIN_MENU_ITEM;
#define PH_MENU_ITEM_LOCATION_VIEW 1
#define PH_MENU_ITEM_LOCATION_TOOLS 2
PHAPPAPI
BOOLEAN
NTAPI
PhPluginAddMenuItem(
__in PPH_PLUGIN Plugin,
__in ULONG Location,
__in_opt PWSTR InsertAfter,
__in ULONG Id,
__in PWSTR Text,
__in_opt PVOID Context
);
typedef struct _PH_PLUGIN_SYSTEM_STATISTICS
{
PSYSTEM_PERFORMANCE_INFORMATION Performance;
ULONG NumberOfProcesses;
ULONG NumberOfThreads;
ULONG NumberOfHandles;
FLOAT CpuKernelUsage;
FLOAT CpuUserUsage;
PH_UINT64_DELTA IoReadDelta;
PH_UINT64_DELTA IoWriteDelta;
PH_UINT64_DELTA IoOtherDelta;
ULONG CommitPages;
ULONG PhysicalPages;
HANDLE MaxCpuProcessId;
HANDLE MaxIoProcessId;
} PH_PLUGIN_SYSTEM_STATISTICS, *PPH_PLUGIN_SYSTEM_STATISTICS;
PHAPPAPI
VOID
NTAPI
PhPluginGetSystemStatistics(
__out PPH_PLUGIN_SYSTEM_STATISTICS Statistics
);
#ifdef __cplusplus
}
#endif
#endif