CN114116035B - Windows下的BIOS设置方法、装置及存储介质 - Google Patents

Windows下的BIOS设置方法、装置及存储介质 Download PDF

Info

Publication number
CN114116035B
CN114116035B CN202210089067.1A CN202210089067A CN114116035B CN 114116035 B CN114116035 B CN 114116035B CN 202210089067 A CN202210089067 A CN 202210089067A CN 114116035 B CN114116035 B CN 114116035B
Authority
CN
China
Prior art keywords
data
bios
windows
variable
bios setting
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202210089067.1A
Other languages
English (en)
Other versions
CN114116035A (zh
Inventor
李晓涛
乐磊
李伟
李洪明
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shenzhen Jifang Industrial Control Co ltd
Original Assignee
Shenzhen Jifang Industrial Control Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Shenzhen Jifang Industrial Control Co ltd filed Critical Shenzhen Jifang Industrial Control Co ltd
Priority to CN202210089067.1A priority Critical patent/CN114116035B/zh
Publication of CN114116035A publication Critical patent/CN114116035A/zh
Application granted granted Critical
Publication of CN114116035B publication Critical patent/CN114116035B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4406Loading of operating system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Stored Programmes (AREA)

Abstract

本发明公开了一种Windows下的BIOS设置方法、装置及存储介质,所述方法包括:定义数据结构体变量,定义所述数据结构体变量的描述名称和唯一标识符,向Windows声明接口调用权限;根据所述数据结构体变量的描述名称和唯一标识符,从预设BIOS数据存储器中获取所述数据结构体变量的结构体数据;对所述结构体数据进行修改以得到修改后数据;将所述修改后数据写入所述预设BIOS数据存储器中以完成BIOS设置。通过实施本发明,有利于非专业技术人员进行操作,可以直接在Windows操作系统下使用程序进行BIOS设置,无需重启进入BIOS设置界面,省时省力,显著提升了生产效率。

Description

Windows下的BIOS设置方法、装置及存储介质
技术领域
本发明涉及计算机应用技术领域,尤其涉及Windows下的BIOS设置方法、装置及存储介质。
背景技术
BIOS(Basic Input/Output System,基本输入输出系统)设置程序是储存在BIOS芯片中的,BIOS芯片是主板上一块长方形或正方形芯片,BIOS设置程序主要对计算机的基本输入输出系统进行管理和设置,使系统运行在最好状态下,使用BIOS设置程序还可以排除系统故障或者诊断系统问题。
但是,相比常规的操作设置,如果需要修改BIOS设置必须重启系统,在开机时进入到BIOS设置界面才可以进行操作,例如在计算机启动时按F2键或者Delete键进入BIOS进行设置,一些特殊机型按F1键、Esc键或F12键等进行设置。
然而,传统的BIOS设置操作相对于非行业技术人员有一定的难度,这会导致这部分用户的使用体验不佳。
发明内容
本发明的主要目的在于提供一种Windows下的BIOS设置方法、装置及存储介质,旨在解决在需要进行BIOS设置时,如何提升非行业技术人员的使用体验的技术问题。
为实现上述目的,本发明提供一种Windows下的BIOS设置方法,所述Windows下的BIOS设置方法包括以下步骤:
定义数据结构体变量,定义所述数据结构体变量的描述名称和唯一标识符,向Windows声明接口调用权限;
根据所述数据结构体变量的描述名称和唯一标识符,从预设BIOS数据存储器中获取所述数据结构体变量的结构体数据;
对所述结构体数据进行修改以得到修改后数据;
根据所述数据结构体变量的描述名称和唯一标识符,将所述修改后数据写入所述预设BIOS数据存储器中以完成BIOS设置。
可选地,所述从预设BIOS数据存储器中获取所述数据结构体变量的结构体数据的步骤包括:
调用所述Windows系统的获取固件环境变量接口,从预设BIOS数据存储器中获取所述数据结构体变量的结构体数据,并将所述结构体数据存储于所述Windows系统分配的非托管数据缓存区中。
可选地,所述将所述结构体数据存储于所述Windows系统分配的非托管内存区域中的步骤之后包括:
将存储于所述非托管内存区域中的所述结构体数据封送到所述Windows系统分配的指定类型的托管数据缓存区中。
可选地,所述对所述结构体数据进行修改以得到修改后数据的步骤之前包括:
根据所述数据结构体变量中的成员偏移量,在所述托管数据缓存区中定位到需要修改的成员数据。
可选地,所述对所述结构体数据进行修改以得到修改后数据的步骤包括:
根据所述Windows系统的程序输入参数设置,对所述结构体数据进行格式修改并加以封装后,得到所述托管数据缓存区中的修改后数据。
可选地,所述将所述修改后数据写入所述预设BIOS数据存储器中以完成BIOS设置的步骤包括:
调用所述Windows系统的设置固件环境变量接口,将所述托管数据缓存区中的修改后数据写入所述预设BIOS数据存储器中以完成BIOS设置。
可选地,所述根据所述数据结构体变量的描述名称和唯一标识符,从预设BIOS数据存储器中获取所述数据结构体变量的结构体数据的步骤之前包括:
基于所述数据结构体变量开辟临时数据缓存区;
向所述Windows系统申请可操作的非托管数据缓存区;
将所述临时数据缓存区从托管数据缓存区封送到所述非托管数据缓存区。
可选地,所述将所述修改后数据写入所述预设BIOS数据存储器中以完成BIOS设置的步骤之后包括:
释放所述临时数据缓存区。
此外,为实现上述目的,本发明还提供一种Windows下的BIOS设置装置,所述Windows下的BIOS设置装置包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的Windows下的BIOS设置程序,所述Windows下的BIOS设置程序被所述处理器执行时实现如上所述的Windows下的BIOS设置方法的步骤。
此外,为实现上述目的,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有Windows下的BIOS设置程序,所述Windows下的BIOS设置程序被处理器执行时实现如上所述的Windows下的BIOS设置方法的步骤。
本发明提出一种Windows下的BIOS设置方法、装置及计算机可读存储介质,克服了现有技术中需要修改BIOS设置必须重启系统,在开机时进入到BIOS设置界面才可以进行操作的问题。在所述Windows下的BIOS设置方法中,通过定义数据结构体变量,定义所述数据结构体变量的描述名称和唯一标识符,向Windows声明接口调用权限;根据所述数据结构体变量的描述名称和唯一标识符,从预设BIOS数据存储器中获取所述数据结构体变量的结构体数据;对所述结构体数据进行修改以得到修改后数据;根据所述数据结构体变量的描述名称和唯一标识符,将所述修改后数据写入所述预设BIOS数据存储器中以完成BIOS设置。本发明在Windows操作系统直接运行Windows下的BIOS设置程序,即可修改到BIOS的设置,本发明使用Windows系统环境下的程序,操作界面简洁,人性化程度更高,有利于非专业技术人员进行操作,例如在主板的生产测试环节中,当完成Windows系统的功能测试之后,可以直接使用本发明提供的Windows下的BIOS设置程序进行BIOS设置,无需再重启进入BIOS设置界面进行相关的设置,省时省力,显著提升了生产效率。
附图说明
图1是本发明实施例方案涉及的硬件运行环境的终端结构示意图;
图2为本发明Windows下的BIOS设置方法第一实施例的流程示意图;
图3为本发明Windows下的BIOS设置方法第二实施例的流程示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明实施例的主要解决方案是:一种Windows下的BIOS设置方法,所述Windows下的BIOS设置方法应用于Windows系统,包括以下步骤:
定义数据结构体变量,定义所述数据结构体变量的描述名称和唯一标识符,向Windows声明接口调用权限;
根据所述数据结构体变量的描述名称和唯一标识符,从预设BIOS数据存储器中获取所述数据结构体变量的结构体数据;
对所述结构体数据进行修改以得到修改后数据;
根据所述数据结构体变量的描述名称和唯一标识符,将所述修改后数据写入所述预设BIOS数据存储器中以完成BIOS设置。
BIOS(Basic Input/Output System,基本输入输出系统)设置程序是储存在BIOS芯片中的,BIOS芯片是主板上一块长方形或正方形芯片,BIOS设置程序主要对计算机的基本输入输出系统进行管理和设置,使系统运行在最好状态下,使用BIOS设置程序还可以排除系统故障或者诊断系统问题。
但是,相比常规的操作设置,如果需要修改BIOS设置必须重启系统,在开机时进入到BIOS设置界面才可以进行操作,例如在计算机启动时按F2键或者Delete键进入BIOS进行设置,一些特殊机型按F1键、Esc键或F12键等进行设置。
然而,传统的BIOS设置操作相对于非行业技术人员有一定的难度,这会导致这部分用户的使用体验不佳。
本发明提供一种Windows下的BIOS设置方法,克服了现有技术中需要修改BIOS设置必须重启系统,在开机时进入到BIOS设置界面才可以进行操作的问题。在所述Windows下的BIOS设置方法中,通过定义数据结构体变量,定义所述数据结构体变量的描述名称和唯一标识符,向Windows声明接口调用权限;根据所述数据结构体变量的描述名称和唯一标识符,从预设BIOS数据存储器中获取所述数据结构体变量的结构体数据;对所述结构体数据进行修改以得到修改后数据;根据所述数据结构体变量的描述名称和唯一标识符,将所述修改后数据写入所述预设BIOS数据存储器中以完成BIOS设置。本发明在Windows操作系统直接运行Windows下的BIOS设置程序,即可修改到BIOS的设置,本发明使用Windows系统环境下的程序,操作界面简洁,人性化程度更高,有利于非专业技术人员进行操作,例如在主板的生产测试环节中,当完成Windows系统的功能测试之后,可以直接使用本发明提供的Windows下的BIOS设置程序进行BIOS设置,无需再重启进入BIOS设置界面进行相关的设置,省时省力,显著提升了生产效率。
如图1所示,图1是本发明实施例方案涉及的硬件运行环境的终端结构示意图。
本发明实施例终端可以是PC,也可以是智能手机、平板电脑、便携计算机等可装载Windows系统的可移动式终端设备。
如图1所示,该终端可以包括:处理器1001,例如CPU,网络接口1004,用户接口1003,存储器1005,通信总线1002。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(Display)、输入单元比如键盘(Keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如WI-FI接口)。存储器1005可以是高速RAM存储器,也可以是稳定的存储器(non-volatile memory),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。
可选地,终端还可以包括摄像头、RF(Radio Frequency,射频)电路,传感器、音频电路、WiFi模块等等。其中,传感器比如光传感器、运动传感器以及其他传感器。具体地,光传感器可包括环境光传感器及接近传感器,其中,环境光传感器可根据环境光线的明暗来调节显示屏的亮度,接近传感器可在移动终端移动到耳边时,关闭显示屏和/或背光。作为运动传感器的一种,重力加速度传感器可检测各个方向上(一般为三轴)加速度的大小,静止时可检测出重力的大小及方向,可用于识别移动终端姿态的应用(比如横竖屏切换、相关游戏、磁力计姿态校准)、振动识别相关功能(比如计步器、敲击)等;当然,移动终端还可配置陀螺仪、气压计、湿度计、温度计、红外线传感器等其他传感器,在此不再赘述。
本领域技术人员可以理解,图1中示出的终端结构并不构成对终端的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
如图1所示,作为一种计算机存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及Windows下的BIOS设置程序。
在图1所示的终端中,网络接口1004主要用于连接后台服务器,与后台服务器进行数据通信;用户接口1003主要用于连接客户端(用户端),与客户端进行数据通信;而处理器1001可以用于调用存储器1005中存储的Windows下的BIOS设置程序,并执行以下操作:
定义数据结构体变量,定义所述数据结构体变量的描述名称和唯一标识符,向Windows声明接口调用权限;
根据所述数据结构体变量的描述名称和唯一标识符,从预设BIOS数据存储器中获取所述数据结构体变量的结构体数据;
对所述结构体数据进行修改以得到修改后数据;
根据所述数据结构体变量的描述名称和唯一标识符,将所述修改后数据写入所述预设BIOS数据存储器中以完成BIOS设置。
进一步地,处理器1001可以调用存储器1005中存储的Windows下的BIOS设置程序,还执行以下操作:
所述从预设BIOS数据存储器中获取所述数据结构体变量的结构体数据的步骤包括:
调用所述Windows系统的获取固件环境变量接口,从预设BIOS数据存储器中获取所述数据结构体变量的结构体数据,并将所述结构体数据存储于所述Windows系统分配的非托管数据缓存区中。
进一步地,处理器1001可以调用存储器1005中存储的Windows下的BIOS设置程序,还执行以下操作:
所述将所述结构体数据存储于所述Windows系统分配的非托管内存区域中的步骤之后包括:
将存储于所述非托管内存区域中的所述结构体数据封送到所述Windows系统分配的指定类型的托管数据缓存区中。
进一步地,处理器1001可以调用存储器1005中存储的Windows下的BIOS设置程序,还执行以下操作:
所述对所述结构体数据进行修改以得到修改后数据的步骤之前包括:
根据所述数据结构体变量中的成员偏移量,在所述托管数据缓存区中定位到需要修改的成员数据。
进一步地,处理器1001可以调用存储器1005中存储的Windows下的BIOS设置程序,还执行以下操作:
所述对所述结构体数据进行修改以得到修改后数据的步骤包括:
根据所述Windows系统的程序输入参数设置,对所述结构体数据进行格式修改并加以封装后,得到所述托管数据缓存区中的修改后数据。
进一步地,处理器1001可以调用存储器1005中存储的Windows下的BIOS设置程序,还执行以下操作:
所述将所述修改后数据写入所述预设BIOS数据存储器中以完成BIOS设置的步骤包括:
调用所述Windows系统的设置固件环境变量接口,将所述托管数据缓存区中的修改后数据写入所述预设BIOS数据存储器中以完成BIOS设置。
进一步地,处理器1001可以调用存储器1005中存储的Windows下的BIOS设置程序,还执行以下操作:
所述根据所述数据结构体变量的描述名称和唯一标识符,从预设BIOS数据存储器中获取所述数据结构体变量的结构体数据的步骤之前包括:
基于所述数据结构体变量开辟临时数据缓存区;
向所述Windows系统申请可操作的非托管数据缓存区;
将所述临时数据缓存区从托管数据缓存区封送到所述非托管数据缓存区。
进一步地,处理器1001可以调用存储器1005中存储的Windows下的BIOS设置程序,还执行以下操作:
所述将所述修改后数据写入所述预设BIOS数据存储器中以完成BIOS设置的步骤之后包括:
释放所述临时数据缓存区。
参照图2,本发明第一实施例提供一种Windows下的BIOS设置方法,所述Windows下的BIOS设置方法包括:
步骤S10,定义数据结构体变量,定义所述数据结构体变量的描述名称和唯一标识符,向Windows声明接口调用权限;
本实施例中,执行主体为可装载Windows系统的Windows下的BIOS设置装置,可以是PC,也可以是智能手机、平板电脑、便携计算机等可装载Windows系统的可移动式终端设备。
本实施例中开发的Windows下的BIOS设置程序是可以在Windows系统运行的桌面应用程序,可以是Windows Console程序,即Win32 Console Application(win32控制台应用程序)往往是像MS-DOS窗口(命令提示符)的样子出现,我们得用键盘输入各种命令来使用它,它与纯dos程序区别是:它是32位的;或者叫CUI(Character User Interface,字符用户接口)。console程序以main()为入口,可以访问部分windows API函数,比如创建窗口、对话框等等。也可以是Windows Forms程序,即Windows窗体应用程序,是用于.NETFramework的智能客户端技术,是一组简化读取和写入文件系统等常见应用程序任务的托管库。使用Visual Studio等开发环境时,可以创建Windows窗体智能客户端应用,以显示信息、请求用户提供输入,以及通过网络与远程计算机通信。在Windows窗体中,窗体是一种可视图面,可在其上对用户显示信息。通常情况下,通过向窗体添加控件和开发对用户操作(如点击鼠标或按键)的响应来构建Windows窗体应用程序。控件是离散的用户界面(UI)元素,用于显示数据或接受数据输入。当用户对窗体或一个窗体控件执行了某个操作,该操作将生成一个事件。应用程序通过使用代码对这些事件做出反应,并在事件发生时对其进行处理。
需要说明的是,本实施例通过利用Windows提供的API(Application ProgrammingInterface,应用程序编程接口)接口,直接在Windows系统下修改UEFI(UnifiedExtensible Firmware Interface,统一可扩展固件接口)BIOS的Variable值,修改BIOS相关的功能设置,BIOS启动引导设备顺序等,亦可通过修改的UEFI Variable(变量)数据传送给BIOS,实现Windows跟BIOS的沟通,直接操作到底层硬件设备。UEFI支持图形化操作,使用户操作更简单便捷,尤其是对于外行的非专业技术人员,可视化界面总比一堆看不懂的“代码”操作简便。
具体实现中,定义UEFI Variable数据结构体变量,定义UEFI Variable的描述名称和关联的GUID(Globally Unique Identifier,全局唯一标识符,可以完全由算法自动生成,理论上能产生全宇宙唯一的值,对于以后的数据导入而言极为方便),向Windows声明有权调用API(即声明接口调用权限)。
步骤S20,根据所述数据结构体变量的描述名称和唯一标识符,从预设BIOS数据存储器中获取所述数据结构体变量的结构体数据;
本实施例中,步骤S20中从预设BIOS数据存储器中获取所述数据结构体变量的结构体数据的步骤包括:
步骤s21,调用所述Windows系统的获取固件环境变量接口,从预设BIOS数据存储器中获取所述数据结构体变量的结构体数据,并将所述结构体数据存储于所述Windows系统分配的非托管数据缓存区中。
步骤s21之后包括:
步骤s22,将存储于所述非托管内存区域中的所述结构体数据封送到所述Windows系统分配的指定类型的托管数据缓存区中;
具体实现中,根据UEFI Variable的描述名称和关联的GUID(即所述唯一标识符),利用Window API GetFirmwareEnvironmentVariableExW(即所述获取固件环境变量接口),从BIOS UEFI Variable介质(即所述预设BIOS数据存储器)中获取UEFI Variable结构体数据,存于非托管内存区域(即所述非托管数据缓存区),将存于非托管内存区域中的UEFIVariable数据封送到新分配的指定类型的托管对象(即所述数据缓存区)。
步骤s23,根据所述数据结构体变量中的成员偏移量,在所述托管数据缓存区中定位到需要修改的成员数据。
具体实现中,根据UEFI Variable数据结构体中的成员偏移量,在所述托管数据缓存区中定位到需要修改的成员数据。
可以理解的是,在托管数据和非托管数据的转换过程中,数据结构和格式会产生一定的变化,为了保证数据修改无误,需要正确定位到需要修改的位置。
步骤S30,对所述结构体数据进行修改以得到修改后数据;
本实施例中,步骤S30包括:
根据所述Windows系统的程序输入参数设置,对所述结构体数据进行格式修改并加以封装后,得到所述托管数据缓存区中的修改后数据。
具体实现中,根据Windows Application(应用程序)的程序输入参数设置,修改所述托管数据缓存区中成员数据。
步骤S40,根据所述数据结构体变量的描述名称和唯一标识符,将所述修改后数据写入所述预设BIOS数据存储器中以完成BIOS设置。
本实施例中,步骤S40中将所述修改后数据写入所述预设BIOS数据存储器中以完成BIOS设置的步骤包括:
步骤s41,调用所述Windows系统的设置固件环境变量接口,将所述托管数据缓存区中的修改后数据写入所述预设BIOS数据存储器中以完成BIOS设置。
具体实现中,根据UEFI Variable的描述名称和关联的GUID,利用Window API SetFirmwareEnvironmentVariableExW(即所述设置固件环境变量接口),将缓存区中的数据写入到BIOS UEFI Variable介质中。
在一实施方式中,有一BIOS的Variable结构体Setup,操作者需要修改结构体Setup中的变量A,通过调用本实施例提供的能够实现Windows下的BIOS设置方法的Windows下的BIOS设置程序,基于结构体Setup的GUID,利用Windows API接口GetFirmwareEnvironmentVariableExW,从BIOS UEFI Variable介质中获取UEFI Variable Setup结构体数据,存于非托管内存区域(这个内存区块上就是Setup结构体数据,但是无法修改);然后将存于非托管内存区域的Setup结构体数据,封送到托管对象区域(就是一段新的内存区域,这个区域的数据是可读可写的);在托管对象区域定位变量A在结构体Setup中的偏移位置,当定位完成后,即可直接对变量A进行修改;修改完成后将修改后的托管数据封送到非托管内存区域;最后基于结构体Setup的GUID,利用Window API接口SetFirmwareEnvironmentVariableExW,将非托管区域数据写入到BIOS UEFI Variable介质中;当写入完成后,即完成了对于BIOS的Variable结构体Setup中的变量A的修改。
在本实施例中提出了一种Windows下的BIOS设置方法,克服了现有技术中需要修改BIOS设置必须重启系统,在开机时进入到BIOS设置界面才可以进行操作的问题。在所述Windows下的BIOS设置方法中,通过定义数据结构体变量,定义所述数据结构体变量的描述名称和唯一标识符,向Windows声明接口调用权限;根据所述数据结构体变量的描述名称和唯一标识符,从预设BIOS数据存储器中获取所述数据结构体变量的结构体数据;对所述结构体数据进行修改以得到修改后数据;根据所述数据结构体变量的描述名称和唯一标识符,将所述修改后数据写入所述预设BIOS数据存储器中以完成BIOS设置。
本实施例在Windows操作系统直接运行Windows下的BIOS设置程序,即可修改到BIOS的设置,本实施例使用Windows系统环境下的程序,操作界面简洁,人性化程度更高,有利于非专业技术人员进行操作,例如在主板的生产测试环节中,当完成Windows系统的功能测试之后,可以直接使用本发明提供的Windows下的BIOS设置程序进行BIOS设置,无需再重启进入BIOS设置界面进行相关的设置,省时省力,显著提升了生产效率。
进一步的,参照图3,提出本发明Windows下的BIOS设置方法的第二实施例,基于上述图2所示的实施例,步骤S20之前包括:
步骤S11,基于所述数据结构体变量开辟临时数据缓存区;
步骤S12,向所述Windows系统申请可操作的非托管数据缓存区;
步骤S13,将所述临时数据缓存区从托管数据缓存区封送到所述非托管数据缓存区。
具体实现中,利用UEFI Variable结构体(即所述数据结构体变量)开辟临时数据缓存区,向Windows系统申请可操作的非托管内存块(即所述非托管数据缓存区)用于进行数据存取,将开辟的临时数据缓存区从托管对象封送到非托管内存块。
本实施例中,步骤S40之后包括:
步骤S50,释放所述临时数据缓存区。
可以理解的是,当完成BIOS设置之后,需要将事先开辟的所述临时数据缓存区进行释放,以免产生无效的内存空间,浪费系统内存。
在本实施例中提出了一种Windows下的BIOS设置方法,基于所述数据结构体变量开辟临时数据缓存区;向所述Windows系统申请可操作的非托管数据缓存区;将所述临时数据缓存区从托管数据缓存区封送到所述非托管数据缓存区。本实施例在完成定义和声明后,通过提前向Windows系统申请可操作的内存块用于进行数据存取,以保证能够正常修改BIOS数据,同时,在完成数据的读取和写入之后,即完成BIOS设置之后,通过释放所述临时数据缓存区,避免了无效数据缓存区对系统内存的占用。
此外,本发明实施例还提出一种计算机可读存储介质,所述计算机可读存储介质上存储有Windows下的BIOS设置程序,所述Windows下的BIOS设置程序被处理器执行时实现如下操作:
定义数据结构体变量,定义所述数据结构体变量的描述名称和唯一标识符,向Windows声明接口调用权限;
根据所述数据结构体变量的描述名称和唯一标识符,从预设BIOS数据存储器中获取所述数据结构体变量的结构体数据;
对所述结构体数据进行修改以得到修改后数据;
根据所述数据结构体变量的描述名称和唯一标识符,将所述修改后数据写入所述预设BIOS数据存储器中以完成BIOS设置。
进一步地,所述Windows下的BIOS设置程序被处理器执行时还实现如下操作:
所述从预设BIOS数据存储器中获取所述数据结构体变量的结构体数据的步骤包括:
调用所述Windows系统的获取固件环境变量接口,从预设BIOS数据存储器中获取所述数据结构体变量的结构体数据,并将所述结构体数据存储于所述Windows系统分配的非托管数据缓存区中。
进一步地,所述Windows下的BIOS设置程序被处理器执行时还实现如下操作:
所述将所述结构体数据存储于所述Windows系统分配的非托管内存区域中的步骤之后包括:
将存储于所述非托管内存区域中的所述结构体数据封送到所述Windows系统分配的指定类型的托管数据缓存区中。
进一步地,所述Windows下的BIOS设置程序被处理器执行时还实现如下操作:
所述对所述结构体数据进行修改以得到修改后数据的步骤之前包括:
根据所述数据结构体变量中的成员偏移量,在所述托管数据缓存区中定位到需要修改的成员数据。
进一步地,所述Windows下的BIOS设置程序被处理器执行时还实现如下操作:
所述对所述结构体数据进行修改以得到修改后数据的步骤包括:
根据所述Windows系统的程序输入参数设置,对所述结构体数据进行格式修改并加以封装后,得到所述托管数据缓存区中的修改后数据。
进一步地,所述Windows下的BIOS设置程序被处理器执行时还实现如下操作:
所述将所述修改后数据写入所述预设BIOS数据存储器中以完成BIOS设置的步骤包括:
调用所述Windows系统的设置固件环境变量接口,将所述托管数据缓存区中的修改后数据写入所述预设BIOS数据存储器中以完成BIOS设置。
进一步地,所述Windows下的BIOS设置程序被处理器执行时还实现如下操作:
所述根据所述数据结构体变量的描述名称和唯一标识符,从预设BIOS数据存储器中获取所述数据结构体变量的结构体数据的步骤之前包括:
基于所述数据结构体变量开辟临时数据缓存区;
向所述Windows系统申请可操作的非托管数据缓存区;
将所述临时数据缓存区从托管数据缓存区封送到所述非托管数据缓存区。
进一步地,所述Windows下的BIOS设置程序被处理器执行时还实现如下操作:
所述将所述修改后数据写入所述预设BIOS数据存储器中以完成BIOS设置的步骤之后包括:
释放所述临时数据缓存区。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在如上所述的一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

Claims (8)

1.一种Windows下的BIOS设置方法,其特征在于,所述Windows下的BIOS设置方法应用于Windows系统,包括以下步骤:
定义数据结构体变量,定义所述数据结构体变量的描述名称和唯一标识符,向Windows声明接口调用权限;
基于所述数据结构体变量开辟临时数据缓存区;
向所述Windows系统申请可操作的非托管数据缓存区;
将所述临时数据缓存区从托管数据缓存区封送到所述非托管数据缓存区;
根据所述数据结构体变量的描述名称和唯一标识符,从预设BIOS数据存储器中获取所述数据结构体变量的结构体数据;
对所述结构体数据进行修改以得到修改后数据;
根据所述数据结构体变量的描述名称和唯一标识符,将所述修改后数据写入所述预设BIOS数据存储器中以完成BIOS设置;
释放所述临时数据缓存区。
2.如权利要求1所述的Windows下的BIOS设置方法,其特征在于,所述从预设BIOS数据存储器中获取所述数据结构体变量的结构体数据的步骤包括:
调用所述Windows系统的获取固件环境变量接口,从预设BIOS数据存储器中获取所述数据结构体变量的结构体数据,并将所述结构体数据存储于所述Windows系统分配的非托管数据缓存区中。
3.如权利要求2所述的Windows下的BIOS设置方法,其特征在于,所述将所述结构体数据存储于所述Windows系统分配的非托管内存区域中的步骤之后包括:
将存储于所述非托管内存区域中的所述结构体数据封送到所述Windows系统分配的指定类型的托管数据缓存区中。
4.如权利要求3所述的Windows下的BIOS设置方法,其特征在于,所述对所述结构体数据进行修改以得到修改后数据的步骤之前包括:
根据所述数据结构体变量中的成员偏移量,在所述托管数据缓存区中定位到需要修改的成员数据。
5.如权利要求4所述的Windows下的BIOS设置方法,其特征在于,所述对所述结构体数据进行修改以得到修改后数据的步骤包括:
根据所述Windows系统的程序输入参数设置,对所述结构体数据进行格式修改并加以封装后,得到所述托管数据缓存区中的修改后数据。
6.如权利要求5所述的Windows下的BIOS设置方法,其特征在于,所述将所述修改后数据写入所述预设BIOS数据存储器中以完成BIOS设置的步骤包括:
调用所述Windows系统的设置固件环境变量接口,将所述托管数据缓存区中的修改后数据写入所述预设BIOS数据存储器中以完成BIOS设置。
7.一种Windows下的BIOS设置装置,其特征在于,所述Windows下的BIOS设置装置包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的Windows下的BIOS设置程序,所述Windows下的BIOS设置程序被所述处理器执行时实现如权利要求1至6中任一项所述的Windows下的BIOS设置方法的步骤。
8.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有Windows下的BIOS设置程序,所述Windows下的BIOS设置程序被处理器执行时实现如权利要求1至6中任一项所述的Windows下的BIOS设置方法的步骤。
CN202210089067.1A 2022-01-26 2022-01-26 Windows下的BIOS设置方法、装置及存储介质 Active CN114116035B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210089067.1A CN114116035B (zh) 2022-01-26 2022-01-26 Windows下的BIOS设置方法、装置及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210089067.1A CN114116035B (zh) 2022-01-26 2022-01-26 Windows下的BIOS设置方法、装置及存储介质

Publications (2)

Publication Number Publication Date
CN114116035A CN114116035A (zh) 2022-03-01
CN114116035B true CN114116035B (zh) 2022-05-10

Family

ID=80361655

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210089067.1A Active CN114116035B (zh) 2022-01-26 2022-01-26 Windows下的BIOS设置方法、装置及存储介质

Country Status (1)

Country Link
CN (1) CN114116035B (zh)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103136018A (zh) * 2011-12-05 2013-06-05 联想(北京)有限公司 一种基本输入输出系统bios的设置方法及系统
CN103593250A (zh) * 2013-11-19 2014-02-19 浪潮电子信息产业股份有限公司 一种带外修改BIOS Setup选项的实现方法
CN105824652A (zh) * 2015-01-08 2016-08-03 深圳市祈飞科技有限公司 一种操作系统下直接更改bios设置的方法及系统
CN106406905A (zh) * 2016-10-10 2017-02-15 郑州云海信息技术有限公司 一种用于服务器的bios的setup选项的配置方法及系统

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7698546B2 (en) * 2006-04-27 2010-04-13 Microsoft Corporation BIOS configuration update technique
US10055296B2 (en) * 2015-10-30 2018-08-21 Quanta Computer Inc. System and method for selective BIOS restoration
US10613772B2 (en) * 2017-03-16 2020-04-07 Qualcomm Incorporated Methods and apparatuses for copying a data page in an unmanaged flash memory device
CN110955885B (zh) * 2019-11-28 2022-11-22 亚信科技(成都)有限公司 一种数据写入方法及装置
JP6972202B2 (ja) * 2020-02-14 2021-11-24 株式会社日立製作所 計算機システム及びメモリ管理方法
CN113867747A (zh) * 2020-06-30 2021-12-31 昆达电脑科技(昆山)有限公司 服务器

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103136018A (zh) * 2011-12-05 2013-06-05 联想(北京)有限公司 一种基本输入输出系统bios的设置方法及系统
CN103593250A (zh) * 2013-11-19 2014-02-19 浪潮电子信息产业股份有限公司 一种带外修改BIOS Setup选项的实现方法
CN105824652A (zh) * 2015-01-08 2016-08-03 深圳市祈飞科技有限公司 一种操作系统下直接更改bios设置的方法及系统
CN106406905A (zh) * 2016-10-10 2017-02-15 郑州云海信息技术有限公司 一种用于服务器的bios的setup选项的配置方法及系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
用 Windows Application 访问 UEFI variable;松鼠;《https://zhuanlan.zhi hu.com/p/162081315》;20200721;第1-5页 *

Also Published As

Publication number Publication date
CN114116035A (zh) 2022-03-01

Similar Documents

Publication Publication Date Title
KR101790190B1 (ko) 애플리케이션 시나리오 식별 방법, 전력 소비 관리 방법, 장치 및 단말기 장치
US7698546B2 (en) BIOS configuration update technique
CN110018860B (zh) 工作流管理方法、装置、设备和计算机存储介质
US20140082511A1 (en) Method and system for emulating desktop software applications in a mobile communication network
CN108174255B (zh) 智能电视开机方法、智能电视及计算机可读存储介质
CN112199087A (zh) 一种应用开发环境的配置方法、装置、设备及存储介质
CN108153533B (zh) 制作安装程序的方法和装置、程序的安装方法和装置
CN114116035B (zh) Windows下的BIOS设置方法、装置及存储介质
CN111858383A (zh) 移动app的数据埋点方法、系统、终端设备及存储介质
CN110018918B (zh) 终端异常的修复方法、装置、移动终端及存储介质
CN114579495B (zh) 基于飞腾处理器的通用计算机固件的实现方法
CN108268274B (zh) 应用管理方法、装置、存储介质及电子设备
CN109145598B (zh) 脚本文件的病毒检测方法、装置、终端及存储介质
CN113268275B (zh) 一种基于微内核的硬件设备驱动系统及其驱动方法
CN110727423A (zh) 跨平台开发行动应用程序的方法及其系统
CN112214213B (zh) Linux内核的开发和管理方法、装置、计算机设备和存储介质
CN110336693B (zh) 网络块设备的管理方法、装置、设备和存储介质
CN109032728B (zh) Ui界面显示方法、智能终端及计算机可读存储介质
CN112162743A (zh) 驱动程序生成方法、装置、计算机设备和存储介质
CN109726111B (zh) 测试规则订制方法、设备、装置及计算机可读存储介质
CN110336857B (zh) 网络块设备的创建方法、装置、设备和存储介质
CN113741988A (zh) 驱动调试方法、设备及计算机可读存储介质
CN110502501B (zh) 数据库操作方法、装置、设备和存储介质
CN113835846B (zh) k8s集群的创建方法、装置及计算机可读存储介质
CN115905272B (zh) 索引自动更新方法、索引自动更新装置、设备及介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant