Изменение порядка загрузки для 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, но это не меняет порядок загрузки. У кого-нибудь есть идеи?

0 ответов

Другие вопросы по тегам