/// <summary>Entry point for the program.</summary> int main(int argc, const char* argv[]) { // initialize WinRing0 if (!InitializeOls() || GetDllStatus() != 0) { cerr << "ERROR: WinRing0 initialization failed" << endl; DeinitializeOls(); return 1; } try { Info info; if (!info.Initialize()) { cout << "ERROR: unsupported CPU" << endl; DeinitializeOls(); WaitForKey(); return 2; } if (argc > 1) { Worker worker(info); if (!worker.ParseParams(argc, argv)) { DeinitializeOls(); WaitForKey(); return 3; } worker.ApplyChanges(); } else { PrintInfo(info); WaitForKey(); } } catch (const std::exception& e) { cerr << "ERROR: " << e.what() << endl; DeinitializeOls(); WaitForKey(); return 10; } DeinitializeOls(); return 0; }