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

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

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

Так что добро пожаловать и приятного вам общения!!! ;)
 
Модераторы: Jin X, Qraizer
  
> UEFI или Lagacy BIOS, как определить?
Всем привет!
Как определить (в винде, через WinAPI, может, или ещё как-то) – используется ли UEFI или Lagacy BIOS ?
vpmultishiftqb vscatterpf0dps vfmsubadd132pd vgatherpf1dps vpclmulhqlqdq vcmptrue_ussd vaeskeygenassist
https://docs.microsoft.com/ru-ru/windows/de...onmentvariablea
Думаю через эту функцию.
Правильный обед должен состоять из 5 блюд приготовленных из 33 ингредиентов.
Отлично, спасибо!
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.
vpmultishiftqb vscatterpf0dps vfmsubadd132pd vgatherpf1dps vpclmulhqlqdq vcmptrue_ussd vaeskeygenassist
Ещё вариант:
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.
vpmultishiftqb vscatterpf0dps vfmsubadd132pd vgatherpf1dps vpclmulhqlqdq vcmptrue_ussd vaeskeygenassist
1 пользователей читают эту тему (1 гостей и 0 скрытых пользователей)
0 пользователей:


Рейтинг@Mail.ru
[ Script Execution time: 0,0955 ]   [ 19 queries used ]   [ Generated: 16.07.18, 20:24 GMT ]