[发明专利]一种数据处理方法及装置有效
申请号: | 201710476520.3 | 申请日: | 2017-06-21 |
公开(公告)号: | CN107357672B | 公开(公告)日: | 2020-12-18 |
发明(设计)人: | 周颖 | 申请(专利权)人: | 联想(北京)有限公司 |
主分类号: | G06F11/07 | 分类号: | G06F11/07;G06F9/4401 |
代理公司: | 北京派特恩知识产权代理有限公司 11270 | 代理人: | 张颖玲;蒋雅洁 |
地址: | 100085*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 数据处理 方法 装置 | ||
本发明实施例公开了一种数据处理方法及装置,其中,所述方法包括:从内存映像文件中确定出长度小于第一预设值的可用内存块;调用可扩展固件接口(EFI)应用或统一的可扩展固件接口(UEFI)应用的内存申请函数,将所述可用内存块的类型修改为与所述可用内存块相邻的已使用内存块的类型,使所述内存映像文件中的条目(Entry)数由第一数值调整至第二数值,其中,所述第一数值大于所述第二数值。采用本发明实施例所述技术方案,能减少解决因memory entry数量过多而造成Windows启动失败的问题。
技术领域
本发明涉及计算机技术领域,具体涉及一种数据处理方法及装置。
背景技术
Windows的引导程序(BootLoader)在启动时,会读取可扩展固件接口(EFI,Extensible Firmware Interface)或统一的可扩展固件接口(UEFI,Unified ExtensibleFirmware Interface)的内存映射(Memory Map)文件。但是,如果内存映射文件中的memory条目(entry)数超过一定值,BootLoader就会报错,从而导致Windows启动失败。某些UEFIApp或EFI App运行时,可能造成memory entry数量过多的情况。在退出UEFI App或EFI App后,如果不做系统重启,而是直接启动硬盘上的Windows,或者直接启动Windows的安装盘,则很容易出现Windows启动失败的现象。因此,如何有效避免因memory entry数量过多而造成Windows启动失败,成为亟待解决的问题。
发明内容
有鉴于此,本发明期望提供一种数据处理方法及装置,能解决因memory entry数量过多而造成Windows启动失败的问题。
为达到上述目的,本发明的技术方案是这样实现的:
第一方面,本发明实施例提供了一种数据处理方法,所述方法包括:
从内存映像文件中确定出长度小于第一预设值的可用内存块;
调用可扩展固件接口(EFI,Extensible Firmware Interface)应用或统一的可扩展固件接口(UEFI,Unified Extensible Firmware Interface)应用的内存申请函数,将所述可用内存块的类型修改为与所述可用内存块相邻的已使用内存块的类型,使所述内存映像文件中的条目(Entry)数由第一数值调整至第二数值,其中,所述第一数值大于所述第二数值。
上述方案中,可选地,所述调用EFI应用或UEFI应用的内存申请函数,将所述可用内存块的类型修改为与所述可用内存块相邻的已使用内存块的类型,包括:
在EFI应用或UEFI应用退出前,或在Windows的引导程序启动前,调用EFI应用或UEFI应用的内存申请函数,将所述可用内存块的类型修改为与所述可用内存块相邻的已使用内存块的类型。
上述方案中,可选地,所述将所述可用内存块的类型修改为与所述可用内存块相邻的已使用内存块的类型之前,还包括:
从所述长度小于第一预设值的可用内存块中,选择待修改类型的可用内存块。
上述方案中,可选地,所述从所述长度小于第一预设值的可用内存块中,选择待修改类型的可用内存块,包括:
统计所述长度小于第一预设值的可用内存块中不同长度值所占的比例;
统计内存映像文件中当前的Entry数;
根据所述不同长度值所占的比例,以及所述Entry数,确定待修改类型的可用内存块的长度值。
上述方案中,可选地,所述将所述可用内存块的类型修改为与所述可用内存块相邻的已使用内存块的类型,包括:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于联想(北京)有限公司,未经联想(北京)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710476520.3/2.html,转载请声明来源钻瓜专利网。