19 #define DPCS_PROCESS_ID ((HANDLE)(LONG_PTR)-2)
20 #define INTERRUPTS_PROCESS_ID ((HANDLE)(LONG_PTR)-3)
24 #define PH_IS_REAL_PROCESS_ID(ProcessId) ((LONG_PTR)(ProcessId) > 0)
27 #define PH_IS_FAKE_PROCESS_ID(ProcessId) ((LONG_PTR)(ProcessId) < 0)
30 #define PH_PROCESS_ITEM_REMOVED 0x1
167 #define PH_PROCESS_RECORD_DEAD 0x1
169 #define PH_PROCESS_RECORD_STAT_REF 0x2
208 _In_ ULONG PriorityClass
222 _Out_opt_ PPH_PROCESS_ITEM **ProcessItems,
223 _Out_ PULONG NumberOfProcessItems
230 _In_opt_ PPH_PROCESS_ITEM ProcessItem,
232 _Out_ PLARGE_INTEGER Time
239 _In_opt_ PPH_PROCESS_ITEM ProcessItem,
247 _In_ PPH_PROCESS_RECORD ProcessRecord
254 _In_ PPH_PROCESS_RECORD ProcessRecord
261 _In_ PPH_PROCESS_RECORD ProcessRecord
268 _In_ PPH_PROCESS_RECORD ProcessRecord
276 _In_ PLARGE_INTEGER Time
283 _In_ HANDLE ParentProcessId,
285 _In_ PLARGE_INTEGER CreateTime
292 _In_ PPH_PROCESS_RECORD Record
344 _In_ PPH_SERVICE_MODIFIED_DATA Data
352 #define PH_NETWORK_OWNER_INFO_SIZE 16
384 _In_ ULONG ProtocolType,
394 _In_ ULONG ProtocolType
510 _In_
LONG PriorityWin32
513 #define PH_HANDLE_FILE_SHARED_READ 0x1
514 #define PH_HANDLE_FILE_SHARED_WRITE 0x2
515 #define PH_HANDLE_FILE_SHARED_DELETE 0x4
516 #define PH_HANDLE_FILE_SHARED_MASK 0x7
649 _In_ PPH_MEMORY_ITEM_LIST List
656 _In_ PPH_MEMORY_ITEM_LIST List,
660 #define PH_QUERY_MEMORY_IGNORE_FREE 0x1
661 #define PH_QUERY_MEMORY_REGION_TYPE 0x2
662 #define PH_QUERY_MEMORY_WS_COUNTERS 0x4
670 _Out_ PPH_MEMORY_ITEM_LIST List
688 _In_ HWND TreeNewHandle,
696 _In_ HWND TreeNewHandle
746 _In_ PPH_PROCESS_NODE ProcessNode
760 _Out_ PPH_PROCESS_ITEM **Processes,
761 _Out_ PULONG NumberOfProcesses
789 _In_ PPH_PROCESS_NODE ProcessNode
813 _In_ PPH_SERVICE_ITEM ServiceItem
820 _In_ PPH_SERVICE_NODE ServiceNode
834 _Out_ PPH_SERVICE_ITEM **Services,
835 _Out_ PULONG NumberOfServices
849 _In_ PPH_SERVICE_NODE ServiceNode
873 _In_ PPH_NETWORK_ITEM NetworkItem
934 _In_ HWND DialogWindowHandle
941 _In_ HWND DialogWindowHandle
1004 _In_ HANDLE ProcessHandle,
1005 _Out_ PH_KNOWN_PROCESS_TYPE *KnownProcessType
1032 _In_ PH_KNOWN_PROCESS_TYPE KnownProcessType,
1033 _Out_ PPH_KNOWN_PROCESS_COMMAND_LINE KnownCommandLine
1051 _In_ BOOLEAN UseShellExecute,
1052 _In_opt_ PWSTR ErrorMessage
1059 _Inout_ PPH_SYMBOL_PROVIDER SymbolProvider
1066 _Inout_ LPNMLVGETINFOTIP GetInfoTip,
1074 _In_ HWND ListViewHandle
1080 _In_ HWND ListViewHandle
1087 _In_ HWND ListViewHandle,
1095 _In_opt_ PWSTR PositionSettingName,
1096 _In_opt_ PWSTR SizeSettingName,
1097 _In_ HWND WindowHandle
1104 _In_opt_ PWSTR PositionSettingName,
1105 _In_opt_ PWSTR SizeSettingName,
1106 _In_ HWND WindowHandle
1114 _In_ HWND ListViewHandle
1122 _In_ HWND ListViewHandle
1136 _Out_opt_ PULONG MajorVersion,
1137 _Out_opt_ PULONG MinorVersion,
1138 _Reserved_ PULONG Reserved,
1139 _Out_opt_ PULONG RevisionNumber
1149 #define PH_SHELL_APP_PROPAGATE_PARAMETERS 0x1
1150 #define PH_SHELL_APP_PROPAGATE_PARAMETERS_IGNORE_VISIBILITY 0x2
1151 #define PH_SHELL_APP_PROPAGATE_PARAMETERS_FORCE_SETTINGS 0x4
1158 _In_opt_ PWSTR Parameters,
1159 _In_ ULONG ShowWindowType,
1161 _In_ ULONG AppFlags,
1162 _In_opt_ ULONG Timeout,
1163 _Out_opt_ PHANDLE ProcessHandle
1178 #define PH_TN_COLUMN_MENU_HIDE_COLUMN_ID ((ULONG)-1)
1179 #define PH_TN_COLUMN_MENU_CHOOSE_COLUMNS_ID ((ULONG)-2)
1180 #define PH_TN_COLUMN_MENU_SIZE_COLUMN_TO_FIT_ID ((ULONG)-3)
1181 #define PH_TN_COLUMN_MENU_SIZE_ALL_COLUMNS_TO_FIT_ID ((ULONG)-4)
1182 #define PH_TN_COLUMN_MENU_RESET_SORT_ID ((ULONG)-5)
1188 _Inout_ PPH_TN_COLUMN_MENU_DATA Data
1195 _Inout_ PPH_TN_COLUMN_MENU_DATA Data
1202 _In_ PPH_TN_COLUMN_MENU_DATA Data
1214 _In_opt_ PVOID Context
1227 _Out_ PPH_TN_FILTER_SUPPORT Support,
1228 _In_ HWND TreeNewHandle,
1236 _In_ PPH_TN_FILTER_SUPPORT Support
1243 _In_ PPH_TN_FILTER_SUPPORT Support,
1245 _In_opt_ PVOID Context
1252 _In_ PPH_TN_FILTER_SUPPORT Support,
1253 _In_ PPH_TN_FILTER_ENTRY Entry
1260 _In_ PPH_TN_FILTER_SUPPORT Support,
1268 _In_ PPH_TN_FILTER_SUPPORT Support
1271 #define PH_MAINWND_CLASSNAME L"ProcessHacker" // phapppub
1275 #define WM_PH_SHOW_PROCESS_PROPERTIES (WM_APP + 120)
1276 #define WM_PH_DESTROY (WM_APP + 121)
1277 #define WM_PH_SAVE_ALL_SETTINGS (WM_APP + 122)
1278 #define WM_PH_PREPARE_FOR_EARLY_SHUTDOWN (WM_APP + 123)
1279 #define WM_PH_CANCEL_EARLY_SHUTDOWN (WM_APP + 124)
1280 #define WM_PH_TOGGLE_VISIBLE (WM_APP + 127)
1281 #define WM_PH_SHOW_MEMORY_EDITOR (WM_APP + 128)
1282 #define WM_PH_SHOW_MEMORY_RESULTS (WM_APP + 129)
1283 #define WM_PH_SELECT_TAB_PAGE (WM_APP + 130)
1284 #define WM_PH_GET_CALLBACK_LAYOUT_PADDING (WM_APP + 131)
1285 #define WM_PH_INVALIDATE_LAYOUT_PADDING (WM_APP + 132)
1286 #define WM_PH_SELECT_PROCESS_NODE (WM_APP + 133)
1287 #define WM_PH_SELECT_SERVICE_ITEM (WM_APP + 134)
1288 #define WM_PH_SELECT_NETWORK_ITEM (WM_APP + 135)
1289 #define WM_PH_INVOKE (WM_APP + 138)
1290 #define WM_PH_ADD_MENU_ITEM (WM_APP + 139)
1291 #define WM_PH_ADD_TAB_PAGE (WM_APP + 140)
1292 #define WM_PH_REFRESH (WM_APP + 141)
1293 #define WM_PH_GET_UPDATE_AUTOMATICALLY (WM_APP + 142)
1294 #define WM_PH_SET_UPDATE_AUTOMATICALLY (WM_APP + 143)
1296 #define ProcessHacker_ShowProcessProperties(hWnd, ProcessItem) \
1297 SendMessage(hWnd, WM_PH_SHOW_PROCESS_PROPERTIES, 0, (LPARAM)(ProcessItem))
1298 #define ProcessHacker_Destroy(hWnd) \
1299 SendMessage(hWnd, WM_PH_DESTROY, 0, 0)
1300 #define ProcessHacker_SaveAllSettings(hWnd) \
1301 SendMessage(hWnd, WM_PH_SAVE_ALL_SETTINGS, 0, 0)
1302 #define ProcessHacker_PrepareForEarlyShutdown(hWnd) \
1303 SendMessage(hWnd, WM_PH_PREPARE_FOR_EARLY_SHUTDOWN, 0, 0)
1304 #define ProcessHacker_CancelEarlyShutdown(hWnd) \
1305 SendMessage(hWnd, WM_PH_CANCEL_EARLY_SHUTDOWN, 0, 0)
1306 #define ProcessHacker_ToggleVisible(hWnd, AlwaysShow) \
1307 SendMessage(hWnd, WM_PH_TOGGLE_VISIBLE, (WPARAM)(AlwaysShow), 0)
1308 #define ProcessHacker_ShowMemoryEditor(hWnd, ShowMemoryEditor) \
1309 PostMessage(hWnd, WM_PH_SHOW_MEMORY_EDITOR, 0, (LPARAM)(ShowMemoryEditor))
1310 #define ProcessHacker_ShowMemoryResults(hWnd, ShowMemoryResults) \
1311 PostMessage(hWnd, WM_PH_SHOW_MEMORY_RESULTS, 0, (LPARAM)(ShowMemoryResults))
1312 #define ProcessHacker_SelectTabPage(hWnd, Index) \
1313 SendMessage(hWnd, WM_PH_SELECT_TAB_PAGE, (WPARAM)(Index), 0)
1314 #define ProcessHacker_GetCallbackLayoutPadding(hWnd) \
1315 ((PPH_CALLBACK)SendMessage(hWnd, WM_PH_GET_CALLBACK_LAYOUT_PADDING, 0, 0))
1316 #define ProcessHacker_InvalidateLayoutPadding(hWnd) \
1317 SendMessage(hWnd, WM_PH_INVALIDATE_LAYOUT_PADDING, 0, 0)
1318 #define ProcessHacker_SelectProcessNode(hWnd, ProcessNode) \
1319 SendMessage(hWnd, WM_PH_SELECT_PROCESS_NODE, 0, (LPARAM)(ProcessNode))
1320 #define ProcessHacker_SelectServiceItem(hWnd, ServiceItem) \
1321 SendMessage(hWnd, WM_PH_SELECT_SERVICE_ITEM, 0, (LPARAM)(ServiceItem))
1322 #define ProcessHacker_SelectNetworkItem(hWnd, NetworkItem) \
1323 SendMessage(hWnd, WM_PH_SELECT_NETWORK_ITEM, 0, (LPARAM)(NetworkItem))
1324 #define ProcessHacker_Invoke(hWnd, Function, Parameter) \
1325 PostMessage(hWnd, WM_PH_INVOKE, (WPARAM)(Parameter), (LPARAM)(Function))
1326 #define ProcessHacker_AddMenuItem(hWnd, AddMenuItem) \
1327 ((ULONG_PTR)SendMessage(hWnd, WM_PH_ADD_MENU_ITEM, 0, (LPARAM)(AddMenuItem)))
1328 #define ProcessHacker_AddTabPage(hWnd, TabPage) \
1329 ((PPH_ADDITIONAL_TAB_PAGE)SendMessage(hWnd, WM_PH_ADD_TAB_PAGE, 0, (LPARAM)(TabPage)))
1330 #define ProcessHacker_Refresh(hWnd) \
1331 SendMessage(hWnd, WM_PH_REFRESH, 0, 0)
1332 #define ProcessHacker_GetUpdateAutomatically(hWnd) \
1333 ((BOOLEAN)SendMessage(hWnd, WM_PH_GET_UPDATE_AUTOMATICALLY, 0, 0))
1334 #define ProcessHacker_SetUpdateAutomatically(hWnd, Value) \
1335 SendMessage(hWnd, WM_PH_SET_UPDATE_AUTOMATICALLY, (WPARAM)(Value), 0)
1358 _In_ PVOID Parameter1,
1359 _In_ PVOID Parameter2,
1360 _In_ PVOID Parameter3,
1378 #define PH_NOTIFY_MINIMUM 0x1
1379 #define PH_NOTIFY_PROCESS_CREATE 0x1
1380 #define PH_NOTIFY_PROCESS_DELETE 0x2
1381 #define PH_NOTIFY_SERVICE_CREATE 0x4
1382 #define PH_NOTIFY_SERVICE_DELETE 0x8
1383 #define PH_NOTIFY_SERVICE_START 0x10
1384 #define PH_NOTIFY_SERVICE_STOP 0x20
1385 #define PH_NOTIFY_MAXIMUM 0x40
1386 #define PH_NOTIFY_VALID_MASK 0x3f
1409 PPH_PROCESS_PROPCONTEXT
1412 _In_ HWND ParentWindowHandle,
1413 _In_ PPH_PROCESS_ITEM ProcessItem
1420 _Inout_ PPH_PROCESS_PROPCONTEXT PropContext,
1421 _In_ HANDLE ThreadId
1428 _Inout_ PPH_PROCESS_PROPCONTEXT PropContext,
1429 _In_
_Assume_refs_(1) PPH_PROCESS_PROPPAGECONTEXT PropPageContext
1436 _Inout_ PPH_PROCESS_PROPCONTEXT PropContext,
1437 _In_ HPROPSHEETPAGE PropSheetPageHandle
1441 PPH_PROCESS_PROPPAGECONTEXT
1444 _In_ LPCWSTR Template,
1445 _In_ DLGPROC DlgProc,
1446 _In_opt_ PVOID Context
1450 PPH_PROCESS_PROPPAGECONTEXT
1453 _In_opt_ PVOID InstanceHandle,
1454 _In_ LPCWSTR Template,
1455 _In_ DLGPROC DlgProc,
1456 _In_opt_ PVOID Context
1466 _Out_ LPPROPSHEETPAGE *PropSheetPage,
1467 _Out_ PPH_PROCESS_PROPPAGECONTEXT *PropPageContext,
1468 _Out_ PPH_PROCESS_ITEM *ProcessItem
1478 #define PH_PROP_PAGE_TAB_CONTROL_PARENT ((PPH_LAYOUT_ITEM)0x1)
1501 _In_ PPH_PROCESS_PROPPAGECONTEXT PropPageContext
1504 if (!PropPageContext->LayoutInitialized)
1519 _In_ PPH_PROCESS_PROPPAGECONTEXT PropPageContext
1523 PropPageContext->LayoutInitialized =
TRUE;
1530 _In_ PPH_PROCESS_PROPCONTEXT Context
1533 #define PH_LOG_ENTRY_MESSAGE 9 // phapppub
1551 _In_ PPH_LOG_ENTRY Entry
1565 _In_ BOOLEAN ConnectOnly
1574 _In_ BOOLEAN ConnectOnly
1633 _In_ ULONG SessionId
1641 _In_ ULONG SessionId
1649 _In_ ULONG SessionId
1657 _In_ PPH_PROCESS_ITEM *Processes,
1658 _In_ ULONG NumberOfProcesses
1674 _In_ PPH_PROCESS_ITEM *Processes,
1675 _In_ ULONG NumberOfProcesses
1683 _In_ PPH_PROCESS_ITEM *Processes,
1684 _In_ ULONG NumberOfProcesses
1708 _In_ PPH_PROCESS_ITEM *Processes,
1709 _In_ ULONG NumberOfProcesses
1717 _In_ PPH_PROCESS_ITEM
Process,
1742 _In_ PPH_PROCESS_ITEM *Processes,
1743 _In_ ULONG NumberOfProcesses,
1744 _In_ ULONG IoPriority
1752 _In_ PPH_PROCESS_ITEM
Process,
1753 _In_ ULONG PagePriority
1761 _In_ PPH_PROCESS_ITEM *Processes,
1762 _In_ ULONG NumberOfProcesses,
1763 _In_ ULONG PriorityClass
1819 _In_ PPH_NETWORK_ITEM *Connections,
1820 _In_ ULONG NumberOfConnections
1828 _In_ PPH_THREAD_ITEM *Threads,
1829 _In_ ULONG NumberOfThreads
1838 _In_ PPH_THREAD_ITEM *Threads,
1839 _In_ ULONG NumberOfThreads
1847 _In_ PPH_THREAD_ITEM *Threads,
1848 _In_ ULONG NumberOfThreads
1856 _In_ PPH_THREAD_ITEM *Threads,
1857 _In_ ULONG NumberOfThreads
1865 _In_ PPH_THREAD_ITEM Thread,
1866 _In_ ULONG ThreadPriorityWin32
1874 _In_ PPH_THREAD_ITEM Thread,
1875 _In_ ULONG IoPriority
1883 _In_ PPH_THREAD_ITEM Thread,
1884 _In_ ULONG PagePriority
1893 _In_ PPH_MODULE_ITEM Module
1902 _In_ PPH_MEMORY_ITEM MemoryItem,
1912 _In_ PPH_HANDLE_ITEM *Handles,
1913 _In_ ULONG NumberOfHandles,
1923 _In_ PPH_HANDLE_ITEM Handle,
1924 _In_ ULONG Attributes
1931 _In_ HWND ParentWindowHandle,
1932 _In_ ULONG_PTR AffinityMask,
1933 _Out_ PULONG_PTR NewAffinityMask
1936 #define PH_CHOICE_DIALOG_SAVED_CHOICES 10
1938 #define PH_CHOICE_DIALOG_CHOICE 0x0
1939 #define PH_CHOICE_DIALOG_USER_CHOICE 0x1
1940 #define PH_CHOICE_DIALOG_PASSWORD 0x2
1941 #define PH_CHOICE_DIALOG_TYPE_MASK 0x3
1947 _In_ HWND ParentWindowHandle,
1950 _In_opt_ PWSTR *Choices,
1951 _In_opt_ ULONG NumberOfChoices,
1952 _In_opt_ PWSTR Option,
1955 _Inout_opt_ PBOOLEAN SelectedOption,
1956 _In_opt_ PWSTR SavedChoicesSettingName
1963 _In_ HWND ParentWindowHandle,
1972 _In_ HWND ParentWindowHandle,
1973 _In_ PPH_PROCESS_RECORD Record
1982 _In_opt_ PWSTR UserName,
1983 _In_opt_ PWSTR Password,
1984 _In_opt_ ULONG LogonType,
1985 _In_opt_ HANDLE ProcessIdWithToken,
1986 _In_ ULONG SessionId,
1987 _In_ PWSTR DesktopName,
1988 _In_ BOOLEAN UseLinkedToken
1991 #define WM_PH_SET_LIST_VIEW_SETTINGS (WM_APP + 701)
1997 _In_ HWND ParentWindowHandle,
1998 _In_ PPH_SERVICE_ITEM *Services,
1999 _In_ ULONG NumberOfServices
2041 _In_ PVOID Extension
2054 _Out_ PULONG Height,
2055 _Out_ HBITMAP *Bitmap,
2056 _Out_opt_ PVOID *Bits,
2058 _Out_ HBITMAP *OldBitmap
2067 #define PH_NF_UPDATE_IS_BITMAP 0x1
2068 #define PH_NF_UPDATE_DESTROY_RESOURCE 0x2
2072 _Out_ PVOID *NewIconOrBitmap,
2080 _In_ ULONG_PTR WParam,
2081 _In_ ULONG_PTR LParam,
2088 #define PH_NF_MSG_SHOWMINIINFOSECTION (WM_APP + 1)
2097 #define PH_NF_ICON_UNAVAILABLE 0x1
2098 #define PH_NF_ICON_SHOW_MINIINFO 0x2
2183 #define PhaGetStringSetting(Name) ((PPH_STRING)PhAutoDereferenceObject(PhGetStringSetting(Name))) // phapppub
2198 _In_ PPH_SETTING_CREATE Settings,
2199 _In_ ULONG NumberOfSettings
2214 _In_ COLORREF Color1,
2215 _In_ COLORREF Color2
2255 _In_opt_ PVOID Parameter1,
2256 _In_opt_ PVOID Parameter2
2312 _In_ COLORREF Color1,
2313 _In_ COLORREF Color2
2366 _In_opt_ PVOID Parameter1,
2367 _In_opt_ PVOID Parameter2
2381 #define PH_MINIINFO_SECTION_NO_UPPER_MARGINS 0x1
2421 _In_opt_ PVOID Parameter1,
2422 _In_opt_ PVOID Parameter2
2444 PPH_MINIINFO_LIST_SECTION_SORT_DATA
SortData;
2457 PPH_MINIINFO_LIST_SECTION_SORT_DATA
SortData;
2467 PPH_MINIINFO_LIST_SECTION_SORT_DATA
SortData;
2477 PPH_MINIINFO_LIST_SECTION_SORT_DATA
SortData;
2598 HPROPSHEETPAGE *
Pages;
2609 #define PH_PLUGIN_MENU_DISALLOW_HOOKS 0x1
2680 PPH_PLUGIN_MENU_INFORMATION
MenuInfo;
2709 _In_ PPH_THREAD_STACK_FRAME StackFrame,
2710 _In_opt_ PVOID Context
2765 PPH_MEMORY_ITEM_LIST
List;
2771 _In_ PPH_SYSINFO_SECTION Template
2779 _In_ PPH_SYSINFO_SECTION NewSection
2796 _In_ PPH_MINIINFO_SECTION Template
2806 _In_ PPH_MINIINFO_LIST_SECTION Template
2836 _In_ ULONG Alignment,
2837 _In_ BOOLEAN AllowNull,
2838 _Out_ PVOID *Pointer
2843 _In_ BOOLEAN AllowNull,
2844 _Out_ PVOID *CapturedBuffer
2849 _In_ BOOLEAN AllowNull,
2872 _In_opt_ PVOID String,
2897 #define PH_PLUGIN_FLAG_RESERVED 0x1
2918 _Out_opt_ PPH_PLUGIN_INFORMATION *Information
2929 PPH_PLUGIN_INFORMATION
2932 _In_ PPH_PLUGIN Plugin
2939 _In_ PPH_PLUGIN Plugin,
2975 #define PH_MENU_ITEM_LOCATION_VIEW 1
2976 #define PH_MENU_ITEM_LOCATION_TOOLS 2
2979 #define PH_MENU_ITEM_SUB_MENU 0x80000000
2980 #define PH_MENU_ITEM_RETURN_MENU 0x40000000
2981 #define PH_MENU_ITEM_VALID_FLAGS 0xc0000000
2987 _In_ PPH_PLUGIN Plugin,
2988 _In_ ULONG_PTR Location,
2989 _In_opt_ PWSTR InsertAfter,
2992 _In_opt_ PVOID Context
3036 _Out_ PPH_PLUGIN_SYSTEM_STATISTICS Statistics
3043 _In_ PPH_PLUGIN Plugin,
3047 _In_opt_ PVOID Context
3054 _Inout_ PPH_PLUGIN_MENU_INFORMATION MenuInfo,
3055 _In_ PPH_PLUGIN Plugin,
3056 _In_opt_ PVOID Context
3063 _In_ PPH_PLUGIN Plugin,
3067 _In_opt_ PVOID Context,
3075 _In_ PPH_PLUGIN Plugin,
3077 _In_ ULONG ExtensionSize,
3086 _In_ PPH_PLUGIN Plugin,
3115 _Out_ PPH_PLUGIN_PHSVC_CLIENT Client
3124 _In_reads_bytes_opt_(InLength) PVOID InBuffer,
3125 _In_ ULONG InLength,
3126 _Out_writes_bytes_opt_(OutLength) PVOID OutBuffer,
3127 _In_ ULONG OutLength
3196 _In_ ULONG ServiceType,
3197 _In_ ULONG StartType,
3198 _In_ ULONG ErrorControl,
3199 _In_opt_ PWSTR BinaryPathName,
3200 _In_opt_ PWSTR LoadOrderGroup,
3201 _Out_opt_ PULONG TagId,
3202 _In_opt_ PWSTR Dependencies,
3203 _In_opt_ PWSTR ServiceStartName,
3204 _In_opt_ PWSTR Password,
3205 _In_opt_ PWSTR DisplayName
3211 _In_ ULONG InfoLevel,