iSCSI主机总线适配器的初始化装置和方法

文档序号:6586162阅读:131来源:国知局
专利名称:iSCSI主机总线适配器的初始化装置和方法
技术领域
本发明涉及一种主机总线适配器设备,尤其涉及iSCSI主机总线适配器的初始化 装置和方法。
背景技术
SCSI (互联网小型计算机系统接 口,Small Computer System Interface overhternet) HBA (主机总线适配器,Host Bus Adapter)是一种具有RISC (精简指令系统 计算结构,Reduced Instruction Set Computing)处理器的智能设备,该设备可以根据具 体的需求动态加载初始化所需的固件(Firmware)文件。而Firmware文件一般只会以文件 形式保存在硬盘上。在Windows系统启动阶段,各个驱动的加载顺序是先加载SCSI (小型计算机系 统接口,Small Computer System hterface)适配器类型的驱动,然后再加载文件系统。 而iSCSI HBA属于SCSI适配器,因此就会比文件系统先加载。这样的话以文件形式存在的 Firmware就无法被iSCSI HBA加载,由于Firmware文件中实现了 iSCSI协议处理功能,如 果iSCSI HBA在初时化时没有成功加载Firmware文件,则不具有iSCSI协议处理功能,从 而造成功能缺失,无法正常工作。

发明内容
本发明的目的旨在至少解决现有技术中的上述问题之一。为此,本发明的实施例提出一种iSCSI HBA初始化装置和方法,以保证iSCSI HBA 初始化的顺利进行。根据本发明的一个方面,本发明实施例提出了一种iSCSI主机总线适配器的初始 化方法,包括以下步骤在一操作系统(Operation System,OS)的注册表中创建一子项;将 iSCSI主机总线适配器初始化所需的一固件文件保存到所述注册表的子项中;以及在所述 操作系统启动并加载所述iSCSI主机总线适配器驱动时,从所述注册表的子项中读取所述 固件文件以进行所述iSCSI主机总线适配器的初始化。根据本发明进一步的实施例,所述固件文件以二进制形式保存到所述注册表的子 项中。根据本发明进一步的实施例,在操作系统启动并加载iSCSI主机总线适配器驱动 时,还包括判断是否能够以文件形式加载所述固件文件的步骤,其中若能够则以文件形式 加载所述固件文件;若不能够则从所述注册表的子项中读取所述固件文件进行加载。根据本发明进一步的实施例,所述注册表子项的创建包括在操作系统启动完毕 后加载iSCSI主机总线适配器驱动时,打开iSCSI主机总线适配器初始化所需的固件文件 并读入缓存中;判断注册表预定位置是否存在所述注册表的子项;以及若不存在,则创建 所述注册表的子项以写入缓存中的所述固件文件。根据本发明的另一方面,本发明的实施例提出一种iSCSI主机总线适配器的初始
3化装置,包括创建模块,所述创建模块在操作系统的注册表中创建一子项;保存模块,所 述保存模块将iSCSI主机总线适配器初始化所需的一固件文件保存到所述注册表的子项 中;以及第一加载模块,所述第一加载模块在操作系统启动并加载所述iSCSI主机总线适 配器驱动时,从所述注册表的子项中读取所述固件文件以进行所述iSCSI主机总线适配器 的初始化。根据本发明进一步的实施例,所述保存模块以二进制形式将所述固件文件保存到 所述注册表的子项中。根据本发明进一步的实施例,还包括判断模块,所述判断模块在操作系统启动并 加载iSCSI主机总线适配器驱动时,判断所述固件文件是否能够以文件形式加载;以及第 二加载模块,所述第二加载模块用于以文件形式加载所述固件文件。根据本发明进一步的实施例,所述创建模块包括文件读入单元,所述文件读入单 元在操作系统启动完毕后加载iSCSI主机总线适配器驱动时,打开iSCSI主机总线适配器 初始化所需的固件文件并读入缓存中;判断单元,所述判断单元用于判断注册表预定位置 是否存在所述注册表的子项;以及创建单元,所述创建单元根据所述判断单元的判断创建 所述注册表的子项。本发明利用注册表的某些子项先于iSCSI HBA加载的特点,把固件文件提前保 存在注册表某些子项中。本方法利用注册表的特性,对于需要动态加载固件文件的iSCSI HBA,实现了在Windows操作系统启动阶段顺利加载固件文件,具有普遍的适用性,摆脱了 文件系统在启动阶段加载较晚的限制。本发明附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变 得明显,或通过本发明的实践了解到。


图1为本发明iSCSI主机总线适配器的初始化方法的总体流程图;图2为本发明一个实施例的iSCSI主机总线适配器的初始化方法流程图;图3为本发明实施例的iSCSI主机总线适配器的初始化装置结构方框图。
具体实施例方式下面结合附图和具体实施例对本发明技术方案进行详细的描述,以更进一步了解 本发明的目的、方案及功效,但并非作为本发明所附权利要求保护范围的限制。现在参考图1,该图显示了本发明iSCSI主机总线适配器(HBA)的初始化方法的总 体流程图。首先,在操作系统的注册表中创建一子项(步骤102)。例如,在HKEY_L0CAL_ MACHINE\SYSTEM\CurrentControlSet\Control对应的注册表分支下新建一个子项,该子项 先于iSCSI HBA加载。这里,创建的子项位置是操作系统启动过程中可以被识别到得的,即 操作系统能够看得到对应位置的注册表内容。然后,将iSCSI HBA初始化所需的固件(Firmware)文件的内容保存到该注册表的 子项中(步骤104),这里,固件文件的内容以二进制形式被保存。在操作系统启动并加载iSCSI主机总线适配器驱动时,从上述注册表子项中读取对应的固件文件,从而进行iSCSI HBA的初始化(步骤106)。下面,将结合图2的具体实施例,对本发明的iSCSI主机总线适配器的初始化方法 进行详细说明。图2给出了 iSCSI HBA设备在初始化过程中所需固件文件的创建和加载的详细步 骤,其中固件文件的创建是在操作系统启动完毕后执行,对应步骤206到步骤214 ;加载是 在系统启动过程中执行,对应步骤216到步骤220。如图2所示,操作系统在加载或安装iSCSI HBA驱动过程中(步骤202),首先尝试 加载固件文件,即判断能否打开固件文件(步骤204)。在操作系统启动过程中文件形式保 存的固件文件是无法打开的,因此此时的iSCSI HBA初始化操作系统不会加载上固件文件。在操作系统启动完毕之后,系统打开对应的固件文件并读入缓存中(步骤206)。 对iSCSI HBA第一次加载驱动时,首先判断约定的位置是否存在特定的子项(步骤208)。 即,注册表中是否存在先于iSCSI HBA加载的固件文件二进制内容。若没有,在可先于iSCSI HBA加载的注册表分支下创建新的子项(步骤210)。然 后把固件文件从缓存中写入到创建的注册表子项中(步骤21幻。然后,执行iSCSI HBA的 初始化。若步骤208判断存在预定的注册表子项位置不为空,则执行iSCSI HBA的初始化。因此,在操作系统启动时加载iSCSI HBA驱动,则步骤204会判断不能够打开固件 文件。因此,前进到步骤216,进一步判断注册表预定子项及内容是否为空(步骤216)。若 通过上述步骤已经将iSCSI HBA初始化所需的加载固件文件内容保存到创建的注册表子 项,则从注册表子项总读取二进制的固件文件内容并加载,来进行iSCSI HBA的初始化。若为空,则表示iSCSI HBA的初始化失败(步骤220)。在一个实施例中,在操作系统启动并加载iSCSI HBA驱动时,还可以进一步判断是 否能够以文件形式加载所需固件文件。因为当DisableXEnable iSCSIHBA时也会调用驱动 相同的接口,若是DisableXEnable,就会以文件方式加载固件文件;若不能,则从注册表保 存好的子项读取固件文件的内容来进行iSCSIHBA的初始化。图3给出了本发明实施例的iSCSI HBA的初始化装置,该装置包括创建模块12、保 存模块14和第一加载模块18。创建模块12在操作系统的注册表中创建先于iSCSI主机总线适配器22加载的子 项,例如,在 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlkt\Control 对应的注册表分 支下新建一个子项。这里,创建的子项位置是操作系统启动过程中可以被识别到得的,即操 作系统能够看得到对应位置的注册表内容。保存模块14将iSCSI主机总线适配器22初始化所需的固件文件保存到创建模块 12创建的注册表子项中,其中固件文件的内容以二进制形式被保存。第一加载模块18则在 操作系统启动并加载iSCSI主机总线适配器22的驱动时,从上述注册表子项中读取对应的 固件文件,以进行iSCSI主机总线适配器22的初始化。具体地,创建模块12包括文件读入单元(图中未显示)、判断单元(图中未显示) 以及创建单元(图中未显示)。其中文件读入单元在操作系统启动完毕后加载iSCSI主机 总线适配器驱动时,打开iSCSI主机总线适配器初始化所需的固件文件并读入缓存中,判 断单元用于判断注册表预定位置是否存在注册表子项,创建单元则根据判断单元的判断创建所述注册表子项,若不存在注册表子项,则进行创建。在创建单元创建新的注册表子项后,保存模块14则从缓存中将对应的固件文件 写入到注册表子项中。在一个实施例中,初始化装置还可以包括判断模块16和第二加载模块20。判断模 块16用于在操作系统启动并加载iSCSI主机总线适配器驱动时,判断所需的固件文件是否 能够以文件形式加载。例如,若是DisableXEnable,就能够以文件方式加载固件文件。在 判断能够加载,第二加载模块20则以文件形式加载所述固件文件;否则,则由第一加载模 块18从注册表保存好的子项中读取固件文件的内容进行加载,从而完成iSCSI HBA的初始 化。针对现有技术固件文件以文件形式保存的方式无法适应例如Windows系统启动 MgiSCSI HBA初始化加载的问题,本发明利用注册表的某些子项先于iSCSI HBA加载的 特点,把固件文件提前保存在注册表某些子项中。本方法利用注册表的特性,对于需要动态 加载固件文件的iSCSI HBA,实现了在Windows系统启动阶段顺利加载固件文件,从而实现 iSCSI HBA的正常工作。本发明具有普遍的适用性,摆脱了文件系统在启动阶段加载较晚的 限制。当然,本发明还可有其它多种实施例,在不背离本发明精神及其实质的情况下,熟 悉本领域的技术人员当可根据本发明作出各种相应的改变和变形,但这些相应的改变和变 形都应属于本发明所附的权利要求的保护范围。
权利要求
1.一种iSCSI主机总线适配器的初始化方法,其特征在于,包括以下步骤 在一操作系统的注册表中创建一子项;将iSCSI主机总线适配器初始化所需的一固件文件保存到所述注册表的子项中;以及 在所述操作系统启动并加载所述iSCSI主机总线适配器驱动时,从所述注册表的子项 中读取所述固件文件以进行所述iSCSI主机总线适配器的初始化。
2.如权利要求1所述的初始化方法,其特征在于,所述固件文件以二进制形式保存到 所述注册表的子项中。
3.如权利要求1所述的初始化方法,其特征在于,在操作系统启动并加载iSCSI主机总 线适配器驱动时,还包括判断是否能够以文件形式加载所述固件文件的步骤,其中若能够则以文件形式加载所述固件文件; 若不能够则从所述注册表的子项中读取所述固件文件进行加载。
4.如权利要求1所述的初始化方法,其特征在于,所述注册表子项的创建包括 在操作系统启动完毕后加载iSCSI主机总线适配器驱动时,打开iSCSI主机总线适配器初始化所需的固件文件并读入缓存中;判断注册表预定位置是否存在所述注册表的子项;以及若不存在,则创建所述注册表的子项以写入缓存中的所述固件文件。
5. 一种iSCSI主机总线适配器的初始化装置,其特征在于,包括 创建模块,所述创建模块在一操作系统的注册表中创建一子项;保存模块,所述保存模块将iSCSI主机总线适配器初始化所需的一固件文件保存到所 述注册表的子项中;以及第一加载模块,所述第一加载模块在所述操作系统启动并加载所述iSCSI主机总线适 配器驱动时,从所述注册表的子项中读取所述固件文件以进行所述iSCSI主机总线适配器 的初始化。
6.如权利要求5所述的初始化装置,其特征在于,所述保存模块以二进制形式将所述 固件文件保存到所述注册表的子项中。
7.如权利要求5所述的初始化装置,其特征在于,还包括判断模块,所述判断模块在操作系统启动并加载iSCSI主机总线适配器驱动时,判断 所述固件文件是否能够以文件形式加载;以及第二加载模块,所述第二加载模块用于以文件形式加载所述固件文件。
8.如权利要求5所述的初始化装置,其特征在于,所述创建模块包括文件读入单元,所述文件读入单元在操作系统启动完毕后加载iSCSI主机总线适配器 驱动时,打开iSCSI主机总线适配器初始化所需的固件文件并读入缓存中;判断单元,所述判断单元用于判断注册表预定位置是否存在所述注册表的子项;以及 创建单元,所述创建单元根据所述判断单元的判断创建所述注册表的子项。
9.如权利要求8所述的初始化装置,其特征在于,所述保存模块从缓存中将所述固件 文件写入到所述注册表的子项中。
全文摘要
本发明公开了一种iSCSI主机总线适配器的初始化方法及其装置,包括创建模块,在一操作系统(OS)的注册表中创建一子项;保存模块,将iSCSI主机总线适配器初始化所需的一固件文件保存到所述注册表的子项中;以及第一加载模块,在操作系统启动并加载所述iSCSI主机总线适配器驱动时,从所述注册表的子项中读取所述固件文件以进行所述iSCSI主机总线适配器的初始化。本发明能够实现操作系统启动阶段iSCSI主机总线适配器初始化的顺利进行。
文档编号G06F9/445GK102081530SQ20091025332
公开日2011年6月1日 申请日期2009年11月30日 优先权日2009年11月30日
发明者王云松, 王辉, 陈玄同 申请人:英业达股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1