无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站投放广告、加入VIP会员,请联系 微信:wuyouceo
楼主: 不点
打印 上一主题 下一主题

现在的 PE 是用 svbus 还是 firadisk/winvblock?

    [复制链接]
301#
发表于 2021-12-4 21:08:21 | 只看该作者
sunsea 发表于 2021-12-4 21:02
粗看了下,代码除了没加分号之类的问题以外没大问题,感谢!

编译和调试我在搞,尼玛狗屎烂蛋的M$ Win ...

https://blog.csdn.net/sanqiuai/article/details/119413564
我没弄过,不知道行不行。

点评

似乎能用,不过莫名其妙编译出来的启动不了……我去坛子上找个极限精简版Win10装个调试机吧,尼玛XP还不给用来做调试端……M$真的绝了  详情 回复 发表于 2021-12-5 17:55
回复

使用道具 举报

302#
发表于 2021-12-5 17:55:31 | 只看该作者

似乎能用,不过莫名其妙编译出来的启动不了……我去坛子上找个极限精简版Win10装个调试机吧,尼玛XP还不给用来做调试端……M$真的绝了。我以前调试这玩意一直用XP,Win10体积太大了
回复

使用道具 举报

303#
发表于 2021-12-5 19:26:09 | 只看该作者
2011yaya2007777 发表于 2021-12-3 14:21
sunsea : svbus 的补丁我已经打上了,你再看看有什么问题。下一步编译就看你了。

喵的,上调试器整死机了,正常启动没认盘,我就用最土最笨的办法好了:插调试信息。不过这就比较费事了,最近比较忙,等段时间吧。
回复

使用道具 举报

304#
发表于 2021-12-5 19:48:46 来自手机 | 只看该作者
现在的调试环境和以前不一样了吗?还挺费事的。

点评

不清楚M$在搞什么。我这下断点后跑起来直接死机了。也可能是我操作问题。  详情 回复 发表于 2021-12-5 19:58
回复

使用道具 举报

305#
发表于 2021-12-5 19:58:58 | 只看该作者
2011yaya2007777 发表于 2021-12-5 19:48
现在的调试环境和以前不一样了吗?还挺费事的。

不清楚M$在搞什么。我这下断点后跑起来直接死机了。也可能是我操作问题。
回复

使用道具 举报

306#
发表于 2021-12-6 08:28:31 | 只看该作者
这个 svbus 编译出 svbusx64.sys 和 svbusx86.sys。
关于变量长度有个疑问:
ULONGLONG 在 32/64 位环境应该都是 64 位吧?
ULONG  在 32/64 位环境应该分别是 32/64 位吧?还是都是 32 位?

如果ULONG  在 32/64 位环境应该分别是 32/64 位,那在 64 位环境使用 32 位整数,怎么表示?

点评

ULONG固定32位,ULONGLONG固定64位,int长度会变。需要32位整数可以固定使用ULONG。  详情 回复 发表于 2021-12-6 09:45
回复

使用道具 举报

307#
发表于 2021-12-6 09:45:29 | 只看该作者
2011yaya2007777 发表于 2021-12-6 08:28
这个 svbus 编译出 svbusx64.sys 和 svbusx86.sys。
关于变量长度有个疑问:
ULONGLONG 在 32/64 位环境 ...

ULONG固定32位,ULONGLONG固定64位,int长度会变。需要32位整数可以固定使用ULONG。
回复

使用道具 举报

308#
发表于 2021-12-6 10:49:30 | 只看该作者
明白了。结构定义没有错误。

点评

初步调试笔记: [attachimg]492912[/attachimg] ↑这个用途不明,但是会让调试的时候出现问题直接跑飞,下一步应该注释掉 [attachimg]492913[/attachimg] 此处对碎片的判断似乎出现了问题,没有抓到碎片。  详情 回复 发表于 2021-12-22 16:17
搜了下,int长度是确定的,32位。M$下long的长度也是32位,但是GCC下就说不准,可能跟的是Linux的规定(见图),不知道g4d按什么编译的。可能要上stdint.h固定长度。  详情 回复 发表于 2021-12-6 23:12
回复

使用道具 举报

309#
发表于 2021-12-6 23:12:09 来自手机 | 只看该作者
本帖最后由 sunsea 于 2021-12-6 23:15 编辑
2011yaya2007777 发表于 2021-12-6 10:49
明白了。结构定义没有错误。


搜了下,int长度是确定的,32位。M$下long的长度也是32位,但是GCC下(包括给uefi编译的时候)就说不准,可能跟的是Linux的规定(见图),不知道g4d按什么编译的。可能要上stdint.h固定长度。

Screenshot_2021-12-06-23-09-43-335_com.zhihu.android.jpg (42.35 KB, 下载次数: 295)

Screenshot_2021-12-06-23-09-43-335_com.zhihu.android.jpg
回复

使用道具 举报

310#
发表于 2021-12-22 16:17:21 | 只看该作者
2011yaya2007777 发表于 2021-12-6 10:49
明白了。结构定义没有错误。

初步调试笔记:

↑这个用途不明,但是会让调试的时候出现问题直接跑飞,下一步应该注释掉



此处对碎片的判断似乎出现了问题,没有抓到碎片。下次调试时应该抓常规内存进来确定碎片表在哪,确定是否是对地址的运算有问题。

(最近较忙,估计过段时间才能继续搞了,不过肯定会搞完,以及是否应该单开一个主题?)


回复

使用道具 举报

311#
发表于 2021-12-22 16:42:13 来自手机 | 只看该作者
同意另开一贴。第一幅画,好像是原程序的内容吧,似乎应该把"!"去掉。有关第二幅图,应当使用最新版本的g4e。

点评

这样的话碎片处理补丁对于 grub4dos-for_UEFI-2021-12-15 在Win10 x64上测试通过了。不过从刚刚第二幅图来看,g4d和g4e碎片表放置位置有差异?(测试楼上第二幅图的环境是grub4dos-0.4.6a-2021-11-19) 这几天的  详情 回复 发表于 2021-12-22 21:49
回复

使用道具 举报

312#
发表于 2021-12-22 21:49:29 | 只看该作者
2011yaya2007777 发表于 2021-12-22 16:42
同意另开一贴。第一幅画,好像是原程序的内容吧,似乎应该把"!"去掉。有关第二幅图,应当使用最新版本的g4e ...

这样的话碎片处理补丁对于 grub4dos-for_UEFI-2021-12-15 在Win10 x64上测试通过了。不过从刚刚第二幅图来看,g4d和g4e碎片表放置位置有差异?(测试楼上第二幅图的环境是grub4dos-0.4.6a-2021-11-19)

这几天的话我把整理过的源代码发出并编译(然后另开一主题帖),然后大家一起在各种环境上广泛测试,争取经受最广泛地考验、不出bug。

点评

恭喜!  发表于 2021-12-23 12:41
回复

使用道具 举报

313#
发表于 2021-12-23 05:34:53 来自手机 | 只看该作者
新旧版本的g4d,碎片位置不一样。最新版本的g4d与最新版本的g4e,碎片位置一致。
回复

使用道具 举报

314#
发表于 2022-1-10 01:37:16 | 只看该作者
楼主有WIN7X86SVBus驱动文件吗不报错重启蓝屏带签名的,发一下谢谢~~!
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-11-27 06:14

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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