找回密码
 注册
搜索
系统gho:最纯净好用系统下载站投放广告、加入VIP会员,请联系 微信:wuyouceo
查看: 5800|回复: 28

[分享] EFI 变量设置封装函数(PECMD 源码)

  [复制链接]
发表于 2025-8-12 20:00:18 | 显示全部楼层 |阅读模式
本帖最后由 Bluebells 于 2025-8-13 19:50 编辑

于 2025/8/13 更新
优化删除 EFI 启动条目的处理逻辑


关于"封装"(还是包装?), 我不知道正确应该怎么说, 因为本人没啥编程基础(网上的资源提到的一些名词真的五花八门)
所谓的"EFI 变量设置封装函数"其实类似于 Autoit 脚本语言中所说的 UDF
1. 创建/修改/删除 EFI 启动条目;
2. 设置/取消设置下次启动时进入指定的 EFI 启动条目
3. 设置下次启动时进入固件设置(BIOS-UEFI)

正因为本人没啥编程基础, 所以代码质量很差, 但勉强能用
EFI_Variable_Management.zip (2.24 KB, 下载次数: 97)

评分

参与人数 3无忧币 +15 收起 理由
527104427 + 5 牛逼
freesoft00 + 5
wintoflash + 5

查看全部评分

发表于 2025-8-12 20:19:43 | 显示全部楼层
感谢分享
回复

使用道具 举报

发表于 2025-8-12 21:01:58 | 显示全部楼层
用上NtTranslateFilePath这个API了啊。

点评

以前是用 _DRIVE_LAYOUT_INFORMATION_EX 结构里的数据设置 EFI_LOAD_OPTION 结构里的成员数据, 麻烦死了 后来看到您之前提到 NtTranslateFilePath 函数可以转换路径格式就开始研究这个. 话说, 虽然您提供了源码,  详情 回复 发表于 2025-8-12 21:25
回复

使用道具 举报

 楼主| 发表于 2025-8-12 21:25:37 | 显示全部楼层
wintoflash 发表于 2025-8-12 21:01
用上NtTranslateFilePath这个API了啊。

以前是用 DRIVE_LAYOUT_INFORMATION_EX 结构里的数据设置 EFI_LOAD_OPTION 结构里的成员数据, 麻烦死了
后来看到您之前提到 NtTranslateFilePath 函数可以转换路径格式就开始研究这个.
话说, 虽然您提供了源码, 但我完全看不懂(因为我只会一点 autoit 和 purebasic 这种脚本语言), 但我通过使用 API Monitor 调试捕获了一下, 终于学会如何定义该函数的部分参数
回复

使用道具 举报

发表于 2025-8-12 22:31:48 | 显示全部楼层
感谢分享
回复

使用道具 举报

发表于 2025-8-13 07:57:21 | 显示全部楼层
感谢大佬整理分享,这个真的很有用
回复

使用道具 举报

发表于 2025-8-13 08:34:25 | 显示全部楼层
感谢分享
回复

使用道具 举报

发表于 2025-8-13 10:21:24 | 显示全部楼层
支持原创
回复

使用道具 举报

发表于 2025-8-13 12:13:13 | 显示全部楼层
感谢楼主分享!
回复

使用道具 举报

发表于 2025-8-13 21:09:09 | 显示全部楼层
感谢分享!
回复

使用道具 举报

发表于 2025-8-13 21:54:41 | 显示全部楼层
向PECMD2012高手致敬
回复

使用道具 举报

发表于 2025-8-14 01:25:32 | 显示全部楼层
感谢分享!
回复

使用道具 举报

发表于 2025-8-14 02:19:18 | 显示全部楼层
感谢分享
回复

使用道具 举报

发表于 2025-8-14 06:44:36 来自手机 | 显示全部楼层
下来玩玩,鼓励动手,赞扬分享。
回复

使用道具 举报

发表于 2025-8-14 09:50:42 | 显示全部楼层
本来想下来玩玩,结果运行啥反应也没有,不会用。

点评

可以交流学习  详情 回复 发表于 2025-8-14 12:25
回复

使用道具 举报

发表于 2025-8-14 09:53:01 | 显示全部楼层
楼主实力堪比红毛,牛逼
回复

使用道具 举报

发表于 2025-8-14 12:25:28 | 显示全部楼层
窄口牛 发表于 2025-8-14 09:50
本来想下来玩玩,结果运行啥反应也没有,不会用。

可以交流学习

点评

我个文盲,哪有那资格。  详情 回复 发表于 2025-8-14 13:31
回复

使用道具 举报

发表于 2025-8-14 13:31:06 来自手机 | 显示全部楼层
guong 发表于 2025-8-14 12:25
可以交流学习

我个文盲,哪有那资格。
回复

使用道具 举报

发表于 2025-8-14 14:21:41 来自手机 | 显示全部楼层
感谢楼主分享
回复

使用道具 举报

发表于 2025-8-23 16:45:54 | 显示全部楼层
谢谢分享。
回复

使用道具 举报

发表于 2025-8-31 11:20:57 | 显示全部楼层
谢谢楼主分享
回复

使用道具 举报

发表于 2025-9-1 15:00:02 | 显示全部楼层

谢谢楼主分享
回复

使用道具 举报

发表于 2025-9-18 17:52:45 | 显示全部楼层
牛逼
回复

使用道具 举报

发表于 2025-9-26 19:36:32 | 显示全部楼层
谢谢分享
回复

使用道具 举报

发表于 2025-10-2 11:36:24 | 显示全部楼层
感谢楼主 互相可以交流学习
回复

使用道具 举报

发表于 2025-10-28 00:26:28 | 显示全部楼层
都是_SUB怎么调用呢?在什么情况下调用那个SUB。。。看的有点蒙。。
回复

使用道具 举报

发表于 2025-10-28 00:27:42 | 显示全部楼层
我个人感觉可不可以用BCDEDIT来获取启动列表,整理判断后,用BCDEDIT删除多余的...
回复

使用道具 举报

发表于 2025-10-28 00:34:27 | 显示全部楼层
学习学习
回复

使用道具 举报

发表于 昨天 20:35 | 显示全部楼层
学习下,谢谢分享..
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1|闽公网安备35020302032614号 )

GMT+8, 2026-3-18 19:45

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表