Exemple #1
0
        public static ReplyData executeQuery(QueryData receivedQueryData)
        {
            ReplyData returnedReplyData = new ReplyData();

            returnedReplyData.Type = Consts.SectionType.SysInfo;
            DataContainer SysDynmicInfoDataContainer = new DataContainer("OSDynmicInfo");

            String AAA;

            if (PerformanceBL.CPUUsage.Length != 0)
            {
                AAA = PerformanceBL.CPUUsage;
                PerformanceBL.CPUUsage = "";
            }
            else
            {
                Thread.Sleep(150);
                AAA = ((PerformanceCounter)PerformanceBL.perfCountres["Processor;% Processor Time;_Total"]).NextValue().ToString();
            }
            SysDynmicInfoDataContainer.ArrCounters.Add(new Counter("CPUUsagePercentage", AAA));
            DataContainer SysStaticInfoDataContainer = new DataContainer("OSStaticInfo");

            SysStaticInfoDataContainer.ArrCounters.Add(new Counter("Version", m_StaticSysInfo.Version));
            SysStaticInfoDataContainer.ArrCounters.Add(new Counter("ProductType", m_StaticSysInfo.ProductType));
            SysStaticInfoDataContainer.ArrCounters.Add(new Counter("ServicePackVersion", m_StaticSysInfo.ServicePackVersion));
            SysStaticInfoDataContainer.ArrCounters.Add(new Counter("RegToUser", m_StaticSysInfo.RegToUser));
            SysStaticInfoDataContainer.ArrCounters.Add(new Counter("ComputerName", m_StaticSysInfo.ComputerName));
            SysStaticInfoDataContainer.ArrCounters.Add(new Counter("PMTotal", m_StaticSysInfo.PMTotal));
            SysStaticInfoDataContainer.ArrCounters.Add(new Counter("LoggedOnUser", m_StaticSysInfo.LoggedOnUser));
            SysStaticInfoDataContainer.ArrCounters.Add(new Counter("CommitLimit", m_StaticSysInfo.CommitLimit));
            returnedReplyData.ArrDataContainers.Add(SysStaticInfoDataContainer);


            MemoryStatus stat = new MemoryStatus();

            GlobalMemoryStatus(out stat);
            int AvaliablePM      = (int)stat.AvailablePhysical / 1024;
            int AvaliableVirtual = (int)stat.AvailableVirtual / 1024;

            SysDynmicInfoDataContainer.ArrCounters.Add(new Counter("AvailableVirtual", AvaliableVirtual.ToString("#,#", CultureInfo.InvariantCulture)));
            SysDynmicInfoDataContainer.ArrCounters.Add(new Counter("AvailablePM", AvaliablePM.ToString("#,#", CultureInfo.InvariantCulture)));
            Double UsedPMMB = (Convert.ToInt32(m_StaticSysInfo.PMTotal) - AvaliablePM) / 1024;

            SysDynmicInfoDataContainer.ArrCounters.Add(new Counter("UsedPMMB", UsedPMMB.ToString()));
            _PERFORMANCE_INFORMATION perfSysStat = new _PERFORMANCE_INFORMATION();

            GetPerformanceInfo(out perfSysStat);
            SysDynmicInfoDataContainer.ArrCounters.Add(new Counter("SystemCache", ((int)(perfSysStat.SystemCache * 4)).ToString("#,#", CultureInfo.InvariantCulture)));
            SysDynmicInfoDataContainer.ArrCounters.Add(new Counter("CommitPeak", ((int)(perfSysStat.CommitPeak * 4)).ToString()));
            SysDynmicInfoDataContainer.ArrCounters.Add(new Counter("KernelTotal", ((int)(perfSysStat.KernelTotal * 4)).ToString("#,#", CultureInfo.InvariantCulture)));
            SysDynmicInfoDataContainer.ArrCounters.Add(new Counter("KernelPaged", ((int)(perfSysStat.KernelPaged * 4)).ToString("#,#", CultureInfo.InvariantCulture)));
            SysDynmicInfoDataContainer.ArrCounters.Add(new Counter("KernelNonpaged", ((int)(perfSysStat.KernelNonpaged * 4)).ToString("#,#", CultureInfo.InvariantCulture)));
            SysDynmicInfoDataContainer.ArrCounters.Add(new Counter("ProcessesCount",
                                                                   ((PerformanceCounter)PerformanceBL.perfCountres["System;Processes;"]).NextValue().ToString("#,#", CultureInfo.InvariantCulture)));
            SysDynmicInfoDataContainer.ArrCounters.Add(new Counter("ThreadsCount",
                                                                   ((PerformanceCounter)PerformanceBL.perfCountres["System;Threads;"]).NextValue().ToString("#,#", CultureInfo.InvariantCulture)));
            SysDynmicInfoDataContainer.ArrCounters.Add(new Counter("HandlesCount", perfSysStat.HandleCount.ToString("#,#", CultureInfo.InvariantCulture)));
            int tempCommitCurrent = (int)Convert.ToDouble(((PerformanceCounter)PerformanceBL.perfCountres["Memory;Committed Bytes;"]).NextValue().ToString()) / 1024;

            SysDynmicInfoDataContainer.ArrCounters.Add(new Counter("CommitCurrent", tempCommitCurrent.ToString()));
            returnedReplyData.ArrDataContainers.Add(SysDynmicInfoDataContainer);


            DataContainer SysLogicalDrivesDataContainer = new DataContainer("OSLogicalDrives");

            DriveInfo[] AllDriveInfo = DriveInfo.GetDrives();


            foreach (DriveInfo CurrLogicalDrive in DriveInfo.GetDrives())
            {
                try
                {
                    if (CurrLogicalDrive.Name == "A:\\")  //Added by rm
                    {
                        // if (!CurrLogicalDrive.IsReady)
                        SysLogicalDrivesDataContainer.ArrCounters.Add(new Counter("DiskName", CurrLogicalDrive.Name + '-' + "Not accessable" + '-' + "Not accessable"));
                        continue;
                    }


                    if (CurrLogicalDrive.IsReady)
                    {
                        decimal FreeSpacePercent = decimal.Divide(CurrLogicalDrive.TotalFreeSpace, CurrLogicalDrive.TotalSize) * 10000;
                        int     tempNum          = Convert.ToInt32(FreeSpacePercent);
                        long    TotalSizeMB      = CurrLogicalDrive.TotalSize / 1000000;
                        FreeSpacePercent = decimal.Divide(tempNum, 100);
                        SysLogicalDrivesDataContainer.ArrCounters.Add(new Counter("DiskName", CurrLogicalDrive.Name + '-' + FreeSpacePercent.ToString() + "%" + '-' + TotalSizeMB.ToString("#,#", CultureInfo.InvariantCulture)));
                    }
                    else
                    {
                        SysLogicalDrivesDataContainer.ArrCounters.Add(new Counter("DiskName", CurrLogicalDrive.Name + '-' + "Not accessable" + '-' + "Not accessable"));
                    }
                }
                catch (Exception)
                {
                    SysLogicalDrivesDataContainer.ArrCounters.Add(new Counter("DiskName", CurrLogicalDrive.Name + '-' + "Not accessable" + '-' + "Not accessable"));
                }
            }
            returnedReplyData.ArrDataContainers.Add(SysLogicalDrivesDataContainer);
            return(returnedReplyData);
        }
Exemple #2
0
 public static extern void GetPerformanceInfo(out _PERFORMANCE_INFORMATION stat);