Изменение порядка загрузки для UEFI в C#
Я пытаюсь изменить порядок загрузки для всех моих Toshiba. Производитель сказал, что я мог бы использовать SetFirmwareEnvironmentVariable() для этого. Итак, я нашел код и сгенерировал это
static void Main(string[] args)
{
//Set the variables for the UEFI Change
string inGUID = "{8be4df61-93ca-11d2-aa0d-00e098032b8c}";
string inName = "BootOrder";
string inBuffer = "0x0003,0x0000,0x0001,0x0004,0x0005,0x0006";
string dwAttribute = "0x7";
//Attempt to set the UEFI Variables Windows XP and UP??
//ANSII
var ResultsANSII = SetFirmwareEnvironmentVariable(
inName,
inGUID,
Marshal.StringToHGlobalUni(inBuffer),
sizeof(UInt16));
var ErrorMessage = Marshal.GetLastWin32Error();
}
[DllImport("kernel32.dll", EntryPoint = "SetFirmwareEnvironmentVariable"), SetLastError = true]
[return: MarshalAs(UnmanagedType.Bool)]
static extern bool SetFirmwareEnvironmentVariable(
[In][MarshalAs(UnmanagedType.LPTStr)] string lpName,
[In][MarshalAs(UnmanagedType.LPTStr)] string lpGuid,
[In]IntPtr pBuffer,
uint nSize);
однако это, кажется, не работает. коды результатов равны 0, но это не меняет порядок загрузки. У кого-нибудь есть идеи?