Example #1
0
        private void CmdDisplayStream(string streamName)
        {
            UserControl viewToDisplay = null;
            int         numberOfItems = 0;
            string      nodeText      = String.Empty; // Quick fix for duplicated item counts in node text

            switch (streamName)
            {
            case "Summary":
                nodeText      = string.Empty;
                viewToDisplay = new SummaryView(_miniDumpFile);
                break;

            case "Handles":
                nodeText = "Handles";
                MiniDumpHandleDescriptor[] handleData = this._miniDumpFile.ReadHandleData();
                numberOfItems = handleData.Length;
                viewToDisplay = new HandleDataView(handleData);
                break;

            case "Modules":
                nodeText = "Modules";
                MiniDumpModule[] moduleData = this._miniDumpFile.ReadModuleList();
                numberOfItems = moduleData.Length;
                viewToDisplay = new ModulesView(moduleData);
                break;

            case "Threads":
                nodeText = "Threads";
                MiniDumpThread[] threadData = this._miniDumpFile.ReadThreadList();
                numberOfItems = threadData.Length;
                viewToDisplay = new ThreadListView(threadData);
                break;

            case "ThreadInfo":
                nodeText = "ThreadInfo";
                MiniDumpThreadInfo[] threadInfoData = this._miniDumpFile.ReadThreadInfoList();
                numberOfItems = threadInfoData.Length;
                viewToDisplay = new ThreadInfoListView(threadInfoData);
                break;

            case "ThreadNames":
                nodeText = "ThreadNames";
                MiniDumpThreadNamesStream threadNamesStream = this._miniDumpFile.ReadThreadNamesStream();
                numberOfItems = threadNamesStream.Entries.Count;
                viewToDisplay = new ThreadNamesView(threadNamesStream);
                break;

            case "Memory":
                nodeText = "Memory";
                MiniDumpMemoryDescriptor[] memoryData = this._miniDumpFile.ReadMemoryList();
                numberOfItems = memoryData.Length;
                viewToDisplay = new MemoryListView(memoryData);
                break;

            case "Memory64":
                nodeText = "Memory64";
                MiniDumpMemory64Stream memory64Data = this._miniDumpFile.ReadMemory64List();
                numberOfItems = memory64Data.MemoryRanges.Length;
                viewToDisplay = new MemoryList64View(memory64Data.MemoryRanges);
                break;

            case "MemoryInfo":
                nodeText = "MemoryInfo";
                MiniDumpMemoryInfoStream memoryInfo = this._miniDumpFile.ReadMemoryInfoList();
                numberOfItems = memoryInfo.Entries.Length;
                viewToDisplay = new MemoryInfoView(memoryInfo, _miniDumpFile);
                break;

            case "MiscInfo":
                nodeText = "MiscInfo";
                MiniDumpMiscInfo miscInfo = this._miniDumpFile.ReadMiscInfo();
                numberOfItems = 1;
                viewToDisplay = new MiscInfoView(miscInfo);
                break;

            case "SystemInfo":
                nodeText = "SystemInfo";
                MiniDumpSystemInfoStream systemInfo = this._miniDumpFile.ReadSystemInfo();
                numberOfItems = 1;
                viewToDisplay = new SystemInfoView(systemInfo);
                break;

            case "Exception":
                nodeText = "Exception";
                MiniDumpExceptionStream exceptionStream = this._miniDumpFile.ReadExceptionStream();

                numberOfItems = (exceptionStream == null) ? 0 : 1;

                viewToDisplay = new ExceptionStreamView(exceptionStream);
                break;

            case "UnloadedModules":
                nodeText = "UnloadedModules";
                MiniDumpUnloadedModulesStream unloadedModulesStream = this._miniDumpFile.ReadUnloadedModuleList();
                numberOfItems = (int)unloadedModulesStream.NumberOfEntries;
                viewToDisplay = new UnloadedModulesView(unloadedModulesStream);
                break;

            case "SystemMemoryInfo":
                nodeText = "SystemMemoryInfo";
                MiniDumpSystemMemoryInfo systemMemoryInfo = this._miniDumpFile.ReadSystemMemoryInfo();
                numberOfItems = 1;
                viewToDisplay = new SystemMemoryInfoView(systemMemoryInfo);
                break;

            case "CommentW":
                nodeText = "CommentW";
                MiniDumpCommentStreamW commentWStream = this._miniDumpFile.ReadCommentStreamW();
                numberOfItems = string.IsNullOrEmpty(commentWStream.Comment) ? 0 : 1;
                viewToDisplay = new CommentStreamWView(commentWStream);
                break;
            }

            if (viewToDisplay != null)
            {
                if (nodeText != string.Empty)
                {
                    treeView1.SelectedNode.Text = nodeText + " (" + numberOfItems + (numberOfItems == 1 ? " item" : " items") + ")";
                }

                if (this.splitContainer1.Panel2.Controls.Count > 0)
                {
                    this.splitContainer1.Panel2.Controls.RemoveAt(0);
                }

                viewToDisplay.Dock = DockStyle.Fill;

                this.splitContainer1.Panel2.Controls.Add(viewToDisplay);
            }
        }
        public SystemMemoryInfoView(MiniDumpSystemMemoryInfo systemMemoryInfo)
            : this()
        {
            _systemMemoryInfo = systemMemoryInfo;

            if (_systemMemoryInfo == null)
            {
                AddGroupedNode("Stream not found", String.Empty, LVG_NO_GROUP);
                return;
            }

            AddGroupedNode("Revision", _systemMemoryInfo.Revision, LVG_SYSTEM_MEMORY_INFO);
            AddGroupedNode("Flags", Formatters.FormatAsHex(_systemMemoryInfo.Flags), LVG_SYSTEM_MEMORY_INFO);

            // Unofficial field descriptions
            // http://masm32.com/board/index.php?topic=3402.0

            #region System basic info
            AddGroupedNode("TimerResolution", _systemMemoryInfo.SystemBasicInformation.TimerResolution, LVG_SYSTEM_BASIC_INFO);
            AddGroupedNode("PageSize", _systemMemoryInfo.SystemBasicInformation.PageSize, LVG_SYSTEM_BASIC_INFO);
            AddGroupedNode("NumberOfPhysicalPages", _systemMemoryInfo.SystemBasicInformation.NumberOfPhysicalPages.ToString("N0"), LVG_SYSTEM_BASIC_INFO);
            AddGroupedNode("LowestPhysicalPageNumber", _systemMemoryInfo.SystemBasicInformation.LowestPhysicalPageNumber.ToString("N0"), LVG_SYSTEM_BASIC_INFO);
            AddGroupedNode("HighestPhysicalPageNumber", _systemMemoryInfo.SystemBasicInformation.HighestPhysicalPageNumber.ToString("N0"), LVG_SYSTEM_BASIC_INFO);
            AddGroupedNode("AllocationGranularity", _systemMemoryInfo.SystemBasicInformation.AllocationGranularity, LVG_SYSTEM_BASIC_INFO);
            AddGroupedNode("MinimumUserModeAddress", Formatters.FormatAsMemoryAddress(_systemMemoryInfo.SystemBasicInformation.MinimumUserModeAddress), LVG_SYSTEM_BASIC_INFO);
            AddGroupedNode("MaximumUserModeAddress", Formatters.FormatAsMemoryAddress(_systemMemoryInfo.SystemBasicInformation.MaximumUserModeAddress), LVG_SYSTEM_BASIC_INFO);
            AddGroupedNode("ActiveProcessorsAffinityMask", Formatters.FormatAsHex(_systemMemoryInfo.SystemBasicInformation.ActiveProcessorsAffinityMask), LVG_SYSTEM_BASIC_INFO);
            AddGroupedNode("NumberOfProcessors", _systemMemoryInfo.SystemBasicInformation.NumberOfProcessors, LVG_SYSTEM_BASIC_INFO);
            #endregion

            #region System file cache info
            string tempDisplayValue = String.Format("{0} ({1:N0} bytes)", Formatters.FormatAsSizeString(_systemMemoryInfo.SystemFileCacheInformation.CurrentSize), _systemMemoryInfo.SystemFileCacheInformation.CurrentSize);
            AddGroupedNode("CurrentSize", tempDisplayValue, LVG_SYSTEM_FILE_CACHE_INFO);

            tempDisplayValue = String.Format("{0} ({1:N0} bytes)", Formatters.FormatAsSizeString(_systemMemoryInfo.SystemFileCacheInformation.PeakSize), _systemMemoryInfo.SystemFileCacheInformation.PeakSize);
            AddGroupedNode("PeakSize", tempDisplayValue, LVG_SYSTEM_FILE_CACHE_INFO);

            AddGroupedNode("PageFaultCount", _systemMemoryInfo.SystemFileCacheInformation.PageFaultCount.ToString("N0"), LVG_SYSTEM_FILE_CACHE_INFO);

            tempDisplayValue = String.Format("{0} ({1:N0} bytes)", Formatters.FormatAsSizeString(_systemMemoryInfo.SystemFileCacheInformation.MinimumWorkingSet), _systemMemoryInfo.SystemFileCacheInformation.MinimumWorkingSet);
            AddGroupedNode("MinimumWorkingSet", tempDisplayValue, LVG_SYSTEM_FILE_CACHE_INFO);

            tempDisplayValue = String.Format("{0} ({1:N0} bytes)", Formatters.FormatAsSizeString(_systemMemoryInfo.SystemFileCacheInformation.MaximumWorkingSet), _systemMemoryInfo.SystemFileCacheInformation.MaximumWorkingSet);
            AddGroupedNode("MaximumWorkingSet", tempDisplayValue, LVG_SYSTEM_FILE_CACHE_INFO);

            tempDisplayValue = String.Format("{0} ({1:N0} bytes)", Formatters.FormatAsSizeString(_systemMemoryInfo.SystemFileCacheInformation.CurrentSizeIncludingTransitionInPages), _systemMemoryInfo.SystemFileCacheInformation.CurrentSizeIncludingTransitionInPages);
            AddGroupedNode("CurrentSizeIncludingTransitionInPages", tempDisplayValue, LVG_SYSTEM_FILE_CACHE_INFO);

            tempDisplayValue = String.Format("{0} ({1:N0} bytes)", Formatters.FormatAsSizeString(_systemMemoryInfo.SystemFileCacheInformation.PeakSizeIncludingTransitionInPages), _systemMemoryInfo.SystemFileCacheInformation.PeakSizeIncludingTransitionInPages);
            AddGroupedNode("PeakSizeIncludingTransitionInPages", tempDisplayValue, LVG_SYSTEM_FILE_CACHE_INFO);

            AddGroupedNode("TransitionRePurposeCount", _systemMemoryInfo.SystemFileCacheInformation.TransitionRePurposeCount.ToString("N0"), LVG_SYSTEM_FILE_CACHE_INFO);
            AddGroupedNode("Flags", Formatters.FormatAsHex(_systemMemoryInfo.SystemFileCacheInformation.Flags), LVG_SYSTEM_FILE_CACHE_INFO);
            #endregion

            #region System basic performance info
            AddGroupedNode("AvailablePages", _systemMemoryInfo.SystemBasicPerformanceInformation.AvailablePages.ToString("N0"), LVG_SYSTEM_BASIC_PERFORMANCE_INFO);
            AddGroupedNode("CommittedPages", _systemMemoryInfo.SystemBasicPerformanceInformation.CommittedPages.ToString("N0"), LVG_SYSTEM_BASIC_PERFORMANCE_INFO);
            AddGroupedNode("CommitLimit", _systemMemoryInfo.SystemBasicPerformanceInformation.CommitLimit.ToString("N0"), LVG_SYSTEM_BASIC_PERFORMANCE_INFO);
            AddGroupedNode("PeakCommitment", _systemMemoryInfo.SystemBasicPerformanceInformation.PeakCommitment.ToString("N0"), LVG_SYSTEM_BASIC_PERFORMANCE_INFO);
            #endregion

            #region System performance info
            AddGroupedNode("IdleProcessTime", _systemMemoryInfo.SystemPerformanceInformation.IdleProcessTime, LVG_SYSTEM_PERFORMANCE_INFO);
            AddGroupedNode("IoReadTransferCount", _systemMemoryInfo.SystemPerformanceInformation.IoReadTransferCount.ToString("N0"), LVG_SYSTEM_PERFORMANCE_INFO);
            AddGroupedNode("IoWriteTransferCount", _systemMemoryInfo.SystemPerformanceInformation.IoWriteTransferCount.ToString("N0"), LVG_SYSTEM_PERFORMANCE_INFO);
            AddGroupedNode("IoOtherTransferCount", _systemMemoryInfo.SystemPerformanceInformation.IoOtherTransferCount.ToString("N0"), LVG_SYSTEM_PERFORMANCE_INFO);
            AddGroupedNode("IoReadOperationCount", _systemMemoryInfo.SystemPerformanceInformation.IoReadOperationCount.ToString("N0"), LVG_SYSTEM_PERFORMANCE_INFO);
            AddGroupedNode("IoWriteOperationCount", _systemMemoryInfo.SystemPerformanceInformation.IoWriteOperationCount.ToString("N0"), LVG_SYSTEM_PERFORMANCE_INFO);
            AddGroupedNode("IoOtherOperationCount", _systemMemoryInfo.SystemPerformanceInformation.IoOtherOperationCount.ToString("N0"), LVG_SYSTEM_PERFORMANCE_INFO);
            AddGroupedNode("AvailablePages", _systemMemoryInfo.SystemPerformanceInformation.AvailablePages.ToString("N0"), LVG_SYSTEM_PERFORMANCE_INFO);
            AddGroupedNode("CommittedPages", _systemMemoryInfo.SystemPerformanceInformation.CommittedPages.ToString("N0"), LVG_SYSTEM_PERFORMANCE_INFO);
            AddGroupedNode("CommitLimit", _systemMemoryInfo.SystemPerformanceInformation.CommitLimit.ToString("N0"), LVG_SYSTEM_PERFORMANCE_INFO);
            AddGroupedNode("PeakCommitment", _systemMemoryInfo.SystemPerformanceInformation.PeakCommitment.ToString("N0"), LVG_SYSTEM_PERFORMANCE_INFO);
            AddGroupedNode("PageFaultCount", _systemMemoryInfo.SystemPerformanceInformation.PageFaultCount.ToString("N0"), LVG_SYSTEM_PERFORMANCE_INFO);
            AddGroupedNode("CopyOnWriteCount", _systemMemoryInfo.SystemPerformanceInformation.CopyOnWriteCount.ToString("N0"), LVG_SYSTEM_PERFORMANCE_INFO);
            AddGroupedNode("TransitionCount", _systemMemoryInfo.SystemPerformanceInformation.TransitionCount.ToString("N0"), LVG_SYSTEM_PERFORMANCE_INFO);
            AddGroupedNode("CacheTransitionCount", _systemMemoryInfo.SystemPerformanceInformation.CacheTransitionCount.ToString("N0"), LVG_SYSTEM_PERFORMANCE_INFO);
            AddGroupedNode("DemandZeroCount", _systemMemoryInfo.SystemPerformanceInformation.DemandZeroCount.ToString("N0"), LVG_SYSTEM_PERFORMANCE_INFO);
            AddGroupedNode("PageReadCount", _systemMemoryInfo.SystemPerformanceInformation.PageReadCount.ToString("N0"), LVG_SYSTEM_PERFORMANCE_INFO);
            AddGroupedNode("PageReadIoCount", _systemMemoryInfo.SystemPerformanceInformation.PageReadIoCount.ToString("N0"), LVG_SYSTEM_PERFORMANCE_INFO);
            AddGroupedNode("CacheReadCount", _systemMemoryInfo.SystemPerformanceInformation.CacheReadCount.ToString("N0"), LVG_SYSTEM_PERFORMANCE_INFO);
            AddGroupedNode("CacheIoCount", _systemMemoryInfo.SystemPerformanceInformation.CacheIoCount.ToString("N0"), LVG_SYSTEM_PERFORMANCE_INFO);
            AddGroupedNode("DirtyPagesWriteCount", _systemMemoryInfo.SystemPerformanceInformation.DirtyPagesWriteCount.ToString("N0"), LVG_SYSTEM_PERFORMANCE_INFO);
            AddGroupedNode("DirtyWriteIoCount", _systemMemoryInfo.SystemPerformanceInformation.DirtyWriteIoCount.ToString("N0"), LVG_SYSTEM_PERFORMANCE_INFO);
            AddGroupedNode("MappedPagesWriteCount", _systemMemoryInfo.SystemPerformanceInformation.MappedPagesWriteCount.ToString("N0"), LVG_SYSTEM_PERFORMANCE_INFO);
            AddGroupedNode("MappedWriteIoCount", _systemMemoryInfo.SystemPerformanceInformation.MappedWriteIoCount.ToString("N0"), LVG_SYSTEM_PERFORMANCE_INFO);
            AddGroupedNode("PagedPoolPages", _systemMemoryInfo.SystemPerformanceInformation.PagedPoolPages.ToString("N0"), LVG_SYSTEM_PERFORMANCE_INFO);
            AddGroupedNode("NonPagedPoolPages", _systemMemoryInfo.SystemPerformanceInformation.NonPagedPoolPages.ToString("N0"), LVG_SYSTEM_PERFORMANCE_INFO);
            AddGroupedNode("PagedPoolAllocs", _systemMemoryInfo.SystemPerformanceInformation.PagedPoolAllocs.ToString("N0"), LVG_SYSTEM_PERFORMANCE_INFO);
            AddGroupedNode("PagedPoolFrees", _systemMemoryInfo.SystemPerformanceInformation.PagedPoolFrees.ToString("N0"), LVG_SYSTEM_PERFORMANCE_INFO);
            AddGroupedNode("NonPagedPoolAllocs", _systemMemoryInfo.SystemPerformanceInformation.NonPagedPoolAllocs.ToString("N0"), LVG_SYSTEM_PERFORMANCE_INFO);
            AddGroupedNode("NonPagedPoolFrees", _systemMemoryInfo.SystemPerformanceInformation.NonPagedPoolFrees.ToString("N0"), LVG_SYSTEM_PERFORMANCE_INFO);
            AddGroupedNode("FreeSystemPtes", _systemMemoryInfo.SystemPerformanceInformation.FreeSystemPtes.ToString("N0"), LVG_SYSTEM_PERFORMANCE_INFO);
            AddGroupedNode("ResidentSystemCodePage", _systemMemoryInfo.SystemPerformanceInformation.ResidentSystemCodePage.ToString("N0"), LVG_SYSTEM_PERFORMANCE_INFO);
            AddGroupedNode("TotalSystemDriverPages", _systemMemoryInfo.SystemPerformanceInformation.TotalSystemDriverPages.ToString("N0"), LVG_SYSTEM_PERFORMANCE_INFO);
            AddGroupedNode("TotalSystemCodePages", _systemMemoryInfo.SystemPerformanceInformation.TotalSystemCodePages.ToString("N0"), LVG_SYSTEM_PERFORMANCE_INFO);
            AddGroupedNode("NonPagedPoolLookasideHits", _systemMemoryInfo.SystemPerformanceInformation.NonPagedPoolLookasideHits.ToString("N0"), LVG_SYSTEM_PERFORMANCE_INFO);
            AddGroupedNode("PagedPoolLookasideHits", _systemMemoryInfo.SystemPerformanceInformation.PagedPoolLookasideHits.ToString("N0"), LVG_SYSTEM_PERFORMANCE_INFO);
            AddGroupedNode("AvailablePagedPoolPages", _systemMemoryInfo.SystemPerformanceInformation.AvailablePagedPoolPages.ToString("N0"), LVG_SYSTEM_PERFORMANCE_INFO);
            AddGroupedNode("ResidentSystemCachePage", _systemMemoryInfo.SystemPerformanceInformation.ResidentSystemCachePage.ToString("N0"), LVG_SYSTEM_PERFORMANCE_INFO);
            AddGroupedNode("ResidentPagedPoolPage", _systemMemoryInfo.SystemPerformanceInformation.ResidentPagedPoolPage.ToString("N0"), LVG_SYSTEM_PERFORMANCE_INFO);
            AddGroupedNode("ResidentSystemDriverPage", _systemMemoryInfo.SystemPerformanceInformation.ResidentSystemDriverPage.ToString("N0"), LVG_SYSTEM_PERFORMANCE_INFO);
            AddGroupedNode("CcFastReadNoWait", _systemMemoryInfo.SystemPerformanceInformation.CcFastReadNoWait.ToString("N0"), LVG_SYSTEM_PERFORMANCE_INFO);
            AddGroupedNode("CcFastReadWait", _systemMemoryInfo.SystemPerformanceInformation.CcFastReadWait.ToString("N0"), LVG_SYSTEM_PERFORMANCE_INFO);
            AddGroupedNode("CcFastReadResourceMiss", _systemMemoryInfo.SystemPerformanceInformation.CcFastReadResourceMiss.ToString("N0"), LVG_SYSTEM_PERFORMANCE_INFO);
            AddGroupedNode("CcFastReadNotPossible", _systemMemoryInfo.SystemPerformanceInformation.CcFastReadNotPossible.ToString("N0"), LVG_SYSTEM_PERFORMANCE_INFO);
            AddGroupedNode("CcFastMdlReadNoWait", _systemMemoryInfo.SystemPerformanceInformation.CcFastMdlReadNoWait.ToString("N0"), LVG_SYSTEM_PERFORMANCE_INFO);
            AddGroupedNode("CcFastMdlReadWait", _systemMemoryInfo.SystemPerformanceInformation.CcFastMdlReadWait.ToString("N0"), LVG_SYSTEM_PERFORMANCE_INFO);
            AddGroupedNode("CcFastMdlReadResourceMiss", _systemMemoryInfo.SystemPerformanceInformation.CcFastMdlReadResourceMiss.ToString("N0"), LVG_SYSTEM_PERFORMANCE_INFO);
            AddGroupedNode("CcFastMdlReadNotPossible", _systemMemoryInfo.SystemPerformanceInformation.CcFastMdlReadNotPossible.ToString("N0"), LVG_SYSTEM_PERFORMANCE_INFO);
            AddGroupedNode("CcMapDataNoWait", _systemMemoryInfo.SystemPerformanceInformation.CcMapDataNoWait.ToString("N0"), LVG_SYSTEM_PERFORMANCE_INFO);
            AddGroupedNode("CcMapDataWait", _systemMemoryInfo.SystemPerformanceInformation.CcMapDataWait.ToString("N0"), LVG_SYSTEM_PERFORMANCE_INFO);
            AddGroupedNode("CcMapDataNoWaitMiss", _systemMemoryInfo.SystemPerformanceInformation.CcMapDataNoWaitMiss.ToString("N0"), LVG_SYSTEM_PERFORMANCE_INFO);
            AddGroupedNode("CcMapDataWaitMiss", _systemMemoryInfo.SystemPerformanceInformation.CcMapDataWaitMiss.ToString("N0"), LVG_SYSTEM_PERFORMANCE_INFO);
            AddGroupedNode("CcPinMappedDataCount", _systemMemoryInfo.SystemPerformanceInformation.CcPinMappedDataCount.ToString("N0"), LVG_SYSTEM_PERFORMANCE_INFO);
            AddGroupedNode("CcPinReadNoWait", _systemMemoryInfo.SystemPerformanceInformation.CcPinReadNoWait.ToString("N0"), LVG_SYSTEM_PERFORMANCE_INFO);
            AddGroupedNode("CcPinReadWait", _systemMemoryInfo.SystemPerformanceInformation.CcPinReadWait.ToString("N0"), LVG_SYSTEM_PERFORMANCE_INFO);
            AddGroupedNode("CcPinReadNoWaitMiss", _systemMemoryInfo.SystemPerformanceInformation.CcPinReadNoWaitMiss.ToString("N0"), LVG_SYSTEM_PERFORMANCE_INFO);
            AddGroupedNode("CcPinReadWaitMiss", _systemMemoryInfo.SystemPerformanceInformation.CcPinReadWaitMiss.ToString("N0"), LVG_SYSTEM_PERFORMANCE_INFO);
            AddGroupedNode("CcCopyReadNoWait", _systemMemoryInfo.SystemPerformanceInformation.CcCopyReadNoWait.ToString("N0"), LVG_SYSTEM_PERFORMANCE_INFO);
            AddGroupedNode("CcCopyReadWait", _systemMemoryInfo.SystemPerformanceInformation.CcCopyReadWait.ToString("N0"), LVG_SYSTEM_PERFORMANCE_INFO);
            AddGroupedNode("CcCopyReadNoWaitMiss", _systemMemoryInfo.SystemPerformanceInformation.CcCopyReadNoWaitMiss.ToString("N0"), LVG_SYSTEM_PERFORMANCE_INFO);
            AddGroupedNode("CcCopyReadWaitMiss", _systemMemoryInfo.SystemPerformanceInformation.CcCopyReadWaitMiss.ToString("N0"), LVG_SYSTEM_PERFORMANCE_INFO);
            AddGroupedNode("CcMdlReadNoWait", _systemMemoryInfo.SystemPerformanceInformation.CcMdlReadNoWait.ToString("N0"), LVG_SYSTEM_PERFORMANCE_INFO);
            AddGroupedNode("CcMdlReadWait", _systemMemoryInfo.SystemPerformanceInformation.CcMdlReadWait.ToString("N0"), LVG_SYSTEM_PERFORMANCE_INFO);
            AddGroupedNode("CcMdlReadNoWaitMiss", _systemMemoryInfo.SystemPerformanceInformation.CcMdlReadNoWaitMiss.ToString("N0"), LVG_SYSTEM_PERFORMANCE_INFO);
            AddGroupedNode("CcMdlReadWaitMiss", _systemMemoryInfo.SystemPerformanceInformation.CcMdlReadWaitMiss.ToString("N0"), LVG_SYSTEM_PERFORMANCE_INFO);
            AddGroupedNode("CcReadAheadIos", _systemMemoryInfo.SystemPerformanceInformation.CcReadAheadIos.ToString("N0"), LVG_SYSTEM_PERFORMANCE_INFO);
            AddGroupedNode("CcLazyWriteIos", _systemMemoryInfo.SystemPerformanceInformation.CcLazyWriteIos.ToString("N0"), LVG_SYSTEM_PERFORMANCE_INFO);
            AddGroupedNode("CcLazyWritePages", _systemMemoryInfo.SystemPerformanceInformation.CcLazyWritePages.ToString("N0"), LVG_SYSTEM_PERFORMANCE_INFO);
            AddGroupedNode("CcDataFlushes", _systemMemoryInfo.SystemPerformanceInformation.CcDataFlushes.ToString("N0"), LVG_SYSTEM_PERFORMANCE_INFO);
            AddGroupedNode("CcDataPages", _systemMemoryInfo.SystemPerformanceInformation.CcDataPages.ToString("N0"), LVG_SYSTEM_PERFORMANCE_INFO);
            AddGroupedNode("ContextSwitches", _systemMemoryInfo.SystemPerformanceInformation.ContextSwitches.ToString("N0"), LVG_SYSTEM_PERFORMANCE_INFO);
            AddGroupedNode("FirstLevelTbFills", _systemMemoryInfo.SystemPerformanceInformation.FirstLevelTbFills.ToString("N0"), LVG_SYSTEM_PERFORMANCE_INFO);
            AddGroupedNode("SecondLevelTbFills", _systemMemoryInfo.SystemPerformanceInformation.SecondLevelTbFills.ToString("N0"), LVG_SYSTEM_PERFORMANCE_INFO);
            AddGroupedNode("SystemCalls", _systemMemoryInfo.SystemPerformanceInformation.SystemCalls.ToString("N0"), LVG_SYSTEM_PERFORMANCE_INFO);

            AddGroupedNode("CcTotalDirtyPages", _systemMemoryInfo.SystemPerformanceInformation.CcTotalDirtyPages.ToString("N0"), LVG_SYSTEM_PERFORMANCE_INFO);
            AddGroupedNode("CcDirtyPageThreshold", _systemMemoryInfo.SystemPerformanceInformation.CcDirtyPageThreshold.ToString("N0"), LVG_SYSTEM_PERFORMANCE_INFO);

            AddGroupedNode("ResidentAvailablePages", _systemMemoryInfo.SystemPerformanceInformation.ResidentAvailablePages.ToString("N0"), LVG_SYSTEM_PERFORMANCE_INFO);
            AddGroupedNode("SharedCommittedPages", _systemMemoryInfo.SystemPerformanceInformation.SharedCommittedPages.ToString("N0"), LVG_SYSTEM_PERFORMANCE_INFO);
            #endregion
        }