mirror of
https://github.com/mirror/processhacker
synced 2026-06-08 16:03:24 +00:00
7103b0a646
git-svn-id: svn://svn.code.sf.net/p/processhacker/code@3638 21ef857c-d57f-4fe0-8362-d861dc6d29cd
215 lines
5.4 KiB
C
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
|