一种基于uefi驱动方式获取计算机硬件信息的方法

文档序号:9200298阅读:451来源:国知局
一种基于uefi驱动方式获取计算机硬件信息的方法
【技术领域】
[0001]本发明涉及计算机固件开发技术领域,特别涉及一种基于UEFI驱动方式获取计算机硬件信息的方法。
【背景技术】
[0002]UEFKUnified Extensible Firmware Interface,统一可扩展固件接口)是 Intel公司提出的一种新型计算机B1S架构,提供了在固件层设备驱动的灵活加载方式以及向上层操作系统内核提供接口的扩展能力。UEFI运行时驱动允许软驱动的方式获取计算机自检信息与设备相关信息,并将信息传递给操作系统内核。
[0003]当前UEFI B1S为上层操作系统提供了极少的硬件监测功能,多数硬件监测功能的实现需要借助于操作系统内核加载驱动的方式。特别是对于计算机的自检信息以及一些特殊的设备的相关信息的检测来说,使用操作系统内核加载驱动的方式无法完全实现功會K。
[0004]综上所述,目前的硬件监控软件多数基于操作系统加载驱动的方式,缺乏便捷性、完整性与可移植性。在固件层定制计算机系统硬件监测软件接口尚无实质性研宄。

【发明内容】

[0005]为了解决现有技术的问题,本发明提供了一种基于UEFI驱动方式获取计算机硬件信息的方法,其能够实现在固件层获取计算机硬件信息,并向上层操作系统提供软件编程接口的功能,解决当前技术下计算机硬件信息获取不完整,可移植性差的问题。
[0006]本发明所采用的技术方案如下:
一种基于UEFI驱动方式获取计算机硬件信息的方法,包括以下步骤:
A、在UEFI/PI标准下,修改信息传递模块结构体,增加数据结构以存储多种硬件信息;
B、建立预EFI初始化模块以及PPI接口进行前述信息传递模块结构体信息的获取及写入,并通过初始化程序加载器将信息传递模块结构体传递给驱动执行环境;
C、在驱动执行环境中建立UEFI运行时驱动、驱动相关协议以及硬件设备信息结构体;
D、前述UEFI运行时驱动通过相关协议调取硬件设备信息,存入前述硬件设备信息结构体中;
E、采用C语言建立UEFI运行时驱动与操作系统接口,供操作系统上层调用。
[0007]步骤A中,修改信息传递模块结构体的具体过程如下:
Al、添加CPU信息结构体,包括CPU名称、CPU型号、CPU主频、CPU架构;
A2、添加内存信息结构体,包括内存型号、内存类型、内存厂商、内存容量;
A3、添加上电时序信号信息结构体,负责记录各上电时序信号工作状态。
[0008]步骤C中所述的驱动相关协议包括:启动驱动,停止驱动,读取SCSI设备信息,读取USB设备信息,读取显卡信息,读取串口信息,存储信息。
[0009]步骤D中UEFI运行时驱动需要与设备驱动进行通信,运行时驱动内相关设备获取协议与设备驱动相关协议进行通信,并由存储信息协议存入预定义的设备信息结构体中。
[0010]本发明提供的技术方案带来的有益效果是:
本发明实现了计算机硬件信息在固件层的获取并为操作系统提供了可编程软件接口,使硬件监控软件摆了对操作系统加载驱动方式的依赖。同时,向开发者提供了更完整的硬件信息接口与良好的代码移植性。
【附图说明】
[0011]为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0012]图1为本发明的方法流程图。
[0013]图2为本发明的方法中修改信息传递模块结构体的方法流程图。
[0014]图中,HOB (Hand-off Block,信息传递模块);PEIM (Pre-EFI Initializat1nModule,预 EFI 初始化模块);IPL(Initial Program Load,初始化程序加载器);DXE(DriverExecute Environment,驱动执行环境)。
【具体实施方式】
[0015]为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
[0016]实施例一
如图1所示,本发明实施例的方法步骤如下:
S1:在UEFI/PI标准下,修改信息传递模块结构体,增加数据结构以存储多种硬件信息,详见图2:
511:添加CPU信息结构体,包括CPU名称、CPU型号、CPU主频、CPU架构等CPU属性信息;
512:添加内存信息结构体,包括内存型号、内存类型、内存厂商、内存容量等内存属性信息;
513:添加上电时序信号信息结构体,负责记录各上电时序信号工作状态。
[0017]S2:建立预EFI初始化模块以及PPI接口进行前述信息传递模块结构体信息的获取及写入,并通过初始化程序加载器将信息传递模块结构体传递给驱动执行环境。
[0018]S3:在驱动执行环境中建立UEFI运行时驱动、驱动相关协议以及硬件设备信息结构体。
[0019]S4:前述UEFI运行时驱动通过相关协议调取硬件设备信息,存入前述硬件设备信息结构体中。
[0020]S5:采用C语言建立UEFI运行时驱动与操作系统接口,供操作系统上层调用。
[0021]以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
【主权项】
1.一种基于UEFI驱动方式获取计算机硬件信息的方法,包括以下步骤: A、在UEFI/PI标准下,修改信息传递模块结构体,增加数据结构以存储多种硬件信息; B、建立预EFI初始化模块以及PPI接口进行前述信息传递模块结构体信息的获取及写入,并通过初始化程序加载器将信息传递模块结构体传递给驱动执行环境; C、在驱动执行环境中建立UEFI运行时驱动、驱动相关协议以及硬件设备信息结构体; D、前述UEFI运行时驱动通过相关协议调取硬件设备信息,存入前述硬件设备信息结构体中; E、采用C语言建立UEFI运行时驱动与操作系统接口,供操作系统上层调用。2.根据权利要求1所述的一种基于UEFI驱动方式获取计算机硬件信息的方法,其特征在于,所述的步骤A中,修改信息传递模块结构体的具体过程如下: Al、添加CPU信息结构体,包括CPU名称、CPU型号、CPU主频、CPU架构; A2、添加内存信息结构体,包括内存型号、内存类型、内存厂商、内存容量; A3、添加上电时序信号信息结构体,负责记录各上电时序信号工作状态。3.根据权利要求1所述的一种基于UEFI驱动方式获取计算机硬件信息的方法,其特征在于,步骤C中所述的驱动相关协议包括:启动驱动,停止驱动,读取SCSI设备信息,读取USB设备信息,读取显卡信息,读取串口信息,存储信息。4.根据权利要求1所述的一种基于UEFI驱动方式获取计算机硬件信息的方法,其特征在于,步骤D中UEFI运行时驱动需要与设备驱动进行通信,运行时驱动内相关设备获取协议与设备驱动相关协议进行通信,并由存储信息协议存入预定义的设备信息结构体中。
【专利摘要】本发明涉及计算机固件开发技术领域,特别涉及一种基于UEFI驱动方式获取计算机硬件信息的方法。本发明提供了供操作系统对硬件自检信息及设备状态信息进行监测的接口,其在固件层获取计算机硬件信息,并向上层操作系统提供软件编程接口的功能,解决当前技术下计算机硬件信息获取不完整,可移植性差的问题。
【IPC分类】G06F11/30
【公开号】CN104915280
【申请号】CN201510298158
【发明人】郝鹏, 金长新, 刘强
【申请人】浪潮集团有限公司
【公开日】2015年9月16日
【申请日】2015年6月3日
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1