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);
}