|
微软官方文档说明
https://docs.microsoft.com/zh-cn ... ase-getfirmwaretype
Win8及以上系统才支持此API
If the function succeeds, the return value is nonzero. //函数执行成功返回非0
If the function fails, the return value is zero. To get extended error information, call the GetLastError function. //函数执行失败返回0
typedef enum _FIRMWARE_TYPE {
FirmwareTypeUnknown,
FirmwareTypeBios,
FirmwareTypeUefi,
FirmwareTypeMax
} FIRMWARE_TYPE, *PFIRMWARE_TYPE;
个人认为这个FIRMWARE_TYPE是整数类型,认为是int类型数据,占用4个内存字节空间
- ENVI$# &ret=*4 0 //申请4个窄字符空间,也可以用 ENVI$ &ret=*2 0 //申请2个宽字符空间
- CALL $--qd --bool --ret:&&r Kernel32.dll,GetFirmwareType,*&ret
- FIND $%&&r%=,
- {*
- //为空,可以认为没有返回数据,当前环境不支持此API,低于Win8版本的系统
- MESS. 不支持此API。
- }!
- {*
- IFEX #%&&r%=0,
- {*
- MESS. API执行失败。
- }!
- {*
- ENVI?int &ret=&ret1
- //MESS ret=[%&ret%] [%&ret1%] r=%&r%
- IFEX #%&ret1%=0,
- {*
- MESS. 固件类型未知。
- }
- IFEX #%&ret1%=1,
- {*
- MESS. 计算机以旧版BIOS模式启动。
- }
- IFEX #%&ret1%=2,
- {*
- MESS. 计算机以UEFI模式启动。
- }
- IFEX #%&ret1%=3,
- {*
- MESS. 未实现。
- }
- }
- }
复制代码
|
|