UEFI EDK2框架学习 (四)——UEFI图形化

一、修改protocol.c

#include <Uefi.h>
#include <Library/UefiLib.h>
#include <Library/UefiBootServicesTableLib.h>
#include <stdio.h>EFI_STATUS
EFIAPI
UefiMain(IN EFI_HANDLE ImageHandle,IN EFI_SYSTEM_TABLE *SystemTable
) {EFI_STATUS Status = EFI_SUCCESS;UINTN NoHandles = 0;EFI_HANDLE *Buffer = NULL;Status = gBS->LocateHandleBuffer(ByProtocol,&gEfiGraphicsOutputProtocolGuid,NULL,&NoHandles,&Buffer);Print(L"Status = %d", Status);if (EFI_ERROR(Status)) {Print(L"Failed to LocateHandleBuffer. \n");return Status;}Print(L"Hello, Protocol\n");EFI_GRAPHICS_OUTPUT_PROTOCOL *Gop;Status = gBS->OpenProtocol(Buffer[0],&gEfiGraphicsOutputProtocolGuid,(VOID**)&Gop,ImageHandle,NULL,EFI_OPEN_PROTOCOL_GET_PROTOCOL);Print(L"Status = %d", Status);if (EFI_ERROR(Status)) {Print(L"Failed to OpenProtocol. \n");return Status;}UINTN SizeOfInfo = 0;EFI_GRAPHICS_OUTPUT_MODE_INFORMATION *Info;UINTN i = 0;for (; i < Gop->Mode->MaxMode; i++) {Status = Gop->QueryMode(Gop, i, &SizeOfInfo, &Info);if (EFI_ERROR(Status)) {Print(L"Failed to Querymode. \n");return Status;}PrintL(L"Mode %d, H = %d, V = %d", i, Info->HorizontalResolution, Info->VerticalResolution);}Status = Gop->SetMode(Gop, 22);if (EFI_ERROR(Status)) {Print(L"Failed to Querymode. \n");return Status;}EFI_GRAPHICS_OUTPUT_BLT_PIXEL Red = {0, 0, 255, 0};Gop->Blt(Gop,&Red,EfiBltVideoFill,0,0,   // source x y0,0,100,100,  // wid  height0);if (EFI_ERROR(Status)) {Print(L"Failed to Blt. \n");return Status;}Gop->Blt(Gop,&Red,EfiBltVideoFill,0,0,   // source x y200, 200,100,100,  // wid  height0);  // copyif (EFI_ERROR(Status)) {Print(L"Failed to Blt. \n");return Status;}return Status;
}

二、build

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/883022.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

软考中级网络工程师,快背,都是精华知识点!

一、上午常考概念 计算机硬件基础&#xff1a;根据考纲分析&#xff0c;本章主要考查三个模块&#xff1a;计算机体系结构、存储系统、I/O输入输出系统&#xff0c;其中每一模块又分若干知识点。“计算机硬件基础”相当于软考中的“公共基础课”&#xff0c;不同方向、不同级别…

初始JavaEE篇——多线程(2):join的用法、线程安全问题

找往期文章包括但不限于本期文章中不懂的知识点&#xff1a; 个人主页&#xff1a;我要学编程(ಥ_ಥ)-CSDN博客 所属专栏&#xff1a;JavaEE 目录 模拟实现线程中断 join的用法 线程的状态 NEW&#xff1a; RUNNABLE&#xff1a; TIMED_WAITING&#xff1a; TERMINATED…

系统架构图设计(轻量级架构)

轻量级架构一般包括&#xff1a;表现层、业务逻辑层、持久层、数据库层 表现层架构 MVC 模型&#xff08;Model&#xff09;&#xff1a;应用程序的主体部分&#xff0c;表示业务数据和业务逻辑视图&#xff08;View&#xff09;&#xff1a;用户看到并与之交流的界面控制器&…

Lim测试平台,五步完成批量生成数据

一、前言 在日常的测试工作中&#xff0c;我们常常需要生成大量的数据&#xff0c;例如为了测试分页功能、进行性能压力测试或准备测试所需的数据集。 虽然可以通过编写脚本或者使用如JMeter这样的工具来完成这些任务&#xff0c;但在团队合作的情境下&#xff0c;这种方法存…

打造通往自由的交易系统与策略——《以交易为生》读后感

我们知道要顺势而为&#xff0c;可什么是“势”&#xff1f;交易市场就像一片汪洋大海&#xff0c;潮起潮落的背后&#xff0c;有一套可以捕捉趋势的规律。要想看到势&#xff0c;就像软件工程中的可观测性&#xff0c;要找到合适的工具和指标&#xff0c;才能发现市场中重要的…

【云从】十、常见安全问题与云计算的计费模式

文章目录 1、常见安全问题1.1 DDoS攻击1.2 病毒攻击1.3 木马攻击1.4 代码自身漏洞 2、安全体系3、云计算的计费模式4、常见云产品的计费方案5、云产品计费案例 1、常见安全问题 1.1 DDoS攻击 通过分布在各地的大量终端&#xff0c;同时向目标发送恶意报包&#xff0c;以占满目…

微信小程序版本更新管理——实现自动更新

✅作者简介&#xff1a;2022年博客新星 第八。热爱国学的Java后端开发者&#xff0c;修心和技术同步精进。 &#x1f34e;个人主页&#xff1a;Java Fans的博客 &#x1f34a;个人信条&#xff1a;不迁怒&#xff0c;不贰过。小知识&#xff0c;大智慧。 &#x1f49e;当前专栏…

图表设计中文本的字体、大小与颜色

在创建图表时&#xff0c;我们往往过分关注图形的设计而忽视了文本的重要性。文本在图表中扮演着至关重要的角色&#xff0c;它不仅辅助图形具象化地展示数据&#xff0c;更是图表真实性和可靠性的关键。然而&#xff0c;很多人在设计图表时&#xff0c;并没有考虑到字体的选择…

生成对抗网络模拟缺失数据,辅助PAMAP2数据集仿真实验

PAMAP2数据集是一个包含丰富身体活动信息的数据集&#xff0c;它为我们提供了一个理想的平台来开发和测试HAR模型。本文将从数据集的基本介绍开始&#xff0c;逐步引导大家通过数据分割、预处理、模型训练&#xff0c;到最终的性能评估&#xff0c;在接下来的章节中&#xff0c…

PPT一键合并单元格!2个实用办公技巧,助力轻松搞定ppt!

我们都知道&#xff0c;ppt是一个多元的内容呈现媒介&#xff0c;我们可以在ppt中插入文字、图片、视频、音频和表格等&#xff0c;每种元素起到不同的作用&#xff0c;彼此间相得益彰。对于PPT中的表格&#xff0c;有时需要进行合并单元格的操作&#xff0c;即多合一&#xff…

校园建筑用电安全监测装置 电气火灾监测预防设备功能介绍

在现代建筑中&#xff0c;电气火灾监测装置的作用越来越重要。随着建筑规模的扩大和电气设备的多样化&#xff0c;电气火灾的风险也随之增加。因此&#xff0c;建立有效的火灾监测和预警系统&#xff0c;对于保护人身安全和财产安全显得尤为关键。 电气火灾指由电气故障引发的…

【Spring篇】Spring的Aop详解

&#x1f9f8;安清h&#xff1a;个人主页 &#x1f3a5;个人专栏&#xff1a;【计算机网络】【Mybatis篇】【Spring篇】 &#x1f6a6;作者简介&#xff1a;一个有趣爱睡觉的intp&#xff0c;期待和更多人分享自己所学知识的真诚大学生。 目录 &#x1f3af;初始Sprig AOP及…

【C++】哈希表的模拟实现

目录 一、闭散列&#xff08;开放定址定法&#xff09; 1、哈希表的结构&#xff1a; 2、哈希表的插入&#xff1a; 3、哈希表的查找&#xff1a; 4、哈希表的删除&#xff1a; 二、开散列&#xff08;哈希桶&#xff09; 1、哈希表的结构&#xff1a; 2、构造与析构&a…

常用shell指令

这些指令通常在adb shell环境中使用&#xff0c;或者通过其他方式&#xff08;如SSH&#xff09;直接在设备的shell中使用。 文件操作命令 ls&#xff1a;列出目录的内容 ls /sdcard cd&#xff1a;改变目录 cd /sdcard/Download pwd&#xff1a;打印当前工作目录 pwd cat&…

自动化抖音点赞取消脚本批量处理

&#x1f31f; 前言 欢迎来到我的技术小宇宙&#xff01;&#x1f30c; 这里不仅是我记录技术点滴的后花园&#xff0c;也是我分享学习心得和项目经验的乐园。&#x1f4da; 无论你是技术小白还是资深大牛&#xff0c;这里总有一些内容能触动你的好奇心。&#x1f50d; &#x…

centos7 nginx优化

优化nginx进程个数的策略 在高并发、高访问量的web服务场景&#xff0c;需要事先启动好更多的nginx进程&#xff0c;以保证快速响应并处理大量并发用户的请求。worker_processes 1;一般调整到与CPU的颗数相同查看LInux可查看CPU个数及总核数grep processor /proc/cpuinfo|wc …

手机摄影入门

感觉会摄影的人是能够从生活中发现美的人。 我不太会拍照&#xff0c;觉得拍好的照片比较浪费时间&#xff0c;而且缺乏审美也缺乏技巧&#xff0c;所以拍照的时候总是拍不好。但有时候还是需要拍一些好看的照片的。 心态和审美可能需要比较长时间提升&#xff0c;但一些基础…

在不支持AVX的linux上使用PaddleOCR

背景 公司的虚拟机CPU居然不支持avx, 默认的paddlepaddle的cpu版本又需要有支持avx才行,还想用PaddleOCR有啥办法呢? 是否支持avx lscpu | grep avx 支持avx的话,会显示相关信息 如果不支持的话,python运行时导入paddle会报错 怎么办呢 方案一 找公司it,看看虚拟机为什么…

重学SpringBoot3-Spring WebFlux之HttpHandler和HttpServer

更多SpringBoot3内容请关注我的专栏&#xff1a;《SpringBoot3》 期待您的点赞&#x1f44d;收藏⭐评论✍ 重学SpringBoot3-Spring WebFlux之HttpHandler和HttpServer 1. 什么是响应式编程&#xff1f;2. Project Reactor 概述3. HttpHandler概述3.1 HttpHandler是什么3.2 Http…

有什么牌子的学生台灯性价比高?五款性价比高的学生用台灯

最近不少朋友都在问我&#xff0c;有什么牌子的学生台灯性价比高&#xff1f;说实话&#xff0c;这还真不是个容易回答的问题。市面上的台灯品种琳琅满目&#xff0c;价格从几十到上千都有&#xff0c;功能也是五花八门。选择一款适合自己的护眼台灯&#xff0c;确实需要好好琢…