Skip to content

Commit

Permalink
Merge pull request #428 from processhacker/master
Browse files Browse the repository at this point in the history
[pull] master from processhacker:master
  • Loading branch information
pull[bot] authored Mar 1, 2022
2 parents 54222c8 + 13c1438 commit d95bf44
Show file tree
Hide file tree
Showing 5 changed files with 44 additions and 30 deletions.
2 changes: 2 additions & 0 deletions ProcessHacker/include/procprpp.h
Original file line number Diff line number Diff line change
Expand Up @@ -282,6 +282,8 @@ typedef struct _PH_HANDLES_CONTEXT

PPH_STRING SearchboxText;
PPH_TN_FILTER_ENTRY FilterEntry;
ULONG64 SearchPointer;
BOOLEAN UseSearchPointer;
// begin_phapppub
} PH_HANDLES_CONTEXT, *PPH_HANDLES_CONTEXT;
// end_phapppub
Expand Down
22 changes: 13 additions & 9 deletions ProcessHacker/prpghndl.c
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
* Process properties: Handles page
*
* Copyright (C) 2009-2016 wj32
* Copyright (C) 2017-2021 dmex
* Copyright (C) 2017-2022 dmex
*
* This file is part of Process Hacker.
*
Expand Down Expand Up @@ -245,7 +245,7 @@ static BOOLEAN PhpWordMatchHandleStringRef(

if (part.Length)
{
if (PhFindStringInStringRef(Text, &part, TRUE) != -1)
if (PhFindStringInStringRef(Text, &part, TRUE) != SIZE_MAX)
return TRUE;
}
}
Expand All @@ -260,7 +260,7 @@ static BOOLEAN PhpWordMatchHandleStringZ(
{
PH_STRINGREF text;

PhInitializeStringRef(&text, Text);
PhInitializeStringRefLongHint(&text, Text);

return PhpWordMatchHandleStringRef(SearchText, &text);
}
Expand All @@ -282,13 +282,10 @@ BOOLEAN PhpHandleTreeFilterCallback(
static PH_INITONCE initOnce = PH_INITONCE_INIT;
static ULONG eventTraceTypeIndex = ULONG_MAX;

// HACK: lazy init the etw object type index (dmex)
if (PhBeginInitOnce(&initOnce))
{
static PH_STRINGREF etwTypeName = PH_STRINGREF_INIT(L"EtwRegistration");

eventTraceTypeIndex = PhGetObjectTypeNumber(&etwTypeName);

PhEndInitOnce(&initOnce);
}

Expand All @@ -301,6 +298,9 @@ BOOLEAN PhpHandleTreeFilterCallback(

// handle properties

if (handlesContext->UseSearchPointer && handleItem->Handle == (PVOID)handlesContext->SearchPointer)
return TRUE;

if (!PhIsNullOrEmptyString(handleItem->TypeName))
{
if (PhpWordMatchHandleStringRef(handlesContext->SearchboxText, &handleItem->TypeName->sr))
Expand Down Expand Up @@ -578,6 +578,8 @@ INT_PTR CALLBACK PhpProcessHandlesDlgProc(
{
// Cache the current search text for our callback.
PhSwapReference(&handlesContext->SearchboxText, newSearchboxText);
// Try to get a search pointer from the search string.
handlesContext->UseSearchPointer = PhStringToInteger64(&handlesContext->SearchboxText->sr, 0, &handlesContext->SearchPointer);

if (!PhIsNullOrEmptyString(handlesContext->SearchboxText))
{
Expand Down Expand Up @@ -843,11 +845,13 @@ INT_PTR CALLBACK PhpProcessHandlesDlgProc(
InvalidateRect(handlesContext->TreeNewHandle, NULL, FALSE);
}

// Refresh the visible nodes.
PhApplyTreeNewFilters(&handlesContext->ListContext.TreeFilterSupport);

if (count != 0)
{
// Refresh the visible nodes.
PhApplyTreeNewFilters(&handlesContext->ListContext.TreeFilterSupport);

TreeNew_SetRedraw(handlesContext->TreeNewHandle, TRUE);
}
}
break;
}
Expand Down
4 changes: 2 additions & 2 deletions plugins/ExtendedTools/PresentMon/TraceSession.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -203,12 +203,12 @@ void CALLBACK EventRecordCallback(EVENT_RECORD* pEventRecord)

if (hdr.ProviderId == Microsoft_Windows_DxgKrnl::GUID)
HandleDXGKEvent(pEventRecord);
else if (hdr.ProviderId == Microsoft_Windows_DXGI::GUID)
HandleDXGIEvent(pEventRecord);
else if (hdr.ProviderId == Microsoft_Windows_Win32k::GUID)
HandleWin32kEvent(pEventRecord);
else if (hdr.ProviderId == Microsoft_Windows_Dwm_Core::GUID)
HandleDWMEvent(pEventRecord);
else if (hdr.ProviderId == Microsoft_Windows_DXGI::GUID)
HandleDXGIEvent(pEventRecord);
else if (hdr.ProviderId == Microsoft_Windows_D3D9::GUID)
HandleD3D9Event(pEventRecord);
else if (hdr.ProviderId == Microsoft_Windows_Dwm_Core::Win7::GUID)
Expand Down
40 changes: 27 additions & 13 deletions plugins/ExtendedTools/counters.c
Original file line number Diff line number Diff line change
Expand Up @@ -492,9 +492,6 @@ BOOLEAN EtPerfCounterParseGpuAdapterDedicatedPerfCounterInstance(
PH_STRINGREF remainingPart;
LONG64 engineLuidLow;

if (!EtGpuAdapterDedicatedHashTable)
return FALSE;

// luid_0x00000000_0x0000C4CF_phys_0
PhInitializeStringRefLongHint(&remainingPart, InstanceName);
PhSkipStringRef(&remainingPart, 5 * sizeof(WCHAR));
Expand Down Expand Up @@ -522,6 +519,9 @@ PET_GPU_ENGINE_PERFCOUNTER EtPerfCounterAddOrUpdateGpuEngineCounters(
ET_GPU_ENGINE_PERFCOUNTER lookupEntry;
PET_GPU_ENGINE_PERFCOUNTER entry;

if (!EtPerfCounterEngineInstanceHashTable)
return NULL;

lookupEntry.InstanceId = CounterInstance.InstanceId;

if (entry = PhFindEntryHashtable(EtPerfCounterEngineInstanceHashTable, &lookupEntry))
Expand Down Expand Up @@ -589,6 +589,9 @@ PET_GPU_PROCESS_PERFCOUNTER EtPerfCounterAddOrUpdateGpuProcessCounters(
ET_GPU_PROCESS_PERFCOUNTER lookupEntry;
PET_GPU_PROCESS_PERFCOUNTER entry;

if (!EtPerfCounterProcessInstanceHashTable)
return NULL;

lookupEntry.InstanceId = CounterInstance.InstanceId;

if (entry = PhFindEntryHashtable(EtPerfCounterProcessInstanceHashTable, &lookupEntry))
Expand Down Expand Up @@ -633,6 +636,9 @@ PET_GPU_ADAPTER_PERFCOUNTER EtPerfCounterAddOrUpdateGpuAdapterCounters(
ET_GPU_ADAPTER_PERFCOUNTER lookupEntry;
PET_GPU_ADAPTER_PERFCOUNTER entry;

if (!EtPerfCounterAdapterInstanceHashTable)
return NULL;

lookupEntry.InstanceId = CounterInstance.InstanceId;

if (entry = PhFindEntryHashtable(EtPerfCounterAdapterInstanceHashTable, &lookupEntry))
Expand Down Expand Up @@ -1041,6 +1047,21 @@ BOOLEAN EtPerfCounterGetCounterData(
ULONG bufferSize;
PPERF_DATA_HEADER buffer;

{
static ULONG64 lastTickCount = 0;
ULONG64 tickCount = NtGetTickCount64();

if (lastTickCount == 0)
lastTickCount = tickCount;

if (tickCount - lastTickCount >= 600 * 1000)
{
lastTickCount = tickCount;
// Reset initial buffer size.
initialBufferSize = 0x4000;
}
}

bufferSize = initialBufferSize;
buffer = PhAllocate(bufferSize);

Expand Down Expand Up @@ -1197,18 +1218,11 @@ VOID EtPerfCounterInitialization(
VOID
)
{
static PH_INITONCE initOnce = PH_INITONCE_INIT;

if (PhBeginInitOnce(&initOnce))
{
EtGpuCreatePerfCounterHashTables();
EtGpuCreatePerfCounterHashTable();
//PhCreateThread2(EtPerfCounterQueryThread, NULL);

PhEndInitOnce(&initOnce);
}
EtGpuCreatePerfCounterHashTables();
EtGpuCreatePerfCounterHashTable();
}

_Success_(return)
BOOLEAN EtPerfCounterOpenHandle(
_Out_ PHANDLE PerfQueryHandle
)
Expand Down
6 changes: 0 additions & 6 deletions plugins/ExtendedTools/etwmon.c
Original file line number Diff line number Diff line change
Expand Up @@ -141,7 +141,6 @@ VOID EtStartEtwSession(
EtpTraceProperties->Wnode.ClientContext = 1;
EtpTraceProperties->Wnode.Flags = WNODE_FLAG_TRACED_GUID;
EtpTraceProperties->MinimumBuffers = 1;
EtpTraceProperties->BufferSize = 64;
EtpTraceProperties->LogFileMode = EVENT_TRACE_REAL_TIME_MODE;
EtpTraceProperties->FlushTimer = 1;
EtpTraceProperties->EnableFlags = EVENT_TRACE_FLAG_DISK_IO | EVENT_TRACE_FLAG_DISK_FILE_IO | EVENT_TRACE_FLAG_NETWORK_TCPIP | EVENT_TRACE_FLAG_NO_SYSCONFIG;
Expand Down Expand Up @@ -317,8 +316,6 @@ VOID NTAPI EtpEtwEventCallback(
case 35: // FileDelete
fileEvent.Type = EtEtwFileDeleteType;
break;
default:
break;
}

if (fileEvent.Type != ULONG_MAX)
Expand Down Expand Up @@ -497,7 +494,6 @@ ULONG EtStartEtwRundown(
EtpRundownTraceProperties->Wnode.Flags = WNODE_FLAG_TRACED_GUID;
EtpRundownTraceProperties->MinimumBuffers = 1;
EtpRundownTraceProperties->LogFileMode = EVENT_TRACE_REAL_TIME_MODE;
EtpRundownTraceProperties->BufferSize = 1024; // 1MB session buffer (dmex)
EtpRundownTraceProperties->FlushTimer = 1;
EtpRundownTraceProperties->EnableFlags = EVENT_TRACE_FLAG_NO_SYSCONFIG;
EtpRundownTraceProperties->LogFileNameOffset = 0;
Expand Down Expand Up @@ -579,8 +575,6 @@ VOID NTAPI EtpRundownEtwEventCallback(
case 36: // FileRundown
fileEvent.Type = EtEtwFileRundownType;
break;
default:
break;
}

if (fileEvent.Type != ULONG_MAX)
Expand Down

0 comments on commit d95bf44

Please sign in to comment.