自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(9)
  • 收藏
  • 关注

原创 UEFI显示BMP图片

两种方式 :一种为按像素点画图;另一种为将图片转换到GOP blt缓冲区中,允许用户调用blt将其显示出来。 画像素点方式极慢,可以看到一行一行的绘画过程;而使用缓冲区则会立刻显示出一张图片。先了解BMP文件的组成,BMP文件组成有三部分:位图头文件位图颜色表(24位真彩色没有)位图点阵数据文件头包括:typedef struct { CHAR8 CharB; //'B' CHAR8 CharM; //'M'表示为BMP文件..

2022-05-06 14:52:40 1164

原创 UEFI 文件操作与写入重启时间

每个UEFI系统至少有一个ESP文件分区,在这个分区上存放了启动文件。文件的读写与管理必须通过文件系统进行操作。UEFI内置了EFI_SIMPLE_FILE_SYSTEM_PROTOCOL(FileSystemIO)用于操作FAT文件系统。其建立在DiskIO基础上。通过EFI_SIMPLE_FILE_SYSTEM_PROTOCOL中的OpenVolume,就可以操作FAT文件系统上的根目录句柄。目录句柄(EFI_FILE_PROTOCOL)包含了文件操作接口。通常句柄是安装到设备上的,而文件中的定义

2022-04-25 08:53:51 1473

原创 UEFI 系统变量服务和dsc,dec,inf简单理解

系统变量服务是运行时服务提供的服务,用来操作系统变量。包括读取系统变量的GetVariable,新建或更改变量的setVariable,遍历系统变量的GetNextVariableName。要使用自己的系统变量,需要在.h头文件中定义GUID,在dec文件中注册一个相同的GUID,同时需要在inf中包含。在头文件中的定义:在哪个包下的头文件定义GUID就需要在哪个包的dec中的Guids中写入#define EFI_RESET_TIMES_ID \{ \ 0x4ae7e1e8,

2022-04-21 17:53:23 1707

原创 UEFI 重启

UEFI中重启服务是由运行时服务提供的,通过gRT->ResetSystem使用。电脑启动方式。enum EFI_RESET_TYPE { EfiResetCold, /* 冷重启,将系统所有电路设为初始状态 * 相当于断电再重新通电 主板设为初始状态 */ EfiResetWarm, /* 热重启,重新初始化系统,CPU被置为初始状态 * 相当于不断

2022-04-17 20:27:34 1896

原创 UEFI Protocol

Protocol是服务器和客户端的一种约定,他们按照这种约定互通信息。 UEFI使用C语言实现的但是Protocol使用了面向对象的思想。用struct模拟class,用函数指针模拟成员函数,此种函数第一个参数必须是指向Protocol的指针模拟this。每个Protocol必须有一个GUID,可以根据GUID来寻找Protocol。成员函数的第一个参数是指向所属Protocol的this指针,这也是成员函数区别于一般函数的重要特征。EFI_HANDLE是指向某种对象的指针,UEFI扫描总线后会为每

2022-04-17 20:08:31 935

原创 UDK2安装

安装vs2015 ,将编程语言中的C++选上。安装python2.7将nasm安装到C:\nasm解压isal.zip至 C:\asl (注意文件夹名字发生了改变)解压openssl-OpenSSL_1_1_0g.zip,里面的文件移动到UDK目录下vUDK2018\CryptoPkg\Library\OpensslLib\openssl解压openssl-1.0.2a-win64-mingw.zip至C盘根目录,改名为Openssl(大小写无影响)以上完成后,均不...

2022-04-15 16:53:55 566

原创 UEFI系统表与鼠标位置抓取

系统表6部分:1.表头typedef struct { UINT64 Signature; UINT32 Revision; UINT32 HeaderSize; UINT32 CRC32; UINT32 Reserved;} EFI_TABLE_HEADER;2.固件信息3.标准输入,输出,错误控制台typedef struct _EFI_SIMPLE_TEXT_INPUT_PROTOCOL { EFI_INPUT_RESET Reset;//清除输入流内容,将输入流

2022-04-15 14:40:02 1056

原创 UEFI 定时器和生产,等待事件

定时器是一类特殊的事件,生成定时器事件后可用SetTimer服务设置定时器属性。定时器的三种类别:TimerCancel:用于取消定时器;TimerPeriodic:重复型;TimerRelative:一次性。生成定时器步:1.通过CreateEvent生成一个EVT_TIMER事件2.通过SetTimer设置属性用定时器等待20秒:EFI_STATUS time(){ EFI_STATUS Status; UINTN time=20,index=0;//设置20秒

2022-04-15 09:27:20 1035

原创 UEFI 初识(组成和启动过程)

组成:UEFI(统一可扩展固件借口)定义了操作系统和平台固件间的接口,是一种标准。系统组成:启动服务(BS),运行时服务(RT),和隐藏在BS后的protocol。BS和RT以表的形式存储。操作系统加载器(OS Loader)->OS Loader执行ExitbootServices()期间是从UEFI环境向操作系统过度的过程。OS Loader可通过BS和RT使用服务,转移计算机资源,此过程称为TSL。OS Loader执行ExitbootServices()之后结束BS并回收BS资源,

2022-04-13 18:01:05 2057

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除