Skip to content

Commit 8cdd6d8

Browse files
committed
Remove legacy Vista support
1 parent 4e89d8f commit 8cdd6d8

21 files changed

+124
-400
lines changed

ProcessHacker/ProcessHacker.rc

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -383,7 +383,6 @@ BEGIN
383383
BEGIN
384384
MENUITEM "&Go to process\aEnter", ID_NETWORK_GOTOPROCESS
385385
MENUITEM "Go to service", ID_NETWORK_GOTOSERVICE
386-
MENUITEM "View &stack", ID_NETWORK_VIEWSTACK
387386
MENUITEM "C&lose", ID_NETWORK_CLOSE
388387
MENUITEM SEPARATOR
389388
MENUITEM "&Copy\aCtrl+C", ID_NETWORK_COPY

ProcessHacker/actions.c

Lines changed: 1 addition & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -726,32 +726,14 @@ static BOOLEAN PhpIsDangerousProcess(
726726
)
727727
{
728728
NTSTATUS status;
729-
HANDLE processHandle;
730729
PPH_STRING fileName;
731730
PPH_STRING systemDirectory;
732731
ULONG i;
733732

734733
if (ProcessId == SYSTEM_PROCESS_ID)
735734
return TRUE;
736735

737-
if (WINDOWS_HAS_IMAGE_FILE_NAME_BY_PROCESS_ID)
738-
{
739-
status = PhGetProcessImageFileNameByProcessId(ProcessId, &fileName);
740-
}
741-
else
742-
{
743-
if (!NT_SUCCESS(status = PhOpenProcess(
744-
&processHandle,
745-
ProcessQueryAccess,
746-
ProcessId
747-
)))
748-
return FALSE;
749-
750-
status = PhGetProcessImageFileName(processHandle, &fileName);
751-
NtClose(processHandle);
752-
}
753-
754-
if (!NT_SUCCESS(status))
736+
if (!NT_SUCCESS(status = PhGetProcessImageFileNameByProcessId(ProcessId, &fileName)))
755737
return FALSE;
756738

757739
PhMoveReference(&fileName, PhGetFileName(fileName));

ProcessHacker/chproc.c

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -120,9 +120,6 @@ static VOID PhpRefreshProcessList(
120120
HANDLE tokenHandle;
121121
PTOKEN_USER user;
122122

123-
if (!WINDOWS_HAS_IMAGE_FILE_NAME_BY_PROCESS_ID && process->UniqueProcessId != SYSTEM_PROCESS_ID)
124-
PhGetProcessImageFileName(processHandle, &fileName);
125-
126123
if (NT_SUCCESS(PhOpenProcessToken(processHandle, TOKEN_QUERY, &tokenHandle)))
127124
{
128125
if (NT_SUCCESS(PhGetTokenUser(tokenHandle, &user)))
@@ -140,11 +137,10 @@ static VOID PhpRefreshProcessList(
140137
if (process->UniqueProcessId == SYSTEM_IDLE_PROCESS_ID && !userName && PhLocalSystemName)
141138
PhSetReference(&userName, PhLocalSystemName);
142139

143-
if (WINDOWS_HAS_IMAGE_FILE_NAME_BY_PROCESS_ID && process->UniqueProcessId != SYSTEM_PROCESS_ID)
144-
PhGetProcessImageFileNameByProcessId(process->UniqueProcessId, &fileName);
145-
146140
if (process->UniqueProcessId == SYSTEM_PROCESS_ID)
147141
fileName = PhGetKernelFileName();
142+
else
143+
PhGetProcessImageFileNameByProcessId(process->UniqueProcessId, &fileName);
148144

149145
if (fileName)
150146
PhMoveReference(&fileName, PhGetFileName(fileName));

ProcessHacker/hndlprv.c

Lines changed: 22 additions & 83 deletions
Original file line numberDiff line numberDiff line change
@@ -315,105 +315,44 @@ NTSTATUS PhEnumHandlesGeneric(
315315
// Enumerate handles using KProcessHacker. Unlike with NtQuerySystemInformation,
316316
// this only enumerates handles for a single process and saves a lot of processing.
317317

318-
if (NT_SUCCESS(status = KphEnumerateProcessHandles2(ProcessHandle, &handles)))
319-
{
320-
convertedHandles = PhAllocate(
321-
FIELD_OFFSET(SYSTEM_HANDLE_INFORMATION_EX, Handles) +
322-
sizeof(SYSTEM_HANDLE_TABLE_ENTRY_INFO_EX) * handles->HandleCount
323-
);
318+
if (!NT_SUCCESS(status = KphEnumerateProcessHandles2(ProcessHandle, &handles)))
319+
return status;
324320

325-
convertedHandles->NumberOfHandles = handles->HandleCount;
321+
convertedHandles = PhAllocate(
322+
FIELD_OFFSET(SYSTEM_HANDLE_INFORMATION_EX, Handles) +
323+
sizeof(SYSTEM_HANDLE_TABLE_ENTRY_INFO_EX) * handles->HandleCount
324+
);
326325

327-
for (i = 0; i < handles->HandleCount; i++)
328-
{
329-
convertedHandles->Handles[i].Object = handles->Handles[i].Object;
330-
convertedHandles->Handles[i].UniqueProcessId = (ULONG_PTR)ProcessId;
331-
convertedHandles->Handles[i].HandleValue = (ULONG_PTR)handles->Handles[i].Handle;
332-
convertedHandles->Handles[i].GrantedAccess = (ULONG)handles->Handles[i].GrantedAccess;
333-
convertedHandles->Handles[i].CreatorBackTraceIndex = 0;
334-
convertedHandles->Handles[i].ObjectTypeIndex = handles->Handles[i].ObjectTypeIndex;
335-
convertedHandles->Handles[i].HandleAttributes = handles->Handles[i].HandleAttributes;
336-
}
326+
convertedHandles->NumberOfHandles = handles->HandleCount;
337327

338-
PhFree(handles);
328+
for (i = 0; i < handles->HandleCount; i++)
329+
{
330+
convertedHandles->Handles[i].Object = handles->Handles[i].Object;
331+
convertedHandles->Handles[i].UniqueProcessId = (ULONG_PTR)ProcessId;
332+
convertedHandles->Handles[i].HandleValue = (ULONG_PTR)handles->Handles[i].Handle;
333+
convertedHandles->Handles[i].GrantedAccess = (ULONG)handles->Handles[i].GrantedAccess;
334+
convertedHandles->Handles[i].CreatorBackTraceIndex = 0;
335+
convertedHandles->Handles[i].ObjectTypeIndex = handles->Handles[i].ObjectTypeIndex;
336+
convertedHandles->Handles[i].HandleAttributes = handles->Handles[i].HandleAttributes;
337+
}
339338

340-
*Handles = convertedHandles;
341-
*FilterNeeded = FALSE;
339+
PhFree(handles);
342340

343-
return status;
344-
}
341+
*Handles = convertedHandles;
342+
*FilterNeeded = FALSE;
345343
}
346-
347-
if (WindowsVersion >= WINDOWS_XP)
344+
else
348345
{
349346
PSYSTEM_HANDLE_INFORMATION_EX handles;
350347

351-
// Enumerate handles using the new method; no conversion
352-
// necessary.
353-
354348
if (!NT_SUCCESS(status = PhEnumHandlesEx(&handles)))
355349
return status;
356350

357351
*Handles = handles;
358352
*FilterNeeded = TRUE;
359353
}
360-
else
361-
{
362-
PSYSTEM_HANDLE_INFORMATION handles;
363-
PSYSTEM_HANDLE_INFORMATION_EX convertedHandles;
364-
ULONG count;
365-
ULONG allocatedCount;
366-
ULONG i;
367-
368-
// Enumerate handles using the old info class and convert
369-
// the relevant entries to the new format.
370-
371-
if (!NT_SUCCESS(status = PhEnumHandles(&handles)))
372-
return status;
373-
374-
count = 0;
375-
allocatedCount = 100;
376-
377-
convertedHandles = PhAllocate(
378-
FIELD_OFFSET(SYSTEM_HANDLE_INFORMATION_EX, Handles) +
379-
sizeof(SYSTEM_HANDLE_TABLE_ENTRY_INFO_EX) * allocatedCount
380-
);
381-
382-
for (i = 0; i < handles->NumberOfHandles; i++)
383-
{
384-
if ((HANDLE)handles->Handles[i].UniqueProcessId != ProcessId)
385-
continue;
386-
387-
if (count == allocatedCount)
388-
{
389-
allocatedCount *= 2;
390-
convertedHandles = PhReAllocate(
391-
convertedHandles,
392-
FIELD_OFFSET(SYSTEM_HANDLE_INFORMATION_EX, Handles) +
393-
sizeof(SYSTEM_HANDLE_TABLE_ENTRY_INFO_EX) * allocatedCount
394-
);
395-
}
396-
397-
convertedHandles->Handles[count].Object = handles->Handles[i].Object;
398-
convertedHandles->Handles[count].UniqueProcessId = (ULONG_PTR)handles->Handles[i].UniqueProcessId;
399-
convertedHandles->Handles[count].HandleValue = (ULONG_PTR)handles->Handles[i].HandleValue;
400-
convertedHandles->Handles[count].GrantedAccess = handles->Handles[i].GrantedAccess;
401-
convertedHandles->Handles[count].CreatorBackTraceIndex = handles->Handles[i].CreatorBackTraceIndex;
402-
convertedHandles->Handles[count].ObjectTypeIndex = handles->Handles[i].ObjectTypeIndex;
403-
convertedHandles->Handles[count].HandleAttributes = (ULONG)handles->Handles[i].HandleAttributes;
404-
405-
count++;
406-
}
407-
408-
convertedHandles->NumberOfHandles = count;
409-
410-
PhFree(handles);
411-
412-
*Handles = convertedHandles;
413-
*FilterNeeded = FALSE;
414-
}
415354

416-
return STATUS_SUCCESS;
355+
return status;
417356
}
418357

419358
NTSTATUS PhpCreateHandleItemFunction(

ProcessHacker/main.c

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -592,9 +592,6 @@ VOID PhInitializeKph(
592592
PUCHAR signature;
593593
ULONG signatureSize;
594594

595-
if (WindowsVersion < WINDOWS_7)
596-
return;
597-
598595
kprocesshackerFileName = PhConcatStringRef2(&PhApplicationDirectory->sr, &kprocesshacker);
599596
processhackerSigFileName = PhConcatStringRef2(&PhApplicationDirectory->sr, &processhackerSig);
600597

ProcessHacker/mainwnd.c

Lines changed: 0 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1520,18 +1520,6 @@ VOID PhMwpOnCommand(
15201520
}
15211521
}
15221522
break;
1523-
case ID_NETWORK_VIEWSTACK:
1524-
{
1525-
PPH_NETWORK_ITEM networkItem = PhGetSelectedNetworkItem();
1526-
1527-
if (networkItem)
1528-
{
1529-
PhReferenceObject(networkItem);
1530-
PhShowNetworkStackDialog(PhMainWndHandle, networkItem);
1531-
PhDereferenceObject(networkItem);
1532-
}
1533-
}
1534-
break;
15351523
case ID_NETWORK_CLOSE:
15361524
{
15371525
PPH_NETWORK_ITEM *networkItems;

ProcessHacker/memprv.c

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -780,12 +780,7 @@ NTSTATUS PhQueryMemoryItemList(
780780
PhpUpdateMemoryRegionTypes(List, processHandle);
781781

782782
if (Flags & PH_QUERY_MEMORY_WS_COUNTERS)
783-
{
784-
if (WindowsVersion >= WINDOWS_SERVER_2003)
785-
PhpUpdateMemoryWsCounters(List, processHandle);
786-
else
787-
PhpUpdateMemoryWsCountersOld(List, processHandle);
788-
}
783+
PhpUpdateMemoryWsCounters(List, processHandle);
789784

790785
NtClose(processHandle);
791786

ProcessHacker/mwpgnet.c

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -221,12 +221,6 @@ VOID PhMwpInitializeNetworkMenu(
221221
PhEnableEMenuItem(Menu, ID_NETWORK_COPY, TRUE);
222222
}
223223

224-
if (WindowsVersion >= WINDOWS_VISTA)
225-
{
226-
if (item = PhFindEMenuItem(Menu, 0, NULL, ID_NETWORK_VIEWSTACK))
227-
PhDestroyEMenuItem(item);
228-
}
229-
230224
// Go to Service
231225
if (NumberOfNetworkItems != 1 || !NetworkItems[0]->OwnerName)
232226
{

ProcessHacker/mwpgproc.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -123,7 +123,7 @@ BOOLEAN PhMwpProcessesPageCallback(
123123

124124
if (menuItem = PhFindEMenuItem(menu, 0, NULL, ID_VIEW_SHOWCPUBELOW001))
125125
{
126-
if (WindowsVersion >= WINDOWS_7 && PhEnableCycleCpuUsage)
126+
if (PhEnableCycleCpuUsage)
127127
{
128128
if (PhCsShowCpuBelow001)
129129
menuItem->Flags |= PH_EMENU_CHECKED;

ProcessHacker/netprv.c

Lines changed: 0 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -814,19 +814,6 @@ BOOLEAN PhGetNetworkConnections(
814814
tableSize = 0;
815815
GetExtendedTcpTable(NULL, &tableSize, FALSE, AF_INET6, TCP_TABLE_OWNER_MODULE_ALL, 0);
816816

817-
// Note: On Windows XP, GetExtendedTcpTable had a bug where it calculated the required buffer size
818-
// for IPv6 TCP_TABLE_OWNER_MODULE_ALL requests incorrectly, causing it to return the wrong size
819-
// and overrun the provided buffer instead of returning an error. The size should be:
820-
// = FIELD_OFFSET(MIB_TCP6TABLE_OWNER_MODULE, table) + sizeof(MIB_TCP6ROW_OWNER_MODULE) * (number of entries)
821-
// However, the function calculated it as:
822-
// = FIELD_OFFSET(MIB_TCP6TABLE_OWNER_MODULE, table) + sizeof(MIB_TCP6ROW_OWNER_PID) * (number of entries)
823-
// A workaround is implemented below.
824-
if (WindowsVersion <= WINDOWS_XP && tableSize >= (ULONG)FIELD_OFFSET(MIB_TCP6TABLE_OWNER_MODULE, table)) // make sure we don't wrap around
825-
{
826-
tableSize = FIELD_OFFSET(MIB_TCP6TABLE_OWNER_MODULE, table) +
827-
(tableSize - FIELD_OFFSET(MIB_TCP6TABLE_OWNER_MODULE, table)) / sizeof(MIB_TCP6ROW_OWNER_PID) * sizeof(MIB_TCP6ROW_OWNER_MODULE);
828-
}
829-
830817
table = PhAllocate(tableSize);
831818

832819
if (GetExtendedTcpTable(table, &tableSize, FALSE, AF_INET6, TCP_TABLE_OWNER_MODULE_ALL, 0) == 0)

ProcessHacker/options.c

Lines changed: 2 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -680,9 +680,7 @@ VOID PhpAdvancedPageLoad(
680680
SetDlgItemCheckForSetting(hwndDlg, IDC_ENABLENETWORKRESOLVE, L"EnableNetworkResolve");
681681
SetDlgItemCheckForSetting(hwndDlg, IDC_PROPAGATECPUUSAGE, L"PropagateCpuUsage");
682682
SetDlgItemCheckForSetting(hwndDlg, IDC_ENABLEINSTANTTOOLTIPS, L"EnableInstantTooltips");
683-
684-
if (WindowsVersion >= WINDOWS_7)
685-
SetDlgItemCheckForSetting(hwndDlg, IDC_ENABLECYCLECPUUSAGE, L"EnableCycleCpuUsage");
683+
SetDlgItemCheckForSetting(hwndDlg, IDC_ENABLECYCLECPUUSAGE, L"EnableCycleCpuUsage");
686684

687685
SetDlgItemInt(hwndDlg, IDC_SAMPLECOUNT, PhGetIntegerSetting(L"SampleCount"), FALSE);
688686
SetDlgItemCheckForSetting(hwndDlg, IDC_SAMPLECOUNTAUTOMATIC, L"SampleCountAutomatic");
@@ -762,9 +760,7 @@ VOID PhpAdvancedPageSave(
762760
SetSettingForDlgItemCheckRestartRequired(hwndDlg, IDC_ENABLENETWORKRESOLVE, L"EnableNetworkResolve");
763761
SetSettingForDlgItemCheck(hwndDlg, IDC_PROPAGATECPUUSAGE, L"PropagateCpuUsage");
764762
SetSettingForDlgItemCheck(hwndDlg, IDC_ENABLEINSTANTTOOLTIPS, L"EnableInstantTooltips");
765-
766-
if (WindowsVersion >= WINDOWS_7)
767-
SetSettingForDlgItemCheckRestartRequired(hwndDlg, IDC_ENABLECYCLECPUUSAGE, L"EnableCycleCpuUsage");
763+
SetSettingForDlgItemCheckRestartRequired(hwndDlg, IDC_ENABLECYCLECPUUSAGE, L"EnableCycleCpuUsage");
768764

769765
sampleCount = GetDlgItemInt(hwndDlg, IDC_SAMPLECOUNT, NULL, FALSE);
770766
SetSettingForDlgItemCheckRestartRequired(hwndDlg, IDC_SAMPLECOUNTAUTOMATIC, L"SampleCountAutomatic");
@@ -874,11 +870,6 @@ INT_PTR CALLBACK PhpOptionsAdvancedDlgProc(
874870
EnableWindow(GetDlgItem(hwndDlg, IDC_SAMPLECOUNT), FALSE);
875871
EnableWindow(GetDlgItem(hwndDlg, IDC_SAMPLECOUNTAUTOMATIC), FALSE);
876872
}
877-
else
878-
{
879-
if (WindowsVersion < WINDOWS_7)
880-
EnableWindow(GetDlgItem(hwndDlg, IDC_ENABLECYCLECPUUSAGE), FALSE); // cycle-based CPU usage not available before Windows 7
881-
}
882873
}
883874
break;
884875
case WM_DESTROY:

0 commit comments

Comments
 (0)