EFI Shell环境下防止SSD异常掉电的方法和装置.pdf
《EFI Shell环境下防止SSD异常掉电的方法和装置.pdf》由会员分享,可在线阅读,更多相关《EFI Shell环境下防止SSD异常掉电的方法和装置.pdf(15页完成版)》请在专利查询网上搜索。
1、(19)中华人民共和国国家知识产权局 (12)发明专利申请 (10)申请公布号 (43)申请公布日 (21)申请号 202011040102.8 (22)申请日 2020.09.28 (71)申请人 深圳忆联信息系统有限公司 地址 518067 广东省深圳市南山区蛇口街 道蛇口后海大道东角头厂房D24/F-02 (72)发明人 沈荣娟韩道静孙成昆吴娴 (74)专利代理机构 深圳市精英专利事务所 44242 代理人 李莹 (51)Int.Cl. G06F 9/4401(2018.01) G06F 11/14(2006.01) G11C 7/24(2006.01) (54)发明名称 EFI She。
2、ll环境下防止SSD异常掉电的方法 和装置 (57)摘要 本申请涉及一种EFI Shell环境下防止SSD 异常掉电的方法、 装置、 计算机设备及存储介质, 其中该方法包括: 搭建EDK2开发环境, 在所述开 发环境下通过运行EFI程序执行以下步骤; 进行 NVMe的初始化, 找到NVMe设备的节点地址; 通过 AllocateZeroPool函数分配相应的缓存用于存 放NVMe节点指针; 通过LocateHandle函数获取特 定全局唯一标识符对应的NVMe节点指针; 通过 OpenProtocol函数获取NVMe的PassThru指针, 所 述PassThru指针是用于发送NVMe命令的节。
3、点指 针; 按照NVMe协议规定的格式封装好刷新指令, 并将所述刷新指令发送到固态硬盘以实现刷新 操作。 本发明可有效防止SSD异常掉电, 进而保证 了数据的安全性。 权利要求书2页 说明书7页 附图5页 CN 112148377 A 2020.12.29 CN 112148377 A 1.一种EFI Shell环境下防止SSD异常掉电的方法, 其特征在于, 所述方法包括: 搭建EDK2开发环境, 在所述开发环境下通过运行EFI程序执行以下步骤; 进行NVMe的初始化, 找到NVMe设备的节点地址; 通过AllocateZeroPool函数分配相应的缓存用于存放NVMe节点指针; 通过Loca。
4、teHandle函数获取特定全局唯一标识符对应的NVMe节点指针; 通过OpenProtocol函数获取NVMe的PassThru指针, 所述PassThru指针是用于发送NVMe 命令的节点指针; 按照NVMe协议规定的格式封装好刷新指令, 并将所述刷新指令发送到固态硬盘以实现 刷新操作。 2.根据权利要求1所述的EFI Shell环境下防止SSD异常掉电的方法, 其特征在于, 在所 述按照NVMe协议规定的格式封装好刷新指令, 并将所述刷新指令发送到固态硬盘以实现刷 新操作的步骤之后还包括: 通过gPassThru指针定位到PciIo指针; 读取控制器配置寄存器, 并将shutdown n。
5、otification位置成1; 发送写指令到所述控制器配置寄存器, 并通过读取控制器状态寄存器, 待shutdown notification状态变成完成即表示固态硬盘正常掉电完成。 3.根据权利要求2所述的EFI Shell环境下防止SSD异常掉电的方法, 其特征在于, 在所 述进行NVMe的初始化, 找到NVMe设备的节点地址的步骤之后还包括: 通过LocateHandle函数查找是否存在特定全局唯一标识符对应的NVMe设备节点; 若存在则根据查找到的NVMe设备节点的个数分配相应的缓存存放NVMe设备节点指针。 4.根据权利要求1-3任一项所述的EFI Shell环境下防止SSD异常掉。
6、电的方法, 其特征 在于, 所述特定全局唯一标识符为gEfiNvmExpressPassThruProtocolGuid。 5.一种EFI Shell环境下防止SSD异常掉电的装置, 其特征在于, 所述装置包括: 环境搭建模块, 所述环境搭建模块用于搭建EDK2开发环境, 在所述开发环境下通过运 行EFI程序执行以下步骤; 初始化模块, 所述初始化模块用于进行NVMe的初始化, 找到NVMe设备的节点地址; 分配模块, 所述分配模块用于通过AllocateZeroPool函数分配相应的缓存用于存放 NVMe节点指针; 获取模块, 所述获取模块用于通过LocateHandle函数获取特定全局唯一。
7、标识符对应的 NVMe节点指针; 通过OpenProtocol函数获取NVMe的PassThru指针, 所述PassThru指针是用 于发送NVMe命令的节点指针; 封装发送模块, 所述封装发送模块用于按照NVMe协议规定的格式封装好刷新指令, 并 将所述刷新指令发送到固态硬盘以实现刷新操作。 6.根据权利要求5所述的EFI Shell环境下防止SSD异常掉电的装置, 其特征在于, 所述 装置还包括正常掉电模块, 所述正常掉电模块用于: 通过gPassThru指针定位到PciIo指针; 读取控制器配置寄存器, 并将shutdown notification位置成1; 发送写指令到所述控制器配置。
8、寄存器, 并通过读取控制器状态寄存器, 待shutdown notification状态变成完成即表示固态硬盘正常掉电完成。 权利要求书 1/2 页 2 CN 112148377 A 2 7.根据权利要求6所述的EFI Shell环境下防止SSD异常掉电的装置, 其特征在于, 所述 初始化模块还用于: 通过LocateHandle函数查找是否存在特定全局唯一标识符对应的NVMe设备节点; 若存在则根据查找到的NVMe设备节点的个数分配相应的缓存存放NVMe设备节点指针。 8.根据权利要求5-7任一项所述的EFI Shell环境下防止SSD异常掉电的装置, 其特征 在于, 所述特定全局唯一标识符。
9、为gEfiNvmExpressPassThruProtocolGuid。 9.一种计算机设备, 包括存储器、 处理器及存储在存储器上并可在处理器上运行的计 算机程序, 其特征在于, 所述处理器执行所述计算机程序时实现权利要求1至4中任一项所 述方法的步骤。 10.一种计算机可读存储介质, 其上存储有计算机程序, 其特征在于, 所述计算机程序 被处理器执行时实现权利要求1至4中任一项所述的方法的步骤。 权利要求书 2/2 页 3 CN 112148377 A 3 EFI Shell环境下防止SSD异常掉电的方法和装置 技术领域 0001 本发明涉及固态硬盘技术领域, 特别是涉及一种EFI She。
10、ll环境下防止SSD异常掉 电的方法、 装置、 计算机设备及存储介质。 背景技术 0002 BIOS(Basic Input Output System)即基本输入输出系统, 它提供了系统加电自 检、 引导装入、 主要I/O设备的处理程序以及低层硬件和操作系统间的接口控制等功能模块 来处理所有的系统中断。 有时, BIOS会有一些bug或需要支持其他硬件驱动, 所有更新BIOS 是常有的事情。 0003 目前, 在传统技术中, 更新BIOS有多种方式, 其中一种是在EFI(Extensible Firmware Interface, 可扩展固件接口)Shell环境下进行BIOS的升级。 通过特。
11、定的EFI指令 将新的BIOS程序下载到指定的硬件中去, 然后将系统掉电, 重新加载新的BIOS程序, 但这个 过程可能会对SSD造成异常掉电, 有些缓存数据还没来得及刷到闪存颗粒中, 进而会对固态 硬盘造成一定的损害。 发明内容 0004 基于此, 有必要针对上述技术问题, 提供一种EFI Shell环境下防止SSD异常掉电 的方法、 装置、 计算机设备及存储介质。 0005 一种EFI Shell环境下防止SSD异常掉电的方法, 所述方法包括: 0006 搭建EDK2开发环境, 在所述开发环境下通过运行EFI程序执行以下步骤; 0007 进行NVMe的初始化, 找到NVMe设备的节点地址;。
12、 0008 通过AllocateZeroPool函数分配相应的缓存用于存放NVMe节点指针; 0009 通过LocateHandle函数获取特定全局唯一标识符对应的NVMe节点指针; 0010 通过OpenProtocol函数获取NVMe的PassThru指针, 所述PassThru指针是用于发送 NVMe命令的节点指针; 0011 按照NVMe协议规定的格式封装好刷新指令, 并将所述刷新指令发送到固态硬盘以 实现刷新操作。 0012 在其中一个实施例中, 在所述按照NVMe协议规定的格式封装好刷新指令, 并将所 述刷新指令发送到固态硬盘以实现刷新操作的步骤之后还包括: 0013 通过gPas。
13、sThru指针定位到PciIo指针; 0014 读取控制器配置寄存器, 并将shutdown notification位置成1; 0015 发送写指令到所述控制器配置寄存器, 并通过读取控制器状态寄存器, 待 shutdown notification状态变成完成即表示固态硬盘正常掉电完成。 0016 在其中一个实施例中, 在所述进行NVMe的初始化, 找到NVMe设备的节点地址的步 骤之后还包括: 0017 通过LocateHandle函数查找是否存在特定全局唯一标识符对应的NVMe设备节点; 说明书 1/7 页 4 CN 112148377 A 4 0018 若存在则根据查找到的NVMe设。
14、备节点的个数分配相应的缓存存放NVMe设备节点 指针。 0019 在其中一个实施例中, 所述特定全局唯一标识符为gEfiNvmExpressPassThruPro tocolGuid。 0020 一种EFI Shell环境下防止SSD异常掉电的装置, 所述装置包括: 0021 环境搭建模块, 所述环境搭建模块用于搭建EDK2开发环境, 在所述开发环境下通 过运行EFI程序执行以下步骤; 0022 初始化模块, 所述初始化模块用于进行NVMe的初始化, 找到NVMe设备的节点地址; 0023 分配模块, 所述分配模块用于通过AllocateZeroPool函数分配相应的缓存用于存 放NVMe节点。
15、指针; 0024 获取模块, 所述获取模块用于通过LocateHandle函数获取特定全局唯一标识符对 应的NVMe节点指针; 通过OpenProtocol函数获取NVMe的PassThru指针, 所述PassThru指针 是用于发送NVMe命令的节点指针; 0025 封装发送模块, 所述封装发送模块用于按照NVMe协议规定的格式封装好刷新指 令, 并将所述刷新指令发送到固态硬盘以实现刷新操作。 0026 在其中一个实施例中, 所述装置还包括正常掉电模块, 所述正常掉电模块用于: 0027 通过gPassThru指针定位到PciIo指针; 0028 读取控制器配置寄存器, 并将shutdown。
16、 notification位置成1; 0029 发送写指令到所述控制器配置寄存器, 并通过读取控制器状态寄存器, 待 shutdown notification状态变成完成即表示固态硬盘正常掉电完成。 0030 在其中一个实施例中, 所述初始化模块还用于: 0031 通过LocateHandle函数查找是否存在特定全局唯一标识符对应的NVMe设备节点; 0032 若存在则根据查找到的NVMe设备节点的个数分配相应的缓存存放NVMe设备节点 指针。 0033 在其中一个实施例中, 所述特定全局唯一标识符为gEfiNvmExpressPassThruPro tocolGuid。 0034 一种计算。
17、机设备, 包括存储器、 处理器及存储在存储器上并可在处理器上运行的 计算机程序, 所述处理器执行所述计算机程序时实现上述任意一项方法的步骤。 0035 一种计算机可读存储介质, 其上存储有计算机程序, 所述计算机程序被处理器执 行时实现上述任意一项方法的步骤。 0036 上述EFI Shell环境下防止SSD异常掉电的方法、 装置、 计算机设备及存储介质通 过搭建EDK2开发环境, 在所述开发环境下通过运行EFI程序执行以下步骤; 进行NVMe的初始 化, 找到NVMe设备的节点地址; 通过AllocateZeroPool函数分配相应的缓存用于存放NVMe 节点指针; 通过LocateHand。
18、le函数获取特定全局唯一标识符对应的NVMe节点指针; 通过 OpenProtocol函数获取NVMe的PassThru指针, 所述PassThru指针是用于发送NVMe命令的节 点指针; 按照NVMe协议规定的格式封装好刷新指令, 并将所述刷新指令发送到固态硬盘以 实现刷新操作。 本发明通过EFI应用程序来实现刷新及正常关机命令, 从而将异常掉电转换 为正常掉电。 通过该方法可有效防止SSD异常掉电, 进而保证了数据的安全性。 说明书 2/7 页 5 CN 112148377 A 5 附图说明 0037 图1为一个实施例中EFI Shell环境下防止SSD异常掉电的方法的流程示意图; 003。
19、8 图2为一个实施例中EDK2环境搭建的流程示意图; 0039 图3为另一个实施例中EFI Shell环境下防止SSD异常掉电的方法的流程示意图; 0040 图4为再一个实施例中EFI Shell环境下防止SSD异常掉电的方法的流程示意图; 0041 图5为一个实施例中通过软件实现刷新及正常关机的流程示意图; 0042 图6为一个实施例中EFI Shell环境下防止SSD异常掉电的装置的结构框图; 0043 图7为另一个实施例中EFI Shell环境下防止SSD异常掉电的装置的结构框图; 0044 图8为一个实施例中计算机设备的内部结构图。 具体实施方式 0045 为了使本申请的目的、 技术方。
20、案及优点更加清楚明白, 以下结合附图及实施例, 对 本申请进行进一步详细说明。 应当理解, 此处所描述的具体实施例仅仅用以解释本申请, 并 不用于限定本申请。 0046 目前, 在传统技术中, 更新BIOS有多种方式, 其中一种是在EFI(Extensible Firmware Interface, 可扩展固件接口)Shell环境下进行BIOS的升级。 通过特定的EFI指令 将新的BIOS程序下载到指定的硬件中去, 然后将系统掉电, 重新加载新的BIOS程序, 但这个 过程可能会对SSD造成异常掉电, 有些缓存数据还没来得及刷到闪存颗粒中, 进而会对固态 硬盘造成一定的损害。 0047 基于此。
21、, 本发明提供了一种EFI Shell环境下防止SSD异常掉电的方法, 通过设计 一个在EFI应用程序来实现刷新及正常关机命令, 从而将异常掉电转换为正常掉电。 该方法 可有效防止SSD异常掉电, 保证了数据的安全性。 0048 在一个实施例中, 如图1所示, 提供了一种EFI Shell环境下防止SSD异常掉电的方 法, 该方法包括: 0049 步骤102, 搭建EDK2开发环境, 在所述开发环境下通过运行EFI程序执行以下步骤; 0050 步骤104, 进行NVMe的初始化, 找到NVMe设备的节点地址; 0051 步骤106, 通过AllocateZeroPool函数分配相应的缓存用于存。
22、放NVMe节点指针; 0052 步骤108, 通过LocateHandle函数获取特定全局唯一标识符对应的NVMe节点指针; 0053 步骤110, 通过OpenProtocol函数获取NVMe的PassThru指针, 所述PassThru指针是 用于发送NVMe命令的节点指针; 0054 步骤112, 按照NVMe协议规定的格式封装好刷新指令, 并将所述刷新指令发送到固 态硬盘以实现刷新操作。 0055 EFI是Extensible Firmware Interface的缩写, 是介于平台固件和操作系统之间 的一层软件接口及其详细规格说明文档。 EFI是Intel在1998年开始的一个项目演。
23、变而来, 而在2005年Intel将EFI 1.10开源并交由Unified EFI开源社区去维护和开发, Intel自己 的EFI也就不单独做了, 都和开源社区共用一个。 现在也通常用EFI来代指UEFI, 二者不再有 意区分。 EFI Shell是EFI提供的一个交互式的命令行Shell环境, 在这里你可以执行一些 efi应用程序, 加载efi设备驱动程序, 以及引导操作系统, 从引导菜单项中选择” efi shell” , 回车, 待出现” shell” 提示符时即表明你已进入efi shell环境中。 说明书 3/7 页 6 CN 112148377 A 6 0056 开发EFI程序需。
24、要先搭建EDK2开发环境, 具体的搭建过程可参考图2所示, 包括如 下步骤: 0057 首先, 下载开源代码开发包以及编译需要用到的软件, 软件系统可以是Windows7/ 8/8.1/10。 其中, edk2-master.zip为EDK II源文件树形结构代码; edk2-BaseTools-win32 为EDK II预编译基础工具; Python27为从源代码中运行Python工具; Nasm为编译工具; ASL 为编译工具。 0058 接着, 建立工程目录与安装软件。 建立工程目录C:edk2; 安装Nasm, 位置C:NASM; 设置环境变量set NASM_PREFIXc:NASM。
25、; 安装python, 位置C:Python27; 设置环境变 量; edk2-BaseTools-win32-master重命名为Win32, 复制到目录: :edk2BaseToolsBin Win32; 设置环境变量set EDK_TOOLS_PATHC:edk2BaseTools; 安装iasl, 位置C:ASL, 确保该目录下有 “isal.exe” (拷贝 “isal.exe” 到C:ASL); edk2-master重命名为edk2, 拷贝 到C:edk2中。 0059 最后, 进行编译代码, 本方案中可使用windows 10 64位系统, 根据工具对应表, 需 要下载VS20。
26、15X86环境。 C:edk2BaseToolstoolsetup.bat Rebuild编译工具重新建立关 系; C:edk2edksetup初始化编译环境; 修改配置文件C:edk2Conftarget.txt; 命令 builda X64-p MdeModulePkg/MdeModulePkg.dsc编译标准模块MdeModulePkg; C:edk2 BuildMdeModuleDEBUG_VS2015x86X64*.efi编译生成的文件目录; demo程序。 在 MdeModulePkg模块中编译生成很多efi文件, 找到HelloWord.efi, 拷贝到模拟器中运行, 也 可以拷。
27、贝到Shell环境中运行。 0060 在EDK2开发环境搭建完毕之后, 通过运行EFI程序执行以下步骤, 包括: 首先, 进行 NVMe的初始化, 找到NVMe设备的节点地址。 然后, 通过AllocateZeroPool函数分配相应的缓 存用于存放NVMe节点指针; 通过LocateHandle函数获取特定全局唯一标识符对应的NVMe节 点指针; 0061 具体地, 该特定全局唯一标识符为gEfiNvmExpressPassThruProtocolGuid。 通过 AllocateZeroPool函数分配相应的缓存存放nvme节点指针。 然后再次通过LocateHandle函 数获取GUID。
28、全局唯一标识符为gEfiNvmExpressPassThruProtocolGuid的设备节点指针。 在 通过OpenProtocol函数获取NVMe的PassThru指针, 该指针是发送NVMe命令的节点指针。 随 后按照NVMe协议规定的格式封装好FLUSH指令, 通过passthru函数发送到SSD, 即可实现 FLUSH操作。 0062 在本实施例中, 通过搭建EDK2开发环境, 在所述开发环境下通过运行EFI程序执行 以下步骤; 进行NVMe的初始化, 找到NVMe设备的节点地址; 通过AllocateZeroPool函数分配 相应的缓存用于存放NVMe节点指针; 通过LocateH。
29、andle函数获取特定全局唯一标识符对应 的NVMe节点指针; 通过OpenProtocol函数获取NVMe的PassThru指针, 所述PassThru指针是 用于发送NVMe命令的节点指针; 按照NVMe协议规定的格式封装好刷新指令, 并将所述刷新 指令发送到固态硬盘以实现刷新操作。 本方案通过EFI应用程序来实现刷新及正常关机命 令, 从而将异常掉电转换为正常掉电。 通过该方法可有效防止SSD异常掉电, 进而保证了数 据的安全性。 0063 在一个实施例中, 如图3所示, 提供了一种EFI Shell环境下防止SSD异常掉电的方 法, 该方法在按照NVMe协议规定的格式封装好刷新指令, 。
30、并将所述刷新指令发送到固态硬 说明书 4/7 页 7 CN 112148377 A 7 盘以实现刷新操作的步骤之后还包括: 0064 步骤302, 通过gPassThru指针定位到PciIo指针; 0065 步骤304, 读取控制器配置寄存器, 并将shutdown notification位置成1; 0066 步骤306, 发送写指令到所述控制器配置寄存器, 并通过读取控制器状态寄存器, 待shutdown notification状态变成完成即表示固态硬盘正常掉电完成。 0067 在本实施例中, 控制SSD正常掉电是通过nvme寄存器操作的。 具体地, 首先, 通过 gPassThru指针。
31、定位到PciIo指针, 然后通过mem read指定读取nvme CC(controller configuration控制器配置)寄存器, 再将其中的shutdown notification位置成1, 通过mem write发送写指令到CC寄存器。 最后通过读取CTST(controller status控制器状态)寄存 器, 等待shutdown状态变成完成, 即表示SSD正常掉电完成。 通过EFI应用程序来实现刷新及 正常关机命令, 从而将异常掉电转换为正常掉电, 避免了对固态硬盘造成的损害, 同时还保 证了数据的安全性。 0068 在一个实施例中, 如图4所示, 提供了一种EFI S。
32、hell环境下防止SSD异常掉电的方 法, 该方法在进行NVMe的初始化, 找到NVMe设备的节点地址的步骤之后还包括: 0069 步骤402, 通过LocateHandle函数查找是否存在特定全局唯一标识符对应的NVMe 设备节点; 0070 步骤404, 若存在则根据查找到的NVMe设备节点的个数分配相应的缓存存放NVMe 设备节点指针。 0071 具体地, 在本实施例中提供了一个完整地通过软件来实现刷新及正常关机, 可参 考图5所示, 具体的实现步骤包括: 0072 首先, 进行NVMe的初始化, 找到NVMe设备节点地址。 通过LocateHandle函数查找是 否存在GUID(Glo。
33、bally Unique Identifier全局唯一标识符)为gEfiNvmExpressPassThru ProtocolGuid的nvme设备节点, 通过倒数第二个参数节点个数返回, 如果节点个数大于1, 则表示存在NVMe节点。 接下来通过AllocateZeroPool函数分配相应的buffer存放nvme节点 指针。 然后再次通过LocateHandle函数获取GUID为gEfiNvmExpressPassThruProtocolGuid 的设备节点指针。 在通过OpenProtocol函数获取NVMe的PassThru指针, 该指针是发送nvme 命令的节点指针。 随后按照NVM。
34、e协议规定的格式封装好FLUSH指令, 通过passthru函数发送 到SSD, 即可实现FLUSH操作。 0073 控制SSD正常掉电是通过NVMe寄存器操作的。 首先, 通过gPassThru指针定位到 PciIo指针, 然后通过mem read指定读取NVMe CC寄存器, 再将其中的shutdown notification位置成1, 通过mem write发送写指令到CC寄存器。 最后通过读取CTST寄存器, 等待shutdown状态变成完成, 即表示SSD正常掉电完成。 0074 应该理解的是, 虽然图1-5的流程图中的各个步骤按照箭头的指示依次显示, 但是 这些步骤并不是必然按照。
35、箭头指示的顺序依次执行。 除非本文中有明确的说明, 这些步骤 的执行并没有严格的顺序限制, 这些步骤可以以其它的顺序执行。 而且, 图1-5中的至少一 部分步骤可以包括多个子步骤或者多个阶段, 这些子步骤或者阶段并不必然是在同一时刻 执行完成, 而是可以在不同的时刻执行, 这些子步骤或者阶段的执行顺序也不必然是依次 进行, 而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地 执行。 说明书 5/7 页 8 CN 112148377 A 8 0075 在一个实施例中, 如图6所示, 提供了一种EFI Shell环境下防止SSD异常掉电的装 置600, 该装置包括: 0076。
36、 环境搭建模块601, 所述环境搭建模块用于搭建EDK2开发环境, 在所述开发环境下 通过运行EFI程序执行以下步骤; 0077 初始化模块602, 所述初始化模块用于进行NVMe的初始化, 找到NVMe设备的节点地 址; 0078 分配模块603, 所述分配模块用于通过AllocateZeroPool函数分配相应的缓存用 于存放NVMe节点指针; 0079 获取模块604, 所述获取模块用于通过LocateHandle函数获取特定全局唯一标识 符对应的NVMe节点指针; 通过OpenProtocol函数获取NVMe的PassThru指针, 所述PassThru 指针是用于发送NVMe命令的节。
37、点指针; 0080 封装发送模块605, 所述封装发送模块用于按照NVMe协议规定的格式封装好刷新 指令, 并将所述刷新指令发送到固态硬盘以实现刷新操作。 0081 在一个实施例中, 如图7所示, 提供了一种EFI Shell环境下防止SSD异常掉电的装 置600, 该装置还包括正常掉电模块606, 用于: 0082 通过gPassThru指针定位到PciIo指针; 0083 读取控制器配置寄存器, 并将shutdown notification位置成1; 0084 发送写指令到所述控制器配置寄存器, 并通过读取控制器状态寄存器, 待 shutdown notification状态变成完成即表。
38、示固态硬盘正常掉电完成。 0085 在一个实施例中, 初始化模块601还用于: 0086 通过LocateHandle函数查找是否存在特定全局唯一标识符对应的NVMe设备节点; 0087 若存在则根据查找到的NVMe设备节点的个数分配相应的缓存存放NVMe设备节点 指针。 0088 在其中一个实施例中, 所述特定全局唯一标识符为gEfiNvmExpressPassThruPro tocolGuid。 0089 关于EFI Shell环境下防止SSD异常掉电的装置的具体限定可以参见上文中对于 EFI Shell环境下防止SSD异常掉电的方法的限定, 在此不再赘述。 0090 在一个实施例中, 提。
39、供了一种计算机设备, 其内部结构图可以如图8所示。 该计算 机设备包括通过装置总线连接的处理器、 存储器以及网络接口。 其中, 该计算机设备的处理 器用于提供计算和控制能力。 该计算机设备的存储器包括非易失性存储介质、 内存储器。 该 非易失性存储介质存储有操作装置、 计算机程序和数据库。 该内存储器为非易失性存储介 质中的操作装置和计算机程序的运行提供环境。 该计算机设备的网络接口用于与外部的终 端通过网络连接通信。 该计算机程序被处理器执行时以实现一种EFI Shell环境下防止SSD 异常掉电的方法。 0091 本领域技术人员可以理解, 图8中示出的结构, 仅仅是与本申请方案相关的部分结。
40、 构的框图, 并不构成对本申请方案所应用于其上的计算机设备的限定, 具体的计算机设备 可以包括比图中所示更多或更少的部件, 或者组合某些部件, 或者具有不同的部件布置。 0092 在一个实施例中, 提供了一种计算机设备, 包括存储器、 处理器及存储在存储器上 并可在处理器上运行的计算机程序, 处理器执行计算机程序时实现以上各个方法实施例中 说明书 6/7 页 9 CN 112148377 A 9 的步骤。 0093 在一个实施例中, 提供了一种计算机可读存储介质, 其上存储有计算机程序, 计算 机程序被处理器执行时实现以上各个方法实施例中的步骤。 0094 本领域普通技术人员可以理解实现上述实。
41、施例方法中的全部或部分流程, 是可以 通过计算机程序来指令相关的硬件来完成, 所述的计算机程序可存储于一非易失性计算机 可读取存储介质中, 该计算机程序在执行时, 可包括如上述各方法的实施例的流程。 其中, 本申请所提供的各实施例中所使用的对存储器、 存储、 数据库或其它介质的任何引用, 均可 包括非易失性和/或易失性存储器。 非易失性存储器可包括只读存储器(ROM)、 可编程ROM (PROM)、 电可编程ROM(EPROM)、 电可擦除可编程ROM(EEPROM)或闪存。 易失性存储器可包括 随机存取存储器(RAM)或者外部高速缓冲存储器。 作为说明而非局限, RAM以多种形式可得, 诸如。
42、静态RAM(SRAM)、 动态RAM(DRAM)、 同步DRAM(SDRAM)、 双数据率SDRAM(DDRSDRAM)、 增强 型SDRAM(ESDRAM)、 同步链路(Synchlink)DRAM(SLDRAM)、 存储器总线(Rambus)直接RAM (RDRAM)、 直接存储器总线动态RAM(DRDRAM)、 以及存储器总线动态RAM(RDRAM)等。 0095 以上实施例的各技术特征可以进行任意的组合, 为使描述简洁, 未对上述实施例 中的各个技术特征所有可能的组合都进行描述, 然而, 只要这些技术特征的组合不存在矛 盾, 都应当认为是本说明书记载的范围。 0096 以上所述实施例仅。
43、表达了本申请的几种实施方式, 其描述较为具体和详细, 但并 不能因此而理解为对发明专利范围的限制。 应当指出的是, 对于本领域的普通技术人员来 说, 在不脱离本申请构思的前提下, 还可以做出若干变形和改进, 这些都属于本申请的保护 范围。 因此, 本申请专利的保护范围应以所附权利要求为准。 说明书 7/7 页 10 CN 112148377 A 10 图1 图2 说明书附图 1/5 页 11 CN 112148377 A 11 图3 图4 说明书附图 2/5 页 12 CN 112148377 A 12 图5 说明书附图 3/5 页 13 CN 112148377 A 13 图6 图7 说明书附图 4/5 页 14 CN 112148377 A 14 图8 说明书附图 5/5 页 15 CN 112148377 A 15 。
- 内容关键字: EFI Shell环境下防止SSD异常掉电的方法和装置 Shell 环境 防止 SSD 异常 掉电 方法 装置
链接地址:https://www.zhuanlichaxun.net/pdf/10121018.html