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:
wj32
2015-06-17 11:12:02 +00:00
parent dba0187912
commit 1533dd503d
37 changed files with 1094 additions and 1753 deletions
-81
View File
@@ -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;
}
+6
View File
@@ -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,
+2
View File
@@ -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
+13 -9
View File
@@ -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,
+52 -4
View File
@@ -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)
+125 -41
View File
@@ -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
+31 -9
View File
@@ -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
+11 -1
View File
@@ -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
+101 -17
View File
@@ -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
{
-1
View File
@@ -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>
-1
View File
@@ -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
+2 -5
View File
@@ -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
-1
View File
@@ -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>
+1 -11
View File
@@ -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
+1
View File
@@ -0,0 +1 @@
..\..\tools\GenerateHeader\GenerateHeader\bin\Release\GenerateHeader.exe phapppub_options.txt
+6
View File
@@ -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
-1
View File
@@ -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>
+12 -4
View File
@@ -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")]