Boolean RequirementsCheck() { /* * App is running as admin * Access to NVRAM Granted * System has UEFI * System is running Windows 8 or higher * System is running on Windows 64-bit * Target partition has enough space * */ Log.write("=============[REQUIREMENTS CHECK]============"); // //Administrator check // if (IsAdministrator()) { Log.write("Administrator privilege ... ok"); } else { Log.write("Administrator privilege ... fail"); return(false); } // // 64-bit check // if (!Environment.Is64BitOperatingSystem) { Log.write("OS Type: ... fail"); return(false); } // // OS Version Check // Log.write("OSVer: " + Environment.OSVersion.ToString()); if (System.Environment.OSVersion.Platform == PlatformID.Win32NT) { switch (System.Environment.OSVersion.Version.Major) { case 6: if (System.Environment.OSVersion.Version.Minor >= 2) { Log.write("OperatingSystem Version ... ok"); } break; case 10: Log.write("OperatingSystem Version ... ok"); break; default: return(false); } } else { return(false); } // //Load UEFI Library // Handle = LoadLibrary(@"Win32UEFI.dll"); if (Handle == IntPtr.Zero) { int errorCode = Marshal.GetLastWin32Error(); Log.write(string.Format("Failed to load library (ErrorCode: {0})", errorCode)); return(false); } // //NVRAM Access // if (ws.GetAccesstoNVRam()) { Log.write("Windows Security: Access NVRAM Privilege ... ok"); } else { Log.write("Windows Security: Access NVRAM Privilege ... Not All Set"); } // //UEFI Check // if (UEFIWrapper.UEFI_isUEFIAvailable()) { Log.write("System Firmware: UEFI"); } else { Log.write("System Firmware: Other"); return(false); } return(true); }