示例#1
0
        public static KernelDriverInitState InitializeEnvironment()
        {
            _initState = Kernel.BridgeDriver.Initialize();
            if (_initState == KernelDriverInitState.RhmsDrvNoError)
            {
                // Test();
            }

            return(_initState);
        }
示例#2
0
文件: Program.cs 项目: Draiget/rhms
        internal static void Main(string[] args)
        {
            _isCanShutdown = false;
            Native.SetConsoleCtrlHandler(ConsoleCtrlCheck, true);
            NetworkRemoteControl.Initialize();

            Console.Title             = "RHMS Client Data Collecting Server";
            Thread.CurrentThread.Name = "main";

            AppLogger = new Logger();
            AppLogger.Initialize();
            Logger.Info("Starting server");
            Logger.Info($"Working directory '{Directory.GetCurrentDirectory()}'");

            BridgeDriver.RegisterLoggerCallback(DriverLoggerCallback);

            KernelDriverInitState = KernelDriverBridge.InitializeEnvironment();
            if (KernelDriverInitState == KernelDriverInitState.RhmsDrvNoError)
            {
                var cpusInfo = Drivers.Presentation.Cpuid.Get();
                var firstCpu = cpusInfo?[0];
                if (firstCpu != null)
                {
                    Console.WriteLine(firstCpu.ToString());
                }
            }

            Logger.Auto(KernelDriverInitState == KernelDriverInitState.RhmsDrvNoError ? DriverLogLevel.Info : DriverLogLevel.Error,
                        $"Load driver state: {KernelDriverInitState}");

            if (KernelDriverInitState != KernelDriverInitState.RhmsDrvNoError)
            {
                if (KernelDriverInitState == KernelDriverInitState.RhmsDriverManagerIncorrectDrvSignature)
                {
                    Logger.Warn("Kernel driver signature checking is enabled in your system, RHMS server is not able to load custom kernel driver.");
                    Logger.Warn("You need to disable signature checking on target subsystem.");
                }
                else
                {
                    Logger.Warn("Kernel driver are failed to initializate, maybe driver signing checks are enabled on target system.");
                }

                Logger.Warn("Some features as collecting physical devices data will not available.");
            }

            CollectingServer = new RhmsCollectingServer();
            Debug.Assert(CollectingServer.GetModuleLoader() != null);

            if (!CollectingServer.LoadSettings())
            {
                Logger.Warn("Unable to load server settings!");
                AppLogger.Shutdown();
                return;
            }

            Logger.Info("Initialize collecting server");
            try {
                if (!CollectingServer.Initialize())
                {
                    Logger.Error("Could not initialize RHMS Collecting Server! Press any key to exit.");
                    Console.ReadLine();
                    return;
                }
            } catch (Exception e) {
                Logger.Error("Could not initialize RHMS Collecting Server, internal error has occured! Press any key to exit.", e);
                Console.ReadLine();
                return;
            }

            Logger.Info("Loading modules");
            CollectingServer.GetModuleLoader().LoadFromFolder(Directory.GetCurrentDirectory() + @"\modules");
            Logger.Info("Loading modules has finished.");

            CollectingServer.StartNetworkUpdates();
            CollectingServer.StartHardwareUpdates();
            _isCanShutdown = true;

            // There's no commands yet, just listen for any line and close
            Console.ReadLine();

            Shutdown();
        }