Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches

◆ GetProcessInfo()

static ProcessInfo System.Diagnostics.NtProcessManager.GetProcessInfo ( ReadOnlySpan< byte > instanceData,
global::Interop::Advapi32::PERF_COUNTER_DEFINITION[] counters )
inlinestaticprivate

Definition at line 376 of file NtProcessManager.cs.

377 {
378 ProcessInfo processInfo = new ProcessInfo();
379 for (int i = 0; i < counters.Length; i++)
380 {
381 global::Interop.Advapi32.PERF_COUNTER_DEFINITION pERF_COUNTER_DEFINITION = counters[i];
382 long num = ReadCounterValue(pERF_COUNTER_DEFINITION.CounterType, instanceData.Slice(pERF_COUNTER_DEFINITION.CounterOffset));
383 switch ((ValueId)pERF_COUNTER_DEFINITION.CounterNameTitlePtr)
384 {
385 case ValueId.ProcessId:
386 processInfo.ProcessId = (int)num;
387 break;
388 case ValueId.PoolPagedBytes:
389 processInfo.PoolPagedBytes = num;
390 break;
391 case ValueId.PoolNonpagedBytes:
392 processInfo.PoolNonPagedBytes = num;
393 break;
394 case ValueId.VirtualBytes:
395 processInfo.VirtualBytes = num;
396 break;
397 case ValueId.VirtualBytesPeak:
398 processInfo.VirtualBytesPeak = num;
399 break;
400 case ValueId.WorkingSetPeak:
401 processInfo.WorkingSetPeak = num;
402 break;
403 case ValueId.WorkingSet:
404 processInfo.WorkingSet = num;
405 break;
406 case ValueId.PageFileBytesPeak:
407 processInfo.PageFileBytesPeak = num;
408 break;
409 case ValueId.PageFileBytes:
410 processInfo.PageFileBytes = num;
411 break;
412 case ValueId.PrivateBytes:
413 processInfo.PrivateBytes = num;
414 break;
415 case ValueId.BasePriority:
416 processInfo.BasePriority = (int)num;
417 break;
418 case ValueId.HandleCount:
419 processInfo.HandleCount = (int)num;
420 break;
421 }
422 }
423 return processInfo;
424 }
static long ReadCounterValue(int counterType, ReadOnlySpan< byte > data)

References System.Diagnostics.NtProcessManager.ReadCounterValue().

Referenced by System.Diagnostics.NtProcessManager.GetProcessInfos().