На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! Перед отправкой сообщения внимательно прочтите правила раздела!!!
1. Запрещается обсуждать написание вирусов, троянов и других вредоносных программ!
2. Помните, что у нас есть FAQ раздела Assembler и Полезные ссылки. Посмотрите, возможно, там уже имеется решение вашего вопроса.

3. Настоятельно рекомендуем обратить особое внимание на правила форума, которые нарушаются чаще всего:
  3.1. Заголовок темы должен кратко отражать её суть. Темы с заголовками типа "Срочно помогите!" или "Ассемблер" будут отправляться в Корзину для мусора.
  3.2. Исходники программ обязательно выделяйте тегами [code]...[/code] (одиночные инструкции можно не выделять).
  3.3. Нежелательно поднимать старые темы (не обновлявшиеся более года) без веской на то причины.

Не забывайте также про главные Правила форума!

Добро пожаловать и приятного вам общения!!! ;)
 
Модераторы: Jin X, Qraizer
  
> UEFI или Lagacy BIOS , как определить?
    Всем привет!
    Как определить (в винде, через WinAPI, может, или ещё как-то) – используется ли UEFI или Lagacy BIOS ?
      https://docs.microsoft.com/ru-ru/windows/de...onmentvariablea
      Думаю через эту функцию.
        Отлично, спасибо!
        ExpandedWrap disabled
          {$APPTYPE CONSOLE}
          uses Windows;
          function GetFirmwareEnvironmentVariable(lpName, lpGuid: PChar; pBuffer: Pointer; nSize: DWORD): DWORD; stdcall; external kernel32 name 'GetFirmwareEnvironmentVariableA';
          var Error: DWORD;
          begin
            GetFirmwareEnvironmentVariable('', '{00000000-0000-0000-0000-000000000000}', nil, 0);
            Error := GetLastError;
            if Error = ERROR_INVALID_FUNCTION then WriteLn('Your system is based on Lagacy BIOS')
            else if Error = ERROR_NOACCESS then WriteLn('Your system is based on UEFI')
            else WriteLn('Strange GetLastError (', Error, ')');
            ReadLn;
          end.


        Добавлено
        ExpandedWrap disabled
          {$APPTYPE CONSOLE}
          uses Windows;
           
          function GetFirmwareEnvironmentVariable(lpName, lpGuid: PChar; pBuffer: Pointer; nSize: DWORD): DWORD; stdcall; external kernel32 name 'GetFirmwareEnvironmentVariableA';
           
          function UEFIBasedSystem: Boolean;
          begin
            GetFirmwareEnvironmentVariable('', '{00000000-0000-0000-0000-000000000000}', nil, 0);
            Result := (GetLastError <> ERROR_INVALID_FUNCTION);  // else ERROR_NOACCESS
          end;
           
          var Error: DWORD;
          begin
            if UEFIBasedSystem then WriteLn('Your system is based on UEFI')
            else WriteLn('Your system is based on Lagacy BIOS');
            ReadLn;
          end.
          Ещё вариант:
          ExpandedWrap disabled
            {$APPTYPE CONSOLE}
            uses Windows;
             
            type
              TFirmwareType = (FirmwareTypeUnknown, FirmwareTypeBios, FirmwareTypeUefi, FirmwareTypeMax);
              TGetFirmwareTypeFunc = function(var FirmwareType: TFirmwareType): Boolean; stdcall;
             
            function FirwareType: TFirmwareType;
            var GetFirmwareType: TGetFirmwareTypeFunc;
            begin
              Result := FirmwareTypeUnknown;
              GetFirmwareType := GetProcAddress(GetModuleHandle(kernel32), 'GetFirmwareType');  // Windows 8 only
              if @GetFirmwareType <> nil then GetFirmwareType(Result);
            end;
             
            begin
              case FirwareType of
                FirmwareTypeUefi: WriteLn('Your system is based on UEFI');
                FirmwareTypeBios: WriteLn('Your system is based on Lagacy BIOS')
                else WriteLn('Unknown firmware type');  // Можно убрать эту строку и заменить FirmwareTypeBios на else :)
              end;
              ReadLn;
            end.
          0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
          0 пользователей:


          Рейтинг@Mail.ru
          [ Script execution time: 0,0284 ]   [ 15 queries used ]   [ Generated: 29.03.24, 15:23 GMT ]