mirror of
https://github.com/mirror/processhacker
synced 2026-06-08 16:03:24 +00:00
Add tool to automatically generate plugin API header file
git-svn-id: svn://svn.code.sf.net/p/processhacker/code@6092 21ef857c-d57f-4fe0-8362-d861dc6d29cd
This commit is contained in:
@@ -3378,84 +3378,3 @@ BOOLEAN PhUiSetAttributesHandle(
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
BOOLEAN PhUiDestroyHeap(
|
||||
_In_ HWND hWnd,
|
||||
_In_ HANDLE ProcessId,
|
||||
_In_ PVOID HeapHandle
|
||||
)
|
||||
{
|
||||
NTSTATUS status;
|
||||
BOOLEAN cont = FALSE;
|
||||
HANDLE processHandle;
|
||||
HANDLE threadHandle;
|
||||
|
||||
if (PhGetIntegerSetting(L"EnableWarnings"))
|
||||
{
|
||||
cont = PhShowConfirmMessage(
|
||||
hWnd,
|
||||
L"destroy",
|
||||
L"the selected heap",
|
||||
L"Destroying heaps may cause the process to crash.",
|
||||
FALSE
|
||||
);
|
||||
}
|
||||
else
|
||||
{
|
||||
cont = TRUE;
|
||||
}
|
||||
|
||||
if (!cont)
|
||||
return FALSE;
|
||||
|
||||
if (NT_SUCCESS(status = PhOpenProcess(
|
||||
&processHandle,
|
||||
PROCESS_CREATE_THREAD,
|
||||
ProcessId
|
||||
)))
|
||||
{
|
||||
if (WindowsVersion >= WINDOWS_VISTA)
|
||||
{
|
||||
status = RtlCreateUserThread(
|
||||
processHandle,
|
||||
NULL,
|
||||
FALSE,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
(PUSER_THREAD_START_ROUTINE)PhGetModuleProcAddress(L"ntdll.dll", "RtlDestroyHeap"),
|
||||
HeapHandle,
|
||||
&threadHandle,
|
||||
NULL
|
||||
);
|
||||
}
|
||||
else
|
||||
{
|
||||
if (!(threadHandle = CreateRemoteThread(
|
||||
processHandle,
|
||||
NULL,
|
||||
0,
|
||||
(PTHREAD_START_ROUTINE)PhGetModuleProcAddress(L"ntdll.dll", "RtlDestroyHeap"),
|
||||
HeapHandle,
|
||||
0,
|
||||
NULL
|
||||
)))
|
||||
{
|
||||
status = PhGetLastWin32ErrorAsNtStatus();
|
||||
}
|
||||
}
|
||||
|
||||
if (NT_SUCCESS(status))
|
||||
NtClose(threadHandle);
|
||||
|
||||
NtClose(processHandle);
|
||||
}
|
||||
|
||||
if (!NT_SUCCESS(status))
|
||||
{
|
||||
PhShowStatus(hWnd, L"Unable to destroy the heap", status, 0);
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
@@ -3,12 +3,14 @@
|
||||
|
||||
#define PH_CM_ORDER_LIMIT 160
|
||||
|
||||
// begin_phapppub
|
||||
typedef LONG (NTAPI *PPH_CM_POST_SORT_FUNCTION)(
|
||||
_In_ LONG Result,
|
||||
_In_ PVOID Node1,
|
||||
_In_ PVOID Node2,
|
||||
_In_ PH_SORT_ORDER SortOrder
|
||||
);
|
||||
// end_phapppub
|
||||
|
||||
typedef struct _PH_CM_MANAGER
|
||||
{
|
||||
@@ -77,6 +79,7 @@ BOOLEAN PhCmForwardSort(
|
||||
_In_ PPH_CM_MANAGER Manager
|
||||
);
|
||||
|
||||
// begin_phapppub
|
||||
PHAPPAPI
|
||||
BOOLEAN
|
||||
NTAPI
|
||||
@@ -84,6 +87,7 @@ PhCmLoadSettings(
|
||||
_In_ HWND TreeNewHandle,
|
||||
_In_ PPH_STRINGREF Settings
|
||||
);
|
||||
// end_phapppub
|
||||
|
||||
#define PH_CM_COLUMN_WIDTHS_ONLY 0x1
|
||||
|
||||
@@ -95,12 +99,14 @@ BOOLEAN PhCmLoadSettingsEx(
|
||||
_In_opt_ PPH_STRINGREF SortSettings
|
||||
);
|
||||
|
||||
// begin_phapppub
|
||||
PHAPPAPI
|
||||
PPH_STRING
|
||||
NTAPI
|
||||
PhCmSaveSettings(
|
||||
_In_ HWND TreeNewHandle
|
||||
);
|
||||
// end_phapppub
|
||||
|
||||
PPH_STRING PhCmSaveSettingsEx(
|
||||
_In_ HWND TreeNewHandle,
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
#ifndef PH_EXTMGR_H
|
||||
#define PH_EXTMGR_H
|
||||
|
||||
// begin_phapppub
|
||||
typedef enum _PH_EM_OBJECT_TYPE
|
||||
{
|
||||
EmProcessItemType,
|
||||
@@ -38,6 +39,7 @@ typedef VOID (NTAPI *PPH_EM_OBJECT_CALLBACK)(
|
||||
_In_ PH_EM_OBJECT_TYPE ObjectType,
|
||||
_In_ PVOID Extension
|
||||
);
|
||||
// end_phapppub
|
||||
|
||||
typedef struct _PH_EM_APP_CONTEXT
|
||||
{
|
||||
|
||||
@@ -36,7 +36,6 @@ typedef BOOLEAN (NTAPI *PPH_ENUM_HIDDEN_PROCESSES_CALLBACK)(
|
||||
_In_opt_ PVOID Context
|
||||
);
|
||||
|
||||
PHAPPAPI
|
||||
NTSTATUS
|
||||
NTAPI
|
||||
PhEnumHiddenProcesses(
|
||||
@@ -50,7 +49,6 @@ typedef BOOLEAN (NTAPI *PPH_ENUM_CSR_PROCESS_HANDLES_CALLBACK)(
|
||||
_In_opt_ PVOID Context
|
||||
);
|
||||
|
||||
PHAPPAPI
|
||||
NTSTATUS
|
||||
NTAPI
|
||||
PhEnumCsrProcessHandles(
|
||||
@@ -58,7 +56,6 @@ PhEnumCsrProcessHandles(
|
||||
_In_opt_ PVOID Context
|
||||
);
|
||||
|
||||
PHAPPAPI
|
||||
NTSTATUS
|
||||
NTAPI
|
||||
PhOpenProcessByCsrHandle(
|
||||
@@ -67,7 +64,6 @@ PhOpenProcessByCsrHandle(
|
||||
_In_ PPH_CSR_HANDLE_INFO Handle
|
||||
);
|
||||
|
||||
PHAPPAPI
|
||||
NTSTATUS
|
||||
NTAPI
|
||||
PhOpenProcessByCsrHandles(
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
|
||||
#include <procgrp.h>
|
||||
|
||||
// begin_phapppub
|
||||
// Section
|
||||
|
||||
typedef VOID (NTAPI *PPH_MINIINFO_SET_SECTION_TEXT)(
|
||||
@@ -55,7 +56,9 @@ typedef struct _PH_MINIINFO_CREATE_DIALOG
|
||||
} PH_MINIINFO_CREATE_DIALOG, *PPH_MINIINFO_CREATE_DIALOG;
|
||||
|
||||
#define PH_MINIINFO_SECTION_NO_UPPER_MARGINS 0x1
|
||||
// end_phapppub
|
||||
|
||||
// begin_phapppub
|
||||
typedef struct _PH_MINIINFO_SECTION
|
||||
{
|
||||
// Public
|
||||
@@ -69,6 +72,7 @@ typedef struct _PH_MINIINFO_SECTION
|
||||
|
||||
PPH_MINIINFO_PARAMETERS Parameters;
|
||||
PVOID Reserved2[3];
|
||||
// end_phapppub
|
||||
|
||||
// Private
|
||||
|
||||
@@ -78,7 +82,9 @@ typedef struct _PH_MINIINFO_SECTION
|
||||
};
|
||||
HWND DialogHandle;
|
||||
PPH_STRING Text;
|
||||
// begin_phapppub
|
||||
} PH_MINIINFO_SECTION, *PPH_MINIINFO_SECTION;
|
||||
// end_phapppub
|
||||
|
||||
typedef enum _PH_MINIINFO_PIN_TYPE
|
||||
{
|
||||
@@ -103,6 +109,7 @@ VOID PhPinMiniInformation(
|
||||
_In_opt_ PPOINT SourcePoint
|
||||
);
|
||||
|
||||
// begin_phapppub
|
||||
// List section
|
||||
|
||||
typedef enum _PH_MINIINFO_LIST_SECTION_MESSAGE
|
||||
@@ -185,7 +192,9 @@ typedef struct _PH_MINIINFO_LIST_SECTION_MENU_INFORMATION
|
||||
PPH_TREENEW_CONTEXT_MENU ContextMenu;
|
||||
struct _PH_EMENU_ITEM *SelectedItem;
|
||||
} PH_MINIINFO_LIST_SECTION_MENU_INFORMATION, *PPH_MINIINFO_LIST_SECTION_MENU_INFORMATION;
|
||||
// end_phapppub
|
||||
|
||||
// begin_phapppub
|
||||
typedef struct _PH_MINIINFO_LIST_SECTION
|
||||
{
|
||||
// Public
|
||||
@@ -195,6 +204,7 @@ typedef struct _PH_MINIINFO_LIST_SECTION
|
||||
HWND TreeNewHandle; // State
|
||||
PVOID Context; // Initialization
|
||||
PPH_MINIINFO_LIST_SECTION_CALLBACK Callback; // Initialization
|
||||
// end_phapppub
|
||||
|
||||
// Private
|
||||
|
||||
@@ -205,6 +215,8 @@ typedef struct _PH_MINIINFO_LIST_SECTION
|
||||
PPH_LIST NodeList;
|
||||
HANDLE SelectedRepresentativeProcessId;
|
||||
LARGE_INTEGER SelectedRepresentativeCreateTime;
|
||||
// begin_phapppub
|
||||
} PH_MINIINFO_LIST_SECTION, *PPH_MINIINFO_LIST_SECTION;
|
||||
// end_phapppub
|
||||
|
||||
#endif
|
||||
@@ -13,6 +13,7 @@
|
||||
#define PH_ICON_LIMIT 0x80000000
|
||||
#define PH_ICON_ALL 0xffffffff
|
||||
|
||||
// begin_phapppub
|
||||
typedef VOID (NTAPI *PPH_NF_UPDATE_REGISTERED_ICON)(
|
||||
_In_ struct _PH_NF_ICON *Icon
|
||||
);
|
||||
@@ -64,7 +65,9 @@ typedef struct _PH_NF_MSG_SHOWMINIINFOSECTION_DATA
|
||||
|
||||
#define PH_NF_ICON_UNAVAILABLE 0x1
|
||||
#define PH_NF_ICON_SHOW_MINIINFO 0x2
|
||||
// end_phapppub
|
||||
|
||||
// begin_phapppub
|
||||
typedef struct _PH_NF_ICON
|
||||
{
|
||||
// Public
|
||||
@@ -73,6 +76,7 @@ typedef struct _PH_NF_ICON
|
||||
ULONG SubId;
|
||||
PVOID Context;
|
||||
PPH_NF_POINTERS Pointers;
|
||||
// end_phapppub
|
||||
|
||||
// Private
|
||||
|
||||
@@ -81,7 +85,9 @@ typedef struct _PH_NF_ICON
|
||||
ULONG IconId;
|
||||
PPH_NF_ICON_UPDATE_CALLBACK UpdateCallback;
|
||||
PPH_NF_ICON_MESSAGE_CALLBACK MessageCallback;
|
||||
// begin_phapppub
|
||||
} PH_NF_ICON, *PPH_NF_ICON;
|
||||
// end_phapppub
|
||||
|
||||
VOID PhNfLoadStage1(
|
||||
VOID
|
||||
@@ -152,6 +158,7 @@ VOID PhNfNotifyMiniInfoPinned(
|
||||
_In_ BOOLEAN Pinned
|
||||
);
|
||||
|
||||
// begin_phapppub
|
||||
// Public registration data
|
||||
|
||||
typedef struct _PH_NF_ICON_REGISTRATION_DATA
|
||||
@@ -159,5 +166,6 @@ typedef struct _PH_NF_ICON_REGISTRATION_DATA
|
||||
PPH_NF_ICON_UPDATE_CALLBACK UpdateCallback;
|
||||
PPH_NF_ICON_MESSAGE_CALLBACK MessageCallback;
|
||||
} PH_NF_ICON_REGISTRATION_DATA, *PPH_NF_ICON_REGISTRATION_DATA;
|
||||
// end_phapppub
|
||||
|
||||
#endif
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -5,10 +5,7 @@
|
||||
#include <sysinfo.h>
|
||||
#include <miniinfo.h>
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
// begin_phapppub
|
||||
// Callbacks
|
||||
|
||||
typedef enum _PH_GENERAL_CALLBACK
|
||||
@@ -408,15 +405,20 @@ typedef struct _PH_PLUGIN_INFORMATION
|
||||
} PH_PLUGIN_INFORMATION, *PPH_PLUGIN_INFORMATION;
|
||||
|
||||
#define PH_PLUGIN_FLAG_RESERVED 0x1
|
||||
// end_phapppub
|
||||
|
||||
// begin_phapppub
|
||||
typedef struct _PH_PLUGIN
|
||||
{
|
||||
// Public
|
||||
|
||||
PH_AVL_LINKS Links;
|
||||
|
||||
PVOID Reserved;
|
||||
PVOID DllBase;
|
||||
// end_phapppub
|
||||
|
||||
// Everything below is private and should not be accessed by plugins.
|
||||
// Private
|
||||
|
||||
PPH_STRING FileName;
|
||||
ULONG Flags;
|
||||
@@ -425,8 +427,11 @@ typedef struct _PH_PLUGIN
|
||||
|
||||
PH_CALLBACK Callbacks[PluginCallbackMaximum];
|
||||
PH_EM_APP_CONTEXT AppContext;
|
||||
// begin_phapppub
|
||||
} PH_PLUGIN, *PPH_PLUGIN;
|
||||
// end_phapppub
|
||||
|
||||
// begin_phapppub
|
||||
// Plugin API
|
||||
|
||||
PHAPPAPI
|
||||
@@ -575,6 +580,7 @@ PhPluginAddMenuHook(
|
||||
_In_ PPH_PLUGIN Plugin,
|
||||
_In_opt_ PVOID Context
|
||||
);
|
||||
// end_phapppub
|
||||
|
||||
VOID
|
||||
NTAPI
|
||||
@@ -592,6 +598,7 @@ PhPluginTriggerEMenuItem(
|
||||
_In_ PPH_EMENU_ITEM Item
|
||||
);
|
||||
|
||||
// begin_phapppub
|
||||
PHAPPAPI
|
||||
BOOLEAN
|
||||
NTAPI
|
||||
@@ -662,9 +669,6 @@ PhPluginCallPhSvc(
|
||||
_Out_writes_bytes_opt_(OutLength) PVOID OutBuffer,
|
||||
_In_ ULONG OutLength
|
||||
);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
// end_phapppub
|
||||
|
||||
#endif
|
||||
|
||||
@@ -1,11 +1,13 @@
|
||||
#ifndef PH_PROCGRP_H
|
||||
#define PH_PROCGRP_H
|
||||
|
||||
// begin_phapppub
|
||||
typedef struct _PH_PROCESS_GROUP
|
||||
{
|
||||
PPH_PROCESS_ITEM Representative; // An element of Processes (no extra reference added)
|
||||
PPH_LIST Processes; // List of PPH_PROCESS_ITEM
|
||||
} PH_PROCESS_GROUP, *PPH_PROCESS_GROUP;
|
||||
// end_phapppub
|
||||
|
||||
typedef VOID (NTAPI *PPH_SORT_LIST_FUNCTION)(
|
||||
_In_ PPH_LIST List,
|
||||
|
||||
@@ -147,6 +147,7 @@ INT_PTR CALLBACK PhpProcessServicesDlgProc(
|
||||
#define WM_PH_THREADS_UPDATED (WM_APP + 204)
|
||||
#define WM_PH_THREAD_SELECTION_CHANGED (WM_APP + 205)
|
||||
|
||||
// begin_phapppub
|
||||
typedef struct _PH_THREADS_CONTEXT
|
||||
{
|
||||
PPH_THREAD_PROVIDER Provider;
|
||||
@@ -158,16 +159,28 @@ typedef struct _PH_THREADS_CONTEXT
|
||||
PH_CALLBACK_REGISTRATION LoadingStateChangedEventRegistration;
|
||||
|
||||
HWND WindowHandle;
|
||||
// end_phapppub
|
||||
|
||||
PH_THREAD_LIST_CONTEXT ListContext;
|
||||
union
|
||||
{
|
||||
PH_THREAD_LIST_CONTEXT ListContext;
|
||||
struct
|
||||
{
|
||||
HWND Private; // phapppub
|
||||
HWND TreeNewHandle; // phapppub
|
||||
} PublicUse;
|
||||
};
|
||||
BOOLEAN NeedsRedraw;
|
||||
// begin_phapppub
|
||||
} PH_THREADS_CONTEXT, *PPH_THREADS_CONTEXT;
|
||||
// end_phapppub
|
||||
|
||||
#define WM_PH_MODULE_ADDED (WM_APP + 211)
|
||||
#define WM_PH_MODULE_MODIFIED (WM_APP + 212)
|
||||
#define WM_PH_MODULE_REMOVED (WM_APP + 213)
|
||||
#define WM_PH_MODULES_UPDATED (WM_APP + 214)
|
||||
|
||||
// begin_phapppub
|
||||
typedef struct _PH_MODULES_CONTEXT
|
||||
{
|
||||
PPH_MODULE_PROVIDER Provider;
|
||||
@@ -178,18 +191,30 @@ typedef struct _PH_MODULES_CONTEXT
|
||||
PH_CALLBACK_REGISTRATION UpdatedEventRegistration;
|
||||
|
||||
HWND WindowHandle;
|
||||
// end_phapppub
|
||||
|
||||
PH_MODULE_LIST_CONTEXT ListContext;
|
||||
union
|
||||
{
|
||||
PH_MODULE_LIST_CONTEXT ListContext;
|
||||
struct
|
||||
{
|
||||
HWND Private; // phapppub
|
||||
HWND TreeNewHandle; // phapppub
|
||||
} PublicUse;
|
||||
};
|
||||
BOOLEAN NeedsRedraw;
|
||||
NTSTATUS LastRunStatus;
|
||||
PPH_STRING ErrorMessage;
|
||||
// begin_phapppub
|
||||
} PH_MODULES_CONTEXT, *PPH_MODULES_CONTEXT;
|
||||
// end_phapppub
|
||||
|
||||
#define WM_PH_HANDLE_ADDED (WM_APP + 221)
|
||||
#define WM_PH_HANDLE_MODIFIED (WM_APP + 222)
|
||||
#define WM_PH_HANDLE_REMOVED (WM_APP + 223)
|
||||
#define WM_PH_HANDLES_UPDATED (WM_APP + 224)
|
||||
|
||||
// begin_phapppub
|
||||
typedef struct _PH_HANDLES_CONTEXT
|
||||
{
|
||||
PPH_HANDLE_PROVIDER Provider;
|
||||
@@ -200,26 +225,49 @@ typedef struct _PH_HANDLES_CONTEXT
|
||||
PH_CALLBACK_REGISTRATION UpdatedEventRegistration;
|
||||
|
||||
HWND WindowHandle;
|
||||
// end_phapppub
|
||||
|
||||
PH_HANDLE_LIST_CONTEXT ListContext;
|
||||
union
|
||||
{
|
||||
PH_HANDLE_LIST_CONTEXT ListContext;
|
||||
struct
|
||||
{
|
||||
HWND Private; // phapppub
|
||||
HWND TreeNewHandle; // phapppub
|
||||
} PublicUse;
|
||||
};
|
||||
BOOLEAN NeedsRedraw;
|
||||
BOOLEAN SelectedHandleProtected;
|
||||
BOOLEAN SelectedHandleInherit;
|
||||
NTSTATUS LastRunStatus;
|
||||
PPH_STRING ErrorMessage;
|
||||
// begin_phapppub
|
||||
} PH_HANDLES_CONTEXT, *PPH_HANDLES_CONTEXT;
|
||||
// end_phapppub
|
||||
|
||||
// begin_phapppub
|
||||
typedef struct _PH_MEMORY_CONTEXT
|
||||
{
|
||||
HANDLE ProcessId;
|
||||
HWND WindowHandle;
|
||||
// end_phapppub
|
||||
|
||||
PH_MEMORY_LIST_CONTEXT ListContext;
|
||||
union
|
||||
{
|
||||
PH_MEMORY_LIST_CONTEXT ListContext;
|
||||
struct
|
||||
{
|
||||
HWND Private; // phapppub
|
||||
HWND TreeNewHandle; // phapppub
|
||||
} PublicUse;
|
||||
};
|
||||
PH_MEMORY_ITEM_LIST MemoryItemList;
|
||||
BOOLEAN MemoryItemListValid;
|
||||
NTSTATUS LastRunStatus;
|
||||
PPH_STRING ErrorMessage;
|
||||
// begin_phapppub
|
||||
} PH_MEMORY_CONTEXT, *PPH_MEMORY_CONTEXT;
|
||||
// end_phapppub
|
||||
|
||||
#define WM_PH_STATISTICS_UPDATE (WM_APP + 231)
|
||||
|
||||
|
||||
@@ -6,13 +6,12 @@
|
||||
#define PH_RECORD_MAX_USAGE
|
||||
#define PH_ENABLE_VERIFY_CACHE
|
||||
|
||||
#ifndef PH_PROCPRV_PRIVATE
|
||||
extern PPH_OBJECT_TYPE PhProcessItemType;
|
||||
|
||||
PHAPPAPI extern PH_CALLBACK PhProcessAddedEvent;
|
||||
PHAPPAPI extern PH_CALLBACK PhProcessModifiedEvent;
|
||||
PHAPPAPI extern PH_CALLBACK PhProcessRemovedEvent;
|
||||
PHAPPAPI extern PH_CALLBACK PhProcessesUpdatedEvent;
|
||||
PHAPPAPI extern PH_CALLBACK PhProcessAddedEvent; // phapppub
|
||||
PHAPPAPI extern PH_CALLBACK PhProcessModifiedEvent; // phapppub
|
||||
PHAPPAPI extern PH_CALLBACK PhProcessRemovedEvent; // phapppub
|
||||
PHAPPAPI extern PH_CALLBACK PhProcessesUpdatedEvent; // phapppub
|
||||
|
||||
extern PPH_LIST PhProcessRecordList;
|
||||
extern PH_QUEUED_LOCK PhProcessRecordListLock;
|
||||
@@ -76,8 +75,8 @@ extern PH_CIRCULAR_BUFFER_FLOAT PhMaxCpuUsageHistory;
|
||||
extern PH_CIRCULAR_BUFFER_ULONG64 PhMaxIoReadOtherHistory;
|
||||
extern PH_CIRCULAR_BUFFER_ULONG64 PhMaxIoWriteHistory;
|
||||
#endif
|
||||
#endif
|
||||
|
||||
// begin_phapppub
|
||||
#define DPCS_PROCESS_ID ((HANDLE)(LONG_PTR)-2)
|
||||
#define INTERRUPTS_PROCESS_ID ((HANDLE)(LONG_PTR)-3)
|
||||
|
||||
@@ -90,10 +89,12 @@ extern PH_CIRCULAR_BUFFER_ULONG64 PhMaxIoWriteHistory;
|
||||
|
||||
// The process item has been removed.
|
||||
#define PH_PROCESS_ITEM_REMOVED 0x1
|
||||
// end_phapppub
|
||||
|
||||
#define PH_INTEGRITY_STR_LEN 10
|
||||
#define PH_INTEGRITY_STR_LEN_1 (PH_INTEGRITY_STR_LEN + 1)
|
||||
|
||||
// begin_phapppub
|
||||
typedef enum _VERIFY_RESULT VERIFY_RESULT;
|
||||
typedef struct _PH_PROCESS_RECORD *PPH_PROCESS_RECORD;
|
||||
|
||||
@@ -227,7 +228,9 @@ typedef struct _PH_PROCESS_ITEM
|
||||
PH_UINTPTR_DELTA PrivateBytesDelta;
|
||||
PPH_STRING PackageFullName;
|
||||
} PH_PROCESS_ITEM, *PPH_PROCESS_ITEM;
|
||||
// end_phapppub
|
||||
|
||||
// begin_phapppub
|
||||
// The process itself is dead.
|
||||
#define PH_PROCESS_RECORD_DEAD 0x1
|
||||
// An extra reference has been added to the process record for the statistics system.
|
||||
@@ -250,41 +253,56 @@ typedef struct _PH_PROCESS_RECORD
|
||||
PPH_STRING CommandLine;
|
||||
/*PPH_STRING UserName;*/
|
||||
} PH_PROCESS_RECORD, *PPH_PROCESS_RECORD;
|
||||
// end_phapppub
|
||||
|
||||
BOOLEAN PhProcessProviderInitialization(
|
||||
VOID
|
||||
);
|
||||
|
||||
// begin_phapppub
|
||||
PHAPPAPI
|
||||
PPH_STRING PhGetClientIdName(
|
||||
PPH_STRING
|
||||
NTAPI
|
||||
PhGetClientIdName(
|
||||
_In_ PCLIENT_ID ClientId
|
||||
);
|
||||
|
||||
PHAPPAPI
|
||||
PPH_STRING PhGetClientIdNameEx(
|
||||
PPH_STRING
|
||||
NTAPI
|
||||
PhGetClientIdNameEx(
|
||||
_In_ PCLIENT_ID ClientId,
|
||||
_In_opt_ PPH_STRING ProcessName
|
||||
);
|
||||
|
||||
PHAPPAPI
|
||||
PWSTR PhGetProcessPriorityClassString(
|
||||
PWSTR
|
||||
NTAPI
|
||||
PhGetProcessPriorityClassString(
|
||||
_In_ ULONG PriorityClass
|
||||
);
|
||||
// end_phapppub
|
||||
|
||||
PPH_PROCESS_ITEM PhCreateProcessItem(
|
||||
_In_ HANDLE ProcessId
|
||||
);
|
||||
|
||||
// begin_phapppub
|
||||
PHAPPAPI
|
||||
PPH_PROCESS_ITEM PhReferenceProcessItem(
|
||||
PPH_PROCESS_ITEM
|
||||
NTAPI
|
||||
PhReferenceProcessItem(
|
||||
_In_ HANDLE ProcessId
|
||||
);
|
||||
|
||||
PHAPPAPI
|
||||
VOID PhEnumProcessItems(
|
||||
VOID
|
||||
NTAPI
|
||||
PhEnumProcessItems(
|
||||
_Out_opt_ PPH_PROCESS_ITEM **ProcessItems,
|
||||
_Out_ PULONG NumberOfProcessItems
|
||||
);
|
||||
// end_phapppub
|
||||
|
||||
typedef struct _PH_VERIFY_FILE_INFO *PPH_VERIFY_FILE_INFO;
|
||||
|
||||
@@ -301,18 +319,24 @@ VERIFY_RESULT PhVerifyFileCached(
|
||||
_In_ BOOLEAN CachedOnly
|
||||
);
|
||||
|
||||
// begin_phapppub
|
||||
PHAPPAPI
|
||||
BOOLEAN PhGetStatisticsTime(
|
||||
BOOLEAN
|
||||
NTAPI
|
||||
PhGetStatisticsTime(
|
||||
_In_opt_ PPH_PROCESS_ITEM ProcessItem,
|
||||
_In_ ULONG Index,
|
||||
_Out_ PLARGE_INTEGER Time
|
||||
);
|
||||
|
||||
PHAPPAPI
|
||||
PPH_STRING PhGetStatisticsTimeString(
|
||||
PPH_STRING
|
||||
NTAPI
|
||||
PhGetStatisticsTimeString(
|
||||
_In_opt_ PPH_PROCESS_ITEM ProcessItem,
|
||||
_In_ ULONG Index
|
||||
);
|
||||
// end_phapppub
|
||||
|
||||
VOID PhFlushProcessQueryData(
|
||||
_In_ BOOLEAN SendModifiedEvent
|
||||
@@ -322,61 +346,78 @@ VOID PhProcessProviderUpdate(
|
||||
_In_ PVOID Object
|
||||
);
|
||||
|
||||
// begin_phapppub
|
||||
PHAPPAPI
|
||||
VOID PhReferenceProcessRecord(
|
||||
VOID
|
||||
NTAPI
|
||||
PhReferenceProcessRecord(
|
||||
_In_ PPH_PROCESS_RECORD ProcessRecord
|
||||
);
|
||||
|
||||
PHAPPAPI
|
||||
BOOLEAN PhReferenceProcessRecordSafe(
|
||||
BOOLEAN
|
||||
NTAPI
|
||||
PhReferenceProcessRecordSafe(
|
||||
_In_ PPH_PROCESS_RECORD ProcessRecord
|
||||
);
|
||||
|
||||
PHAPPAPI
|
||||
VOID PhReferenceProcessRecordForStatistics(
|
||||
VOID
|
||||
NTAPI
|
||||
PhReferenceProcessRecordForStatistics(
|
||||
_In_ PPH_PROCESS_RECORD ProcessRecord
|
||||
);
|
||||
|
||||
PHAPPAPI
|
||||
VOID PhDereferenceProcessRecord(
|
||||
VOID
|
||||
NTAPI
|
||||
PhDereferenceProcessRecord(
|
||||
_In_ PPH_PROCESS_RECORD ProcessRecord
|
||||
);
|
||||
|
||||
PHAPPAPI
|
||||
PPH_PROCESS_RECORD PhFindProcessRecord(
|
||||
PPH_PROCESS_RECORD
|
||||
NTAPI
|
||||
PhFindProcessRecord(
|
||||
_In_opt_ HANDLE ProcessId,
|
||||
_In_ PLARGE_INTEGER Time
|
||||
);
|
||||
// end_phapppub
|
||||
|
||||
VOID PhPurgeProcessRecords(
|
||||
VOID
|
||||
);
|
||||
|
||||
// begin_phapppub
|
||||
PHAPPAPI
|
||||
PPH_PROCESS_ITEM PhReferenceProcessItemForParent(
|
||||
PPH_PROCESS_ITEM
|
||||
NTAPI
|
||||
PhReferenceProcessItemForParent(
|
||||
_In_ HANDLE ParentProcessId,
|
||||
_In_ HANDLE ProcessId,
|
||||
_In_ PLARGE_INTEGER CreateTime
|
||||
);
|
||||
|
||||
PHAPPAPI
|
||||
PPH_PROCESS_ITEM PhReferenceProcessItemForRecord(
|
||||
PPH_PROCESS_ITEM
|
||||
NTAPI
|
||||
PhReferenceProcessItemForRecord(
|
||||
_In_ PPH_PROCESS_RECORD Record
|
||||
);
|
||||
// end_phapppub
|
||||
|
||||
// srvprv
|
||||
|
||||
#ifndef PH_SRVPRV_PRIVATE
|
||||
extern PPH_OBJECT_TYPE PhServiceItemType;
|
||||
|
||||
PHAPPAPI extern PH_CALLBACK PhServiceAddedEvent;
|
||||
PHAPPAPI extern PH_CALLBACK PhServiceModifiedEvent;
|
||||
PHAPPAPI extern PH_CALLBACK PhServiceRemovedEvent;
|
||||
PHAPPAPI extern PH_CALLBACK PhServicesUpdatedEvent;
|
||||
PHAPPAPI extern PH_CALLBACK PhServiceAddedEvent; // phapppub
|
||||
PHAPPAPI extern PH_CALLBACK PhServiceModifiedEvent; // phapppub
|
||||
PHAPPAPI extern PH_CALLBACK PhServiceRemovedEvent; // phapppub
|
||||
PHAPPAPI extern PH_CALLBACK PhServicesUpdatedEvent; // phapppub
|
||||
|
||||
extern BOOLEAN PhEnableServiceNonPoll;
|
||||
#endif
|
||||
|
||||
// begin_phapppub
|
||||
typedef struct _PH_SERVICE_ITEM
|
||||
{
|
||||
PH_STRINGREF Key; // points to Name
|
||||
@@ -393,6 +434,7 @@ typedef struct _PH_SERVICE_ITEM
|
||||
// Config
|
||||
ULONG StartType;
|
||||
ULONG ErrorControl;
|
||||
// end_phapppub
|
||||
BOOLEAN DelayedStart;
|
||||
BOOLEAN HasTriggers;
|
||||
|
||||
@@ -400,8 +442,11 @@ typedef struct _PH_SERVICE_ITEM
|
||||
BOOLEAN NeedsConfigUpdate;
|
||||
|
||||
WCHAR ProcessIdString[PH_INT32_STR_LEN_1];
|
||||
// begin_phapppub
|
||||
} PH_SERVICE_ITEM, *PPH_SERVICE_ITEM;
|
||||
// end_phapppub
|
||||
|
||||
// begin_phapppub
|
||||
typedef struct _PH_SERVICE_MODIFIED_DATA
|
||||
{
|
||||
PPH_SERVICE_ITEM Service;
|
||||
@@ -415,6 +460,7 @@ typedef enum _PH_SERVICE_CHANGE
|
||||
ServicePaused,
|
||||
ServiceStopped
|
||||
} PH_SERVICE_CHANGE, *PPH_SERVICE_CHANGE;
|
||||
// end_phapppub
|
||||
|
||||
BOOLEAN PhServiceProviderInitialization(
|
||||
VOID
|
||||
@@ -424,19 +470,27 @@ PPH_SERVICE_ITEM PhCreateServiceItem(
|
||||
_In_opt_ LPENUM_SERVICE_STATUS_PROCESS Information
|
||||
);
|
||||
|
||||
// begin_phapppub
|
||||
PHAPPAPI
|
||||
PPH_SERVICE_ITEM PhReferenceServiceItem(
|
||||
PPH_SERVICE_ITEM
|
||||
NTAPI
|
||||
PhReferenceServiceItem(
|
||||
_In_ PWSTR Name
|
||||
);
|
||||
// end_phapppub
|
||||
|
||||
VOID PhMarkNeedsConfigUpdateServiceItem(
|
||||
_In_ PPH_SERVICE_ITEM ServiceItem
|
||||
);
|
||||
|
||||
// begin_phapppub
|
||||
PHAPPAPI
|
||||
PH_SERVICE_CHANGE PhGetServiceChange(
|
||||
PH_SERVICE_CHANGE
|
||||
NTAPI
|
||||
PhGetServiceChange(
|
||||
_In_ PPH_SERVICE_MODIFIED_DATA Data
|
||||
);
|
||||
// end_phapppub
|
||||
|
||||
VOID PhUpdateProcessItemServices(
|
||||
_In_ PPH_PROCESS_ITEM ProcessItem
|
||||
@@ -448,16 +502,15 @@ VOID PhServiceProviderUpdate(
|
||||
|
||||
// netprv
|
||||
|
||||
#ifndef PH_NETPRV_PRIVATE
|
||||
extern PPH_OBJECT_TYPE PhNetworkItemType;
|
||||
PHAPPAPI extern PH_CALLBACK PhNetworkItemAddedEvent;
|
||||
PHAPPAPI extern PH_CALLBACK PhNetworkItemModifiedEvent;
|
||||
PHAPPAPI extern PH_CALLBACK PhNetworkItemRemovedEvent;
|
||||
PHAPPAPI extern PH_CALLBACK PhNetworkItemsUpdatedEvent;
|
||||
PHAPPAPI extern PH_CALLBACK PhNetworkItemAddedEvent; // phapppub
|
||||
PHAPPAPI extern PH_CALLBACK PhNetworkItemModifiedEvent; // phapppub
|
||||
PHAPPAPI extern PH_CALLBACK PhNetworkItemRemovedEvent; // phapppub
|
||||
PHAPPAPI extern PH_CALLBACK PhNetworkItemsUpdatedEvent; // phapppub
|
||||
|
||||
extern BOOLEAN PhEnableNetworkProviderResolve;
|
||||
#endif
|
||||
|
||||
// begin_phapppub
|
||||
#define PH_NETWORK_OWNER_INFO_SIZE 16
|
||||
|
||||
typedef struct _PH_NETWORK_ITEM
|
||||
@@ -485,6 +538,7 @@ typedef struct _PH_NETWORK_ITEM
|
||||
LARGE_INTEGER CreateTime;
|
||||
ULONGLONG OwnerInfo[PH_NETWORK_OWNER_INFO_SIZE];
|
||||
} PH_NETWORK_ITEM, *PPH_NETWORK_ITEM;
|
||||
// end_phapppub
|
||||
|
||||
BOOLEAN PhNetworkProviderInitialization(
|
||||
VOID
|
||||
@@ -494,13 +548,17 @@ PPH_NETWORK_ITEM PhCreateNetworkItem(
|
||||
VOID
|
||||
);
|
||||
|
||||
// begin_phapppub
|
||||
PHAPPAPI
|
||||
PPH_NETWORK_ITEM PhReferenceNetworkItem(
|
||||
PPH_NETWORK_ITEM
|
||||
NTAPI
|
||||
PhReferenceNetworkItem(
|
||||
_In_ ULONG ProtocolType,
|
||||
_In_ PPH_IP_ENDPOINT LocalEndpoint,
|
||||
_In_ PPH_IP_ENDPOINT RemoteEndpoint,
|
||||
_In_ HANDLE ProcessId
|
||||
);
|
||||
// end_phapppub
|
||||
|
||||
PPH_STRING PhGetHostNameFromAddress(
|
||||
_In_ PPH_IP_ADDRESS Address
|
||||
@@ -510,21 +568,28 @@ VOID PhNetworkProviderUpdate(
|
||||
_In_ PVOID Object
|
||||
);
|
||||
|
||||
// begin_phapppub
|
||||
PHAPPAPI
|
||||
PWSTR PhGetProtocolTypeName(
|
||||
PWSTR
|
||||
NTAPI
|
||||
PhGetProtocolTypeName(
|
||||
_In_ ULONG ProtocolType
|
||||
);
|
||||
|
||||
PHAPPAPI
|
||||
PWSTR PhGetTcpStateName(
|
||||
PWSTR
|
||||
NTAPI
|
||||
PhGetTcpStateName(
|
||||
_In_ ULONG State
|
||||
);
|
||||
// end_phapppub
|
||||
|
||||
// modprv
|
||||
|
||||
extern PPH_OBJECT_TYPE PhModuleProviderType;
|
||||
extern PPH_OBJECT_TYPE PhModuleItemType;
|
||||
|
||||
// begin_phapppub
|
||||
typedef struct _PH_MODULE_ITEM
|
||||
{
|
||||
PVOID BaseAddress;
|
||||
@@ -567,6 +632,7 @@ typedef struct _PH_MODULE_PROVIDER
|
||||
SLIST_HEADER QueryListHead;
|
||||
NTSTATUS RunStatus;
|
||||
} PH_MODULE_PROVIDER, *PPH_MODULE_PROVIDER;
|
||||
// end_phapppub
|
||||
|
||||
BOOLEAN PhModuleProviderInitialization(
|
||||
VOID
|
||||
@@ -598,6 +664,7 @@ VOID PhModuleProviderUpdate(
|
||||
extern PPH_OBJECT_TYPE PhThreadProviderType;
|
||||
extern PPH_OBJECT_TYPE PhThreadItemType;
|
||||
|
||||
// begin_phapppub
|
||||
typedef struct _PH_THREAD_ITEM
|
||||
{
|
||||
HANDLE ThreadId;
|
||||
@@ -652,6 +719,7 @@ typedef struct _PH_THREAD_PROVIDER
|
||||
SLIST_HEADER QueryListHead;
|
||||
ULONG RunId;
|
||||
} PH_THREAD_PROVIDER, *PPH_THREAD_PROVIDER;
|
||||
// end_phapppub
|
||||
|
||||
BOOLEAN PhThreadProviderInitialization(
|
||||
VOID
|
||||
@@ -684,10 +752,14 @@ VOID PhDereferenceAllThreadItems(
|
||||
_In_ PPH_THREAD_PROVIDER ThreadProvider
|
||||
);
|
||||
|
||||
// begin_phapppub
|
||||
PHAPPAPI
|
||||
PPH_STRING PhGetThreadPriorityWin32String(
|
||||
PPH_STRING
|
||||
NTAPI
|
||||
PhGetThreadPriorityWin32String(
|
||||
_In_ LONG PriorityWin32
|
||||
);
|
||||
// end_phapppub
|
||||
|
||||
VOID PhThreadProviderInitialUpdate(
|
||||
_In_ PPH_THREAD_PROVIDER ThreadProvider
|
||||
@@ -698,6 +770,7 @@ VOID PhThreadProviderInitialUpdate(
|
||||
extern PPH_OBJECT_TYPE PhHandleProviderType;
|
||||
extern PPH_OBJECT_TYPE PhHandleItemType;
|
||||
|
||||
// begin_phapppub
|
||||
#define PH_HANDLE_FILE_SHARED_READ 0x1
|
||||
#define PH_HANDLE_FILE_SHARED_WRITE 0x2
|
||||
#define PH_HANDLE_FILE_SHARED_DELETE 0x4
|
||||
@@ -740,6 +813,7 @@ typedef struct _PH_HANDLE_PROVIDER
|
||||
PPH_HASHTABLE TempListHashtable;
|
||||
NTSTATUS RunStatus;
|
||||
} PH_HANDLE_PROVIDER, *PPH_HANDLE_PROVIDER;
|
||||
// end_phapppub
|
||||
|
||||
BOOLEAN PhHandleProviderInitialization(
|
||||
VOID
|
||||
@@ -777,6 +851,7 @@ VOID PhHandleProviderUpdate(
|
||||
|
||||
extern PPH_OBJECT_TYPE PhMemoryItemType;
|
||||
|
||||
// begin_phapppub
|
||||
typedef enum _PH_MEMORY_REGION_TYPE
|
||||
{
|
||||
UnknownRegion,
|
||||
@@ -865,6 +940,7 @@ typedef struct _PH_MEMORY_ITEM_LIST
|
||||
PH_AVL_TREE Set;
|
||||
LIST_ENTRY ListHead;
|
||||
} PH_MEMORY_ITEM_LIST, *PPH_MEMORY_ITEM_LIST;
|
||||
// end_phapppub
|
||||
|
||||
BOOLEAN PhMemoryProviderInitialization(
|
||||
VOID
|
||||
@@ -887,13 +963,18 @@ PPH_MEMORY_ITEM PhCreateMemoryItem(
|
||||
VOID
|
||||
);
|
||||
|
||||
// begin_phapppub
|
||||
PHAPPAPI
|
||||
VOID PhDeleteMemoryItemList(
|
||||
VOID
|
||||
NTAPI
|
||||
PhDeleteMemoryItemList(
|
||||
_In_ PPH_MEMORY_ITEM_LIST List
|
||||
);
|
||||
|
||||
PHAPPAPI
|
||||
PPH_MEMORY_ITEM PhLookupMemoryItemList(
|
||||
PPH_MEMORY_ITEM
|
||||
NTAPI
|
||||
PhLookupMemoryItemList(
|
||||
_In_ PPH_MEMORY_ITEM_LIST List,
|
||||
_In_ PVOID Address
|
||||
);
|
||||
@@ -903,10 +984,13 @@ PPH_MEMORY_ITEM PhLookupMemoryItemList(
|
||||
#define PH_QUERY_MEMORY_WS_COUNTERS 0x4
|
||||
|
||||
PHAPPAPI
|
||||
NTSTATUS PhQueryMemoryItemList(
|
||||
NTSTATUS
|
||||
NTAPI
|
||||
PhQueryMemoryItemList(
|
||||
_In_ HANDLE ProcessId,
|
||||
_In_ ULONG Flags,
|
||||
_Out_ PPH_MEMORY_ITEM_LIST List
|
||||
);
|
||||
// end_phapppub
|
||||
|
||||
#endif
|
||||
|
||||
@@ -1,12 +1,14 @@
|
||||
#ifndef PH_SETTINGS_H
|
||||
#define PH_SETTINGS_H
|
||||
|
||||
// begin_phapppub
|
||||
typedef enum _PH_SETTING_TYPE
|
||||
{
|
||||
StringSettingType,
|
||||
IntegerSettingType,
|
||||
IntegerPairSettingType
|
||||
} PH_SETTING_TYPE, PPH_SETTING_TYPE;
|
||||
// end_phapppub
|
||||
|
||||
typedef struct _PH_SETTING
|
||||
{
|
||||
@@ -30,44 +32,60 @@ VOID PhUpdateCachedSettings(
|
||||
VOID
|
||||
);
|
||||
|
||||
// begin_phapppub
|
||||
PHAPPAPI
|
||||
_May_raise_ ULONG PhGetIntegerSetting(
|
||||
_May_raise_ ULONG
|
||||
NTAPI
|
||||
PhGetIntegerSetting(
|
||||
_In_ PWSTR Name
|
||||
);
|
||||
|
||||
PHAPPAPI
|
||||
_May_raise_ PH_INTEGER_PAIR PhGetIntegerPairSetting(
|
||||
_May_raise_ PH_INTEGER_PAIR
|
||||
NTAPI
|
||||
PhGetIntegerPairSetting(
|
||||
_In_ PWSTR Name
|
||||
);
|
||||
|
||||
PHAPPAPI
|
||||
_May_raise_ PPH_STRING PhGetStringSetting(
|
||||
_May_raise_ PPH_STRING
|
||||
NTAPI
|
||||
PhGetStringSetting(
|
||||
_In_ PWSTR Name
|
||||
);
|
||||
|
||||
PHAPPAPI
|
||||
_May_raise_ VOID PhSetIntegerSetting(
|
||||
_May_raise_ VOID
|
||||
NTAPI
|
||||
PhSetIntegerSetting(
|
||||
_In_ PWSTR Name,
|
||||
_In_ ULONG Value
|
||||
);
|
||||
|
||||
PHAPPAPI
|
||||
_May_raise_ VOID PhSetIntegerPairSetting(
|
||||
_May_raise_ VOID
|
||||
NTAPI
|
||||
PhSetIntegerPairSetting(
|
||||
_In_ PWSTR Name,
|
||||
_In_ PH_INTEGER_PAIR Value
|
||||
);
|
||||
|
||||
PHAPPAPI
|
||||
_May_raise_ VOID PhSetStringSetting(
|
||||
_May_raise_ VOID
|
||||
NTAPI
|
||||
PhSetStringSetting(
|
||||
_In_ PWSTR Name,
|
||||
_In_ PWSTR Value
|
||||
);
|
||||
|
||||
PHAPPAPI
|
||||
_May_raise_ VOID PhSetStringSetting2(
|
||||
_May_raise_ VOID
|
||||
NTAPI
|
||||
PhSetStringSetting2(
|
||||
_In_ PWSTR Name,
|
||||
_In_ PPH_STRINGREF Value
|
||||
);
|
||||
// end_phapppub
|
||||
|
||||
VOID PhClearIgnoredSettings(
|
||||
VOID
|
||||
@@ -89,8 +107,9 @@ VOID PhResetSettings(
|
||||
VOID
|
||||
);
|
||||
|
||||
#define PhaGetStringSetting(Name) ((PPH_STRING)PhAutoDereferenceObject(PhGetStringSetting(Name)))
|
||||
#define PhaGetStringSetting(Name) ((PPH_STRING)PhAutoDereferenceObject(PhGetStringSetting(Name))) // phapppub
|
||||
|
||||
// begin_phapppub
|
||||
// High-level settings creation
|
||||
|
||||
typedef struct _PH_SETTING_CREATE
|
||||
@@ -101,10 +120,13 @@ typedef struct _PH_SETTING_CREATE
|
||||
} PH_SETTING_CREATE, *PPH_SETTING_CREATE;
|
||||
|
||||
PHAPPAPI
|
||||
VOID PhAddSettings(
|
||||
VOID
|
||||
NTAPI
|
||||
PhAddSettings(
|
||||
_In_ PPH_SETTING_CREATE Settings,
|
||||
_In_ ULONG NumberOfSettings
|
||||
);
|
||||
// end_phapppub
|
||||
|
||||
// Cached settings
|
||||
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
#ifndef PH_SYSINFO_H
|
||||
#define PH_SYSINFO_H
|
||||
|
||||
// begin_phapppub
|
||||
typedef enum _PH_SYSINFO_VIEW_TYPE
|
||||
{
|
||||
SysInfoSummaryView,
|
||||
@@ -82,7 +83,9 @@ typedef struct _PH_SYSINFO_DRAW_PANEL
|
||||
PPH_STRING SubTitle;
|
||||
PPH_STRING SubTitleOverflow;
|
||||
} PH_SYSINFO_DRAW_PANEL, *PPH_SYSINFO_DRAW_PANEL;
|
||||
// end_phapppub
|
||||
|
||||
// begin_phapppub
|
||||
typedef struct _PH_SYSINFO_SECTION
|
||||
{
|
||||
// Public
|
||||
@@ -99,6 +102,7 @@ typedef struct _PH_SYSINFO_SECTION
|
||||
PH_GRAPH_STATE GraphState;
|
||||
PPH_SYSINFO_PARAMETERS Parameters;
|
||||
PVOID Reserved2[3];
|
||||
// end_phapppub
|
||||
|
||||
// Private
|
||||
|
||||
@@ -115,18 +119,24 @@ typedef struct _PH_SYSINFO_SECTION
|
||||
ULONG PanelId;
|
||||
WNDPROC GraphOldWndProc;
|
||||
WNDPROC PanelOldWndProc;
|
||||
// begin_phapppub
|
||||
} PH_SYSINFO_SECTION, *PPH_SYSINFO_SECTION;
|
||||
// end_phapppub
|
||||
|
||||
VOID PhSiNotifyChangeSettings(
|
||||
VOID
|
||||
);
|
||||
|
||||
// begin_phapppub
|
||||
PHAPPAPI
|
||||
VOID PhSiSetColorsGraphDrawInfo(
|
||||
VOID
|
||||
NTAPI
|
||||
PhSiSetColorsGraphDrawInfo(
|
||||
_Out_ PPH_GRAPH_DRAW_INFO DrawInfo,
|
||||
_In_ COLORREF Color1,
|
||||
_In_ COLORREF Color2
|
||||
);
|
||||
// end_phapppub
|
||||
|
||||
VOID PhShowSystemInformationDialog(
|
||||
_In_opt_ PWSTR SectionName
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
#ifndef PH_UIMODELS_H
|
||||
#define PH_UIMODELS_H
|
||||
|
||||
// begin_phapppub
|
||||
// Common state highlighting support
|
||||
|
||||
typedef struct _PH_SH_STATE
|
||||
@@ -9,6 +10,7 @@ typedef struct _PH_SH_STATE
|
||||
HANDLE StateListHandle;
|
||||
ULONG TickCount;
|
||||
} PH_SH_STATE, *PPH_SH_STATE;
|
||||
// end_phapppub
|
||||
|
||||
FORCEINLINE VOID PhChangeShStateTn(
|
||||
_Inout_ PPH_TREENEW_NODE Node,
|
||||
@@ -206,6 +208,7 @@ FORCEINLINE VOID PhChangeShStateTn(
|
||||
#define PHPN_APPID 0x200
|
||||
#define PHPN_DPIAWARENESS 0x400
|
||||
|
||||
// begin_phapppub
|
||||
typedef struct _PH_PROCESS_NODE
|
||||
{
|
||||
PH_TREENEW_NODE Node;
|
||||
@@ -219,6 +222,7 @@ typedef struct _PH_PROCESS_NODE
|
||||
|
||||
struct _PH_PROCESS_NODE *Parent;
|
||||
PPH_LIST Children;
|
||||
// end_phapppub
|
||||
|
||||
PH_STRINGREF TextCache[PHPRTLC_MAXIMUM];
|
||||
|
||||
@@ -311,7 +315,9 @@ typedef struct _PH_PROCESS_NODE
|
||||
PH_GRAPH_BUFFERS CpuGraphBuffers;
|
||||
PH_GRAPH_BUFFERS PrivateGraphBuffers;
|
||||
PH_GRAPH_BUFFERS IoGraphBuffers;
|
||||
// begin_phapppub
|
||||
} PH_PROCESS_NODE, *PPH_PROCESS_NODE;
|
||||
// end_phapppub
|
||||
|
||||
VOID PhProcessTreeListInitialization(
|
||||
VOID
|
||||
@@ -333,64 +339,90 @@ VOID PhReloadSettingsProcessTreeList(
|
||||
VOID
|
||||
);
|
||||
|
||||
// begin_phapppub
|
||||
PHAPPAPI
|
||||
struct _PH_TN_FILTER_SUPPORT *PhGetFilterSupportProcessTreeList(
|
||||
struct _PH_TN_FILTER_SUPPORT *
|
||||
NTAPI
|
||||
PhGetFilterSupportProcessTreeList(
|
||||
VOID
|
||||
);
|
||||
// end_phapppub
|
||||
|
||||
PPH_PROCESS_NODE PhAddProcessNode(
|
||||
_In_ PPH_PROCESS_ITEM ProcessItem,
|
||||
_In_ ULONG RunId
|
||||
);
|
||||
|
||||
// begin_phapppub
|
||||
PHAPPAPI
|
||||
PPH_PROCESS_NODE PhFindProcessNode(
|
||||
PPH_PROCESS_NODE
|
||||
NTAPI
|
||||
PhFindProcessNode(
|
||||
_In_ HANDLE ProcessId
|
||||
);
|
||||
// end_phapppub
|
||||
|
||||
VOID PhRemoveProcessNode(
|
||||
_In_ PPH_PROCESS_NODE ProcessNode
|
||||
);
|
||||
|
||||
// begin_phapppub
|
||||
PHAPPAPI
|
||||
VOID PhUpdateProcessNode(
|
||||
VOID
|
||||
NTAPI
|
||||
PhUpdateProcessNode(
|
||||
_In_ PPH_PROCESS_NODE ProcessNode
|
||||
);
|
||||
// end_phapppub
|
||||
|
||||
VOID PhTickProcessNodes(
|
||||
VOID
|
||||
);
|
||||
|
||||
// begin_phapppub
|
||||
PHAPPAPI
|
||||
PPH_PROCESS_ITEM PhGetSelectedProcessItem(
|
||||
PPH_PROCESS_ITEM
|
||||
NTAPI
|
||||
PhGetSelectedProcessItem(
|
||||
VOID
|
||||
);
|
||||
|
||||
PHAPPAPI
|
||||
VOID PhGetSelectedProcessItems(
|
||||
VOID
|
||||
NTAPI
|
||||
PhGetSelectedProcessItems(
|
||||
_Out_ PPH_PROCESS_ITEM **Processes,
|
||||
_Out_ PULONG NumberOfProcesses
|
||||
);
|
||||
|
||||
PHAPPAPI
|
||||
VOID PhDeselectAllProcessNodes(
|
||||
VOID
|
||||
NTAPI
|
||||
PhDeselectAllProcessNodes(
|
||||
VOID
|
||||
);
|
||||
|
||||
PHAPPAPI
|
||||
VOID PhExpandAllProcessNodes(
|
||||
VOID
|
||||
NTAPI
|
||||
PhExpandAllProcessNodes(
|
||||
_In_ BOOLEAN Expand
|
||||
);
|
||||
|
||||
PHAPPAPI
|
||||
VOID PhInvalidateAllProcessNodes(
|
||||
VOID
|
||||
NTAPI
|
||||
PhInvalidateAllProcessNodes(
|
||||
VOID
|
||||
);
|
||||
|
||||
PHAPPAPI
|
||||
VOID PhSelectAndEnsureVisibleProcessNode(
|
||||
VOID
|
||||
NTAPI
|
||||
PhSelectAndEnsureVisibleProcessNode(
|
||||
_In_ PPH_PROCESS_NODE ProcessNode
|
||||
);
|
||||
// end_phapppub
|
||||
|
||||
VOID PhSelectAndEnsureVisibleProcessNodes(
|
||||
_In_ PPH_PROCESS_NODE *ProcessNodes,
|
||||
@@ -438,6 +470,7 @@ PPH_LIST PhDuplicateProcessNodeList(
|
||||
#define PHSN_CONFIG 0x1
|
||||
#define PHSN_DESCRIPTION 0x2
|
||||
|
||||
// begin_phapppub
|
||||
typedef struct _PH_SERVICE_NODE
|
||||
{
|
||||
PH_TREENEW_NODE Node;
|
||||
@@ -445,6 +478,7 @@ typedef struct _PH_SERVICE_NODE
|
||||
PH_SH_STATE ShState;
|
||||
|
||||
PPH_SERVICE_ITEM ServiceItem;
|
||||
// end_phapppub
|
||||
|
||||
PH_STRINGREF TextCache[PHSVTLC_MAXIMUM];
|
||||
|
||||
@@ -458,7 +492,9 @@ typedef struct _PH_SERVICE_NODE
|
||||
PPH_STRING Description;
|
||||
|
||||
PPH_STRING TooltipText;
|
||||
// begin_phapppub
|
||||
} PH_SERVICE_NODE, *PPH_SERVICE_NODE;
|
||||
// end_phapppub
|
||||
|
||||
VOID PhServiceTreeListInitialization(
|
||||
VOID
|
||||
@@ -476,54 +512,76 @@ VOID PhSaveSettingsServiceTreeList(
|
||||
VOID
|
||||
);
|
||||
|
||||
// begin_phapppub
|
||||
PHAPPAPI
|
||||
struct _PH_TN_FILTER_SUPPORT *PhGetFilterSupportServiceTreeList(
|
||||
struct _PH_TN_FILTER_SUPPORT *
|
||||
NTAPI
|
||||
PhGetFilterSupportServiceTreeList(
|
||||
VOID
|
||||
);
|
||||
// end_phapppub
|
||||
|
||||
PPH_SERVICE_NODE PhAddServiceNode(
|
||||
_In_ PPH_SERVICE_ITEM ServiceItem,
|
||||
_In_ ULONG RunId
|
||||
);
|
||||
|
||||
// begin_phapppub
|
||||
PHAPPAPI
|
||||
PPH_SERVICE_NODE PhFindServiceNode(
|
||||
PPH_SERVICE_NODE
|
||||
NTAPI
|
||||
PhFindServiceNode(
|
||||
_In_ PPH_SERVICE_ITEM ServiceItem
|
||||
);
|
||||
// end_phapppub
|
||||
|
||||
VOID PhRemoveServiceNode(
|
||||
_In_ PPH_SERVICE_NODE ServiceNode
|
||||
);
|
||||
|
||||
// begin_phapppub
|
||||
PHAPPAPI
|
||||
VOID PhUpdateServiceNode(
|
||||
VOID
|
||||
NTAPI
|
||||
PhUpdateServiceNode(
|
||||
_In_ PPH_SERVICE_NODE ServiceNode
|
||||
);
|
||||
// end_phapppub
|
||||
|
||||
VOID PhTickServiceNodes(
|
||||
VOID
|
||||
);
|
||||
|
||||
// begin_phapppub
|
||||
PHAPPAPI
|
||||
PPH_SERVICE_ITEM PhGetSelectedServiceItem(
|
||||
PPH_SERVICE_ITEM
|
||||
NTAPI
|
||||
PhGetSelectedServiceItem(
|
||||
VOID
|
||||
);
|
||||
|
||||
PHAPPAPI
|
||||
VOID PhGetSelectedServiceItems(
|
||||
VOID
|
||||
NTAPI
|
||||
PhGetSelectedServiceItems(
|
||||
_Out_ PPH_SERVICE_ITEM **Services,
|
||||
_Out_ PULONG NumberOfServices
|
||||
);
|
||||
|
||||
PHAPPAPI
|
||||
VOID PhDeselectAllServiceNodes(
|
||||
VOID
|
||||
NTAPI
|
||||
PhDeselectAllServiceNodes(
|
||||
VOID
|
||||
);
|
||||
|
||||
PHAPPAPI
|
||||
VOID PhSelectAndEnsureVisibleServiceNode(
|
||||
VOID
|
||||
NTAPI
|
||||
PhSelectAndEnsureVisibleServiceNode(
|
||||
_In_ PPH_SERVICE_NODE ServiceNode
|
||||
);
|
||||
// end_phapppub
|
||||
|
||||
VOID PhCopyServiceList(
|
||||
VOID
|
||||
@@ -549,6 +607,7 @@ VOID PhWriteServiceList(
|
||||
#define PHNETLC_TIMESTAMP 8
|
||||
#define PHNETLC_MAXIMUM 9
|
||||
|
||||
// begin_phapppub
|
||||
typedef struct _PH_NETWORK_NODE
|
||||
{
|
||||
PH_TREENEW_NODE Node;
|
||||
@@ -556,6 +615,7 @@ typedef struct _PH_NETWORK_NODE
|
||||
PH_SH_STATE ShState;
|
||||
|
||||
PPH_NETWORK_ITEM NetworkItem;
|
||||
// end_phapppub
|
||||
|
||||
PH_STRINGREF TextCache[PHNETLC_MAXIMUM];
|
||||
|
||||
@@ -566,7 +626,9 @@ typedef struct _PH_NETWORK_NODE
|
||||
PPH_STRING TimeStampText;
|
||||
|
||||
PPH_STRING TooltipText;
|
||||
// begin_phapppub
|
||||
} PH_NETWORK_NODE, *PPH_NETWORK_NODE;
|
||||
// end_phapppub
|
||||
|
||||
VOID PhNetworkTreeListInitialization(
|
||||
VOID
|
||||
@@ -584,22 +646,28 @@ VOID PhSaveSettingsNetworkTreeList(
|
||||
VOID
|
||||
);
|
||||
|
||||
// begin_phapppub
|
||||
PHAPPAPI
|
||||
struct _PH_TN_FILTER_SUPPORT *PhGetFilterSupportNetworkTreeList(
|
||||
struct _PH_TN_FILTER_SUPPORT *
|
||||
NTAPI
|
||||
PhGetFilterSupportNetworkTreeList(
|
||||
VOID
|
||||
);
|
||||
// end_phapppub
|
||||
|
||||
PPH_NETWORK_NODE PhAddNetworkNode(
|
||||
_In_ PPH_NETWORK_ITEM NetworkItem,
|
||||
_In_ ULONG RunId
|
||||
);
|
||||
|
||||
// begin_phapppub
|
||||
PHAPPAPI
|
||||
PPH_NETWORK_NODE
|
||||
NTAPI
|
||||
PhFindNetworkNode(
|
||||
_In_ PPH_NETWORK_ITEM NetworkItem
|
||||
);
|
||||
// end_phapppub
|
||||
|
||||
VOID PhRemoveNetworkNode(
|
||||
_In_ PPH_NETWORK_NODE NetworkNode
|
||||
@@ -652,6 +720,7 @@ VOID PhWriteNetworkList(
|
||||
|
||||
#define PHTHTLC_MAXIMUM 6
|
||||
|
||||
// begin_phapppub
|
||||
typedef struct _PH_THREAD_NODE
|
||||
{
|
||||
PH_TREENEW_NODE Node;
|
||||
@@ -660,6 +729,7 @@ typedef struct _PH_THREAD_NODE
|
||||
|
||||
HANDLE ThreadId;
|
||||
PPH_THREAD_ITEM ThreadItem;
|
||||
// end_phapppub
|
||||
|
||||
PH_STRINGREF TextCache[PHTHTLC_MAXIMUM];
|
||||
|
||||
@@ -669,7 +739,9 @@ typedef struct _PH_THREAD_NODE
|
||||
PPH_STRING CyclesDeltaText; // used for Context Switches Delta as well
|
||||
PPH_STRING StartAddressText;
|
||||
PPH_STRING PriorityText;
|
||||
// begin_phapppub
|
||||
} PH_THREAD_NODE, *PPH_THREAD_NODE;
|
||||
// end_phapppub
|
||||
|
||||
typedef struct _PH_THREAD_LIST_CONTEXT
|
||||
{
|
||||
@@ -770,6 +842,7 @@ VOID PhDeselectAllThreadNodes(
|
||||
|
||||
#define PHMOTLC_MAXIMUM 16
|
||||
|
||||
// begin_phapppub
|
||||
typedef struct _PH_MODULE_NODE
|
||||
{
|
||||
PH_TREENEW_NODE Node;
|
||||
@@ -777,6 +850,7 @@ typedef struct _PH_MODULE_NODE
|
||||
PH_SH_STATE ShState;
|
||||
|
||||
PPH_MODULE_ITEM ModuleItem;
|
||||
// end_phapppub
|
||||
|
||||
PH_STRINGREF TextCache[PHMOTLC_MAXIMUM];
|
||||
|
||||
@@ -788,7 +862,9 @@ typedef struct _PH_MODULE_NODE
|
||||
WCHAR LoadCountText[PH_INT32_STR_LEN_1];
|
||||
PPH_STRING TimeStampText;
|
||||
PPH_STRING LoadTimeText;
|
||||
// begin_phapppub
|
||||
} PH_MODULE_NODE, *PPH_MODULE_NODE;
|
||||
// end_phapppub
|
||||
|
||||
typedef struct _PH_MODULE_LIST_CONTEXT
|
||||
{
|
||||
@@ -881,6 +957,7 @@ VOID PhDeselectAllModuleNodes(
|
||||
|
||||
#define PHHNTLC_MAXIMUM 9
|
||||
|
||||
// begin_phapppub
|
||||
typedef struct _PH_HANDLE_NODE
|
||||
{
|
||||
PH_TREENEW_NODE Node;
|
||||
@@ -889,12 +966,15 @@ typedef struct _PH_HANDLE_NODE
|
||||
|
||||
HANDLE Handle;
|
||||
PPH_HANDLE_ITEM HandleItem;
|
||||
// end_phapppub
|
||||
|
||||
PH_STRINGREF TextCache[PHHNTLC_MAXIMUM];
|
||||
|
||||
PPH_STRING GrantedAccessSymbolicText;
|
||||
WCHAR FileShareAccessText[4];
|
||||
// begin_phapppub
|
||||
} PH_HANDLE_NODE, *PPH_HANDLE_NODE;
|
||||
// end_phapppub
|
||||
|
||||
typedef struct _PH_HANDLE_LIST_CONTEXT
|
||||
{
|
||||
@@ -993,6 +1073,7 @@ VOID PhDeselectAllHandleNodes(
|
||||
|
||||
#define PHMMTLC_MAXIMUM 12
|
||||
|
||||
// begin_phapppub
|
||||
typedef struct _PH_MEMORY_NODE
|
||||
{
|
||||
PH_TREENEW_NODE Node;
|
||||
@@ -1004,6 +1085,7 @@ typedef struct _PH_MEMORY_NODE
|
||||
|
||||
struct _PH_MEMORY_NODE *Parent;
|
||||
PPH_LIST Children;
|
||||
// end_phapppub
|
||||
|
||||
PH_STRINGREF TextCache[PHMMTLC_MAXIMUM];
|
||||
|
||||
@@ -1019,7 +1101,9 @@ typedef struct _PH_MEMORY_NODE
|
||||
PPH_STRING LockedWsText;
|
||||
PPH_STRING CommittedText;
|
||||
PPH_STRING PrivateText;
|
||||
// begin_phapppub
|
||||
} PH_MEMORY_NODE, *PPH_MEMORY_NODE;
|
||||
// end_phapppub
|
||||
|
||||
typedef struct _PH_MEMORY_LIST_CONTEXT
|
||||
{
|
||||
|
||||
@@ -21,7 +21,6 @@
|
||||
* along with Process Hacker. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#define PH_NETPRV_PRIVATE
|
||||
#include <phapp.h>
|
||||
#include <ws2tcpip.h>
|
||||
#include <ws2ipdef.h>
|
||||
|
||||
@@ -55,7 +55,6 @@
|
||||
* available for DPCs and Interrupts separately (only a "system" cycle time).
|
||||
*/
|
||||
|
||||
#define PH_PROCPRV_PRIVATE
|
||||
#include <phapp.h>
|
||||
#include <kphuser.h>
|
||||
#include <extmgri.h>
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -7,17 +7,14 @@
|
||||
#define PHAPPAPI __declspec(dllimport)
|
||||
|
||||
#include "phgui.h"
|
||||
|
||||
#include "phnet.h"
|
||||
#include "circbuf.h"
|
||||
#include "dltmgr.h"
|
||||
#include "phnet.h"
|
||||
#include "providers.h"
|
||||
|
||||
#include "treenew.h"
|
||||
#include "graph.h"
|
||||
#include "emenu.h"
|
||||
#include "cpysave.h"
|
||||
|
||||
#include "phapppub.h"
|
||||
#include "phplug.h"
|
||||
|
||||
#endif
|
||||
|
||||
@@ -20,7 +20,6 @@
|
||||
* along with Process Hacker. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#define PH_SRVPRV_PRIVATE
|
||||
#include <phapp.h>
|
||||
#include <winevt.h>
|
||||
#include <extmgri.h>
|
||||
|
||||
@@ -77,17 +77,7 @@ for %%a in (
|
||||
winsta.h
|
||||
) do copy ..\..\phlib\include\%%a ..\..\sdk\include\%%a
|
||||
|
||||
for %%a in (
|
||||
colmgr.h
|
||||
extmgr.h
|
||||
hidnproc.h
|
||||
miniinfo.h
|
||||
notifico.h
|
||||
phplug.h
|
||||
procgrp.h
|
||||
providers.h
|
||||
sysinfo.h
|
||||
) do copy ..\..\ProcessHacker\include\%%a ..\..\sdk\include\%%a
|
||||
call phapppub_gen.cmd
|
||||
|
||||
for %%a in (
|
||||
phapppub.h
|
||||
|
||||
@@ -0,0 +1 @@
|
||||
..\..\tools\GenerateHeader\GenerateHeader\bin\Release\GenerateHeader.exe phapppub_options.txt
|
||||
@@ -0,0 +1,6 @@
|
||||
base=..\..\ProcessHacker\include
|
||||
modes=phapppub
|
||||
in=phapp.h;providers.h;uimodels.h;colmgr.h;extmgr.h;notifico.h;settings.h;phplug.h;procprpp.h;sysinfo.h;procgrp.h;miniinfo.h
|
||||
out=..\sdk\phapppub.h
|
||||
header=#ifndef _PH_PHAPPPUB_H\r\n#define _PH_PHAPPPUB_H\r\n\r\n// This file was automatically generated. Do not edit.\r\n\r\n#ifdef __cplusplus\r\nextern "C" {\r\n#endif\r\n
|
||||
footer=\r\n#ifdef __cplusplus\r\n}\r\n#endif\r\n\r\n#endif\r\n
|
||||
@@ -25,7 +25,6 @@
|
||||
#include <windowsx.h>
|
||||
#include <evntcons.h>
|
||||
#include "clretw.h"
|
||||
#include <colmgr.h>
|
||||
|
||||
#define DNATNC_STRUCTURE 0
|
||||
#define DNATNC_ID 1
|
||||
|
||||
@@ -23,7 +23,6 @@
|
||||
#include "exttools.h"
|
||||
#include "etwmon.h"
|
||||
#include "resource.h"
|
||||
#include <colmgr.h>
|
||||
#include <toolstatusintf.h>
|
||||
#include "disktabp.h"
|
||||
|
||||
|
||||
@@ -21,7 +21,6 @@
|
||||
*/
|
||||
|
||||
#include "exttools.h"
|
||||
#include <notifico.h>
|
||||
|
||||
#define GPU_ICON_ID 1
|
||||
#define DISK_ICON_ID 2
|
||||
|
||||
@@ -31,8 +31,6 @@
|
||||
#define COBJMACROS
|
||||
#include <windowsx.h>
|
||||
#include <phdk.h>
|
||||
#include <phapppub.h>
|
||||
#include <phplug.h>
|
||||
#include <phappresource.h>
|
||||
#include <windowsx.h>
|
||||
#include <winsock2.h>
|
||||
|
||||
@@ -320,9 +320,13 @@ BOOLEAN ProcessTreeFilterCallback(
|
||||
}
|
||||
}
|
||||
|
||||
if (serviceItem->ProcessIdString[0] != 0)
|
||||
if (serviceItem->ProcessId)
|
||||
{
|
||||
if (WordMatchStringZ(serviceItem->ProcessIdString))
|
||||
WCHAR processIdString[PH_INT32_STR_LEN_1];
|
||||
|
||||
PhPrintUInt32(processIdString, (ULONG)serviceItem->ProcessId);
|
||||
|
||||
if (WordMatchStringZ(processIdString))
|
||||
{
|
||||
matched = TRUE;
|
||||
break;
|
||||
@@ -374,9 +378,13 @@ BOOLEAN ServiceTreeFilterCallback(
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
if (serviceNode->ServiceItem->ProcessIdString[0] != 0)
|
||||
if (serviceNode->ServiceItem->ProcessId)
|
||||
{
|
||||
if (WordMatchStringZ(serviceNode->ServiceItem->ProcessIdString))
|
||||
WCHAR processIdString[PH_INT32_STR_LEN_1];
|
||||
|
||||
PhPrintUInt32(processIdString, (ULONG)serviceNode->ServiceItem->ProcessId);
|
||||
|
||||
if (WordMatchStringZ(processIdString))
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
|
||||
@@ -30,8 +30,6 @@
|
||||
#define COBJMACROS
|
||||
#define INITGUID
|
||||
#include <phdk.h>
|
||||
#include <phapppub.h>
|
||||
#include <phplug.h>
|
||||
#include <phappresource.h>
|
||||
#include <windowsx.h>
|
||||
#include <Wincodec.h>
|
||||
|
||||
@@ -21,7 +21,6 @@
|
||||
*/
|
||||
|
||||
#include "wndexp.h"
|
||||
#include <colmgr.h>
|
||||
#include "resource.h"
|
||||
|
||||
BOOLEAN WepWindowNodeHashtableCompareFunction(
|
||||
|
||||
@@ -0,0 +1,22 @@
|
||||
|
||||
Microsoft Visual Studio Solution File, Format Version 12.00
|
||||
# Visual Studio 2013
|
||||
VisualStudioVersion = 12.0.30723.0
|
||||
MinimumVisualStudioVersion = 10.0.40219.1
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "GenerateHeader", "GenerateHeader\GenerateHeader.csproj", "{DA075B6D-3506-42FA-8FD8-34F79E5578E0}"
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
Debug|Any CPU = Debug|Any CPU
|
||||
Release|Any CPU = Release|Any CPU
|
||||
EndGlobalSection
|
||||
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||
{DA075B6D-3506-42FA-8FD8-34F79E5578E0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{DA075B6D-3506-42FA-8FD8-34F79E5578E0}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{DA075B6D-3506-42FA-8FD8-34F79E5578E0}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{DA075B6D-3506-42FA-8FD8-34F79E5578E0}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
EndGlobalSection
|
||||
GlobalSection(SolutionProperties) = preSolution
|
||||
HideSolutionNode = FALSE
|
||||
EndGlobalSection
|
||||
EndGlobal
|
||||
@@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
<configuration>
|
||||
<startup>
|
||||
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
|
||||
</startup>
|
||||
</configuration>
|
||||
@@ -0,0 +1,59 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
|
||||
<PropertyGroup>
|
||||
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
||||
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
|
||||
<ProjectGuid>{DA075B6D-3506-42FA-8FD8-34F79E5578E0}</ProjectGuid>
|
||||
<OutputType>Exe</OutputType>
|
||||
<AppDesignerFolder>Properties</AppDesignerFolder>
|
||||
<RootNamespace>GenerateHeader</RootNamespace>
|
||||
<AssemblyName>GenerateHeader</AssemblyName>
|
||||
<TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
|
||||
<FileAlignment>512</FileAlignment>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
||||
<PlatformTarget>AnyCPU</PlatformTarget>
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
<DebugType>full</DebugType>
|
||||
<Optimize>false</Optimize>
|
||||
<OutputPath>bin\Debug\</OutputPath>
|
||||
<DefineConstants>DEBUG;TRACE</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
|
||||
<PlatformTarget>AnyCPU</PlatformTarget>
|
||||
<DebugType>pdbonly</DebugType>
|
||||
<Optimize>true</Optimize>
|
||||
<OutputPath>bin\Release\</OutputPath>
|
||||
<DefineConstants>TRACE</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<Reference Include="System" />
|
||||
<Reference Include="System.Core" />
|
||||
<Reference Include="System.Xml.Linq" />
|
||||
<Reference Include="System.Data.DataSetExtensions" />
|
||||
<Reference Include="Microsoft.CSharp" />
|
||||
<Reference Include="System.Data" />
|
||||
<Reference Include="System.Xml" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Compile Include="HeaderGen.cs" />
|
||||
<Compile Include="Program.cs" />
|
||||
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="App.config" />
|
||||
</ItemGroup>
|
||||
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
||||
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
|
||||
Other similar extension points exist, see Microsoft.Common.targets.
|
||||
<Target Name="BeforeBuild">
|
||||
</Target>
|
||||
<Target Name="AfterBuild">
|
||||
</Target>
|
||||
-->
|
||||
</Project>
|
||||
@@ -0,0 +1,213 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace GenerateHeader
|
||||
{
|
||||
class HeaderFile
|
||||
{
|
||||
public string Name;
|
||||
public List<string> Lines;
|
||||
public List<HeaderFile> Dependencies;
|
||||
}
|
||||
|
||||
class HeaderGen
|
||||
{
|
||||
private string _baseDirectory;
|
||||
private string[] _modes;
|
||||
private string[] _files;
|
||||
private string _outputFile;
|
||||
private string _header = "";
|
||||
private string _footer = "";
|
||||
|
||||
private string UnEscape(string text)
|
||||
{
|
||||
return text.Replace("\\r", "\r").Replace("\\n", "\n").Replace("\\\\", "\\");
|
||||
}
|
||||
|
||||
public void LoadConfig(string fileName)
|
||||
{
|
||||
string[] lines = File.ReadAllLines(fileName);
|
||||
|
||||
foreach (string line in lines)
|
||||
{
|
||||
string[] split = line.Split(new char[] { '=' }, 2);
|
||||
|
||||
switch (split[0])
|
||||
{
|
||||
case "base":
|
||||
_baseDirectory = split[1];
|
||||
break;
|
||||
case "modes":
|
||||
_modes = split[1].ToLowerInvariant().Split(';');
|
||||
break;
|
||||
case "in":
|
||||
_files = split[1].Split(';');
|
||||
break;
|
||||
case "out":
|
||||
_outputFile = split[1];
|
||||
break;
|
||||
case "header":
|
||||
_header = UnEscape(split[1]);
|
||||
break;
|
||||
case "footer":
|
||||
_footer = UnEscape(split[1]);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private List<HeaderFile> OrderHeaderFiles(List<HeaderFile> headerFiles)
|
||||
{
|
||||
var result = new List<HeaderFile>();
|
||||
var done = new HashSet<HeaderFile>();
|
||||
|
||||
foreach (var h in headerFiles)
|
||||
OrderHeaderFiles(result, done, h);
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
private void OrderHeaderFiles(List<HeaderFile> result, HashSet<HeaderFile> done, HeaderFile headerFile)
|
||||
{
|
||||
if (done.Contains(headerFile))
|
||||
return;
|
||||
|
||||
done.Add(headerFile);
|
||||
|
||||
foreach (var h in headerFile.Dependencies)
|
||||
OrderHeaderFiles(result, done, h);
|
||||
|
||||
result.Add(headerFile);
|
||||
}
|
||||
|
||||
private List<string> ProcessHeaderLines(IEnumerable<string> lines)
|
||||
{
|
||||
var result = new List<string>();
|
||||
var modes = new HashSet<string>();
|
||||
var blankLine = false;
|
||||
|
||||
foreach (var line in lines)
|
||||
{
|
||||
var s = line.Trim();
|
||||
|
||||
if (s.StartsWith("// begin_"))
|
||||
{
|
||||
modes.Add(s.Remove(0, "// begin_".Length));
|
||||
}
|
||||
else if (s.StartsWith("// end_"))
|
||||
{
|
||||
modes.Remove(s.Remove(0, "// end_".Length));
|
||||
}
|
||||
else
|
||||
{
|
||||
bool blockMode = _modes.Any(modes.Contains);
|
||||
bool lineMode = _modes.Any(mode =>
|
||||
{
|
||||
int indexOfMarker = s.LastIndexOf("// " + mode);
|
||||
if (indexOfMarker == -1)
|
||||
return false;
|
||||
|
||||
return s.Substring(indexOfMarker).Trim().All(c => char.IsLetterOrDigit(c) || c == ' ' || c == '/');
|
||||
});
|
||||
|
||||
if (blockMode || lineMode)
|
||||
{
|
||||
if (blankLine && result.Count != 0)
|
||||
result.Add(string.Empty);
|
||||
|
||||
result.Add(line);
|
||||
blankLine = false;
|
||||
}
|
||||
else if (s.Length == 0)
|
||||
{
|
||||
blankLine = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
public void Execute()
|
||||
{
|
||||
// Read in all header files.
|
||||
|
||||
var headerFiles = _files.Select(fileName =>
|
||||
{
|
||||
var fullFileName = _baseDirectory + "\\" + fileName;
|
||||
var lines = File.ReadAllLines(fullFileName).ToList();
|
||||
|
||||
return new HeaderFile { Name = Path.GetFileName(fullFileName).ToLowerInvariant(), Lines = lines };
|
||||
}).ToDictionary(h => h.Name);
|
||||
|
||||
foreach (var h in headerFiles.Values)
|
||||
{
|
||||
var partitions =
|
||||
h.Lines
|
||||
.Select(s =>
|
||||
{
|
||||
var trimmed = s.Trim().ToLowerInvariant();
|
||||
if (trimmed.StartsWith("#include <") && trimmed.EndsWith(">"))
|
||||
{
|
||||
HeaderFile d;
|
||||
if (headerFiles.TryGetValue(trimmed.Remove(trimmed.Length - 1).Remove(0, "#include <".Length), out d))
|
||||
return Tuple.Create(s, d);
|
||||
else
|
||||
return Tuple.Create<string, HeaderFile>(s, null);
|
||||
}
|
||||
return Tuple.Create<string, HeaderFile>(s, null);
|
||||
})
|
||||
.ToLookup(p => p.Item2 != null);
|
||||
|
||||
h.Lines = partitions[false].Select(p => p.Item1).ToList();
|
||||
h.Dependencies = partitions[true].Select(p => p.Item2).Distinct().ToList();
|
||||
|
||||
foreach (var d in h.Dependencies)
|
||||
Console.WriteLine("Dependency: " + h.Name + " -> " + d.Name);
|
||||
}
|
||||
|
||||
// Generate the ordering.
|
||||
|
||||
var orderedHeaderFiles = OrderHeaderFiles(_files.Select(s => headerFiles[Path.GetFileName(s).ToLower()]).ToList());
|
||||
|
||||
// Process each header file and remove irrelevant content.
|
||||
|
||||
foreach (var h in orderedHeaderFiles)
|
||||
h.Lines = ProcessHeaderLines(h.Lines);
|
||||
|
||||
// Write out the result.
|
||||
|
||||
StreamWriter sw = new StreamWriter(_baseDirectory + "\\" + _outputFile);
|
||||
|
||||
// Header
|
||||
|
||||
sw.Write(_header);
|
||||
|
||||
// Header files
|
||||
|
||||
foreach (var h in orderedHeaderFiles)
|
||||
{
|
||||
Console.WriteLine("Header file: " + h.Name);
|
||||
|
||||
sw.WriteLine();
|
||||
sw.WriteLine("//");
|
||||
sw.WriteLine("// " + Path.GetFileNameWithoutExtension(h.Name));
|
||||
sw.WriteLine("//");
|
||||
sw.WriteLine();
|
||||
|
||||
foreach (var line in h.Lines)
|
||||
sw.WriteLine(line);
|
||||
}
|
||||
|
||||
// Footer
|
||||
|
||||
sw.Write(_footer);
|
||||
|
||||
sw.Close();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,27 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace GenerateHeader
|
||||
{
|
||||
class Program
|
||||
{
|
||||
static void Main(string[] args)
|
||||
{
|
||||
HeaderGen gen = new HeaderGen();
|
||||
string configFile = args.Length > 0 ? args[0] : "options.txt";
|
||||
|
||||
try
|
||||
{
|
||||
gen.LoadConfig(configFile);
|
||||
gen.Execute();
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Console.WriteLine(ex.ToString());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,36 @@
|
||||
using System.Reflection;
|
||||
using System.Runtime.CompilerServices;
|
||||
using System.Runtime.InteropServices;
|
||||
|
||||
// General Information about an assembly is controlled through the following
|
||||
// set of attributes. Change these attribute values to modify the information
|
||||
// associated with an assembly.
|
||||
[assembly: AssemblyTitle("GenerateHeader")]
|
||||
[assembly: AssemblyDescription("")]
|
||||
[assembly: AssemblyConfiguration("")]
|
||||
[assembly: AssemblyCompany("")]
|
||||
[assembly: AssemblyProduct("GenerateHeader")]
|
||||
[assembly: AssemblyCopyright("Copyright © 2015")]
|
||||
[assembly: AssemblyTrademark("")]
|
||||
[assembly: AssemblyCulture("")]
|
||||
|
||||
// Setting ComVisible to false makes the types in this assembly not visible
|
||||
// to COM components. If you need to access a type in this assembly from
|
||||
// COM, set the ComVisible attribute to true on that type.
|
||||
[assembly: ComVisible(false)]
|
||||
|
||||
// The following GUID is for the ID of the typelib if this project is exposed to COM
|
||||
[assembly: Guid("efba3f55-999d-4dde-8217-118ba2aed831")]
|
||||
|
||||
// Version information for an assembly consists of the following four values:
|
||||
//
|
||||
// Major Version
|
||||
// Minor Version
|
||||
// Build Number
|
||||
// Revision
|
||||
//
|
||||
// You can specify all the values or you can default the Build and Revision Numbers
|
||||
// by using the '*' as shown below:
|
||||
// [assembly: AssemblyVersion("1.0.*")]
|
||||
[assembly: AssemblyVersion("1.0.0.0")]
|
||||
[assembly: AssemblyFileVersion("1.0.0.0")]
|
||||
Binary file not shown.
Binary file not shown.
Reference in New Issue
Block a user