專利名稱:一種利用undi實(shí)現(xiàn)網(wǎng)絡(luò)通信的方法
技術(shù)領(lǐng)域:
本發(fā)明涉及計算機(jī)系統(tǒng)維護(hù)技術(shù)領(lǐng)域,具體說是一種利用UNDI (Universal Network Driver hterface,通用網(wǎng)絡(luò)驅(qū)動接口)實(shí)現(xiàn)網(wǎng)絡(luò)通信的方法。主要用來為工作 在無操作系統(tǒng)環(huán)境下的遠(yuǎn)程維護(hù)軟件提供通用可靠的網(wǎng)絡(luò)通信服務(wù)。
背景技術(shù):
計算機(jī)遠(yuǎn)程維護(hù)的一種重要場景是在計算機(jī)開機(jī)啟動進(jìn)入操作系統(tǒng)引導(dǎo)之前,對 計算機(jī)進(jìn)行遠(yuǎn)程維護(hù),比如殺毒、修復(fù)受損文件、安裝新的操作系統(tǒng)等。在硬件沒有故障的 前提下,遠(yuǎn)程維護(hù)的通信基礎(chǔ)是一個能夠控制網(wǎng)卡的網(wǎng)卡驅(qū)動程序。
由于此場景沒有操作系統(tǒng),無法使用操作系統(tǒng)中的網(wǎng)卡驅(qū)動程序。因此需要一種 可以工作在操作系統(tǒng)環(huán)境之外的網(wǎng)卡驅(qū)動程序。
由于各網(wǎng)卡廠家都支持美國htel公司開發(fā)的PXE O^rebooteXecution Environment,預(yù)啟動執(zhí)行環(huán)境)規(guī)范,所以網(wǎng)卡廠家在提供網(wǎng)卡硬件的同時會配套提供支 持PXE規(guī)范的網(wǎng)卡Option ROM,以下將支持PXE規(guī)范的網(wǎng)卡Option ROM,簡稱為PXE ROM。
PXE ROM符合BIOS擴(kuò)展ROM規(guī)范,是BIOS擴(kuò)展ROM的一個種類,所述BIOS擴(kuò)展 ROM是指保存在只讀存儲芯片中的軟件,這種只讀存儲芯片安裝在計算機(jī)擴(kuò)展卡或系統(tǒng) 主板上。依據(jù)PXE規(guī)范,在PXEROM中包含一個支持UNDI接口的網(wǎng)卡驅(qū)動模塊,以下簡稱 UNDI驅(qū)動。PXE ROM將UNDI驅(qū)動作為網(wǎng)卡驅(qū)動使用。但由于UNDI驅(qū)動是PXE ROM的一部 分,所以其它軟件無法在不運(yùn)行PXE ROM的情況下直接使用UNDI驅(qū)動。發(fā)明內(nèi)容
針對現(xiàn)有技術(shù)中存在的缺陷,本發(fā)明的目的在于提供一種利用UNDI實(shí)現(xiàn)網(wǎng)絡(luò)通 信的方法,直接利用PXE ROM中的UNDI驅(qū)動實(shí)現(xiàn)網(wǎng)絡(luò)通信,為遠(yuǎn)程維護(hù)軟件提供網(wǎng)絡(luò)通信 服務(wù),可以在不需要完整運(yùn)行PXE ROM的情況下直接使用UNDI驅(qū)動,即在PXE ROM完成UNDI 驅(qū)動的加載后,中止PXE ROM的運(yùn)行。
為達(dá)到以上目的,本發(fā)明采取的技術(shù)方案是
一種利用UNDI實(shí)現(xiàn)網(wǎng)絡(luò)通信的方法,其特征在于,包括以下步驟
步驟1、將專用BIOS擴(kuò)展ROM刷入存儲芯片內(nèi);
所述專用BIOS擴(kuò)展ROM符合BIOS規(guī)范中關(guān)于BIOS擴(kuò)展ROM的標(biāo)準(zhǔn),且該專用 BIOS擴(kuò)展ROM中包含一個支持UNDI接口的功能模塊,該功能模塊包括兩個部分初始化子 程序、中斷鉤子子程序;
步驟2、計算機(jī)開機(jī)引導(dǎo),BIOS自動掃描BIOS擴(kuò)展ROM,并自動加載被掃描到的 BIOS擴(kuò)展ROM中的初始化子程序,當(dāng)專用BIOS擴(kuò)展ROM被掃描到時,該專用BIOS擴(kuò)展ROM 的初始化子程序被加載,專用BIOS擴(kuò)展ROM的初始化子程序修改中斷向量表,替換PXE ROM 的DHCP模塊會調(diào)用的某一個系統(tǒng)中斷服務(wù)程序的入口地址為專用BIOS擴(kuò)展ROM的中斷鉤 子子程序的地址,初始化子程序完成上述步驟后退出,控制權(quán)交回BIOS ;
步驟3、BIOS在完成自動掃描BIOS擴(kuò)展ROM過程后,按順序加載可引導(dǎo)設(shè)備;當(dāng) 加載帶有PXE ROM的網(wǎng)卡時,PXE ROM從BIOS獲得控制權(quán),PXE ROM執(zhí)行引導(dǎo)操作時,依據(jù) PXE規(guī)范完成UNDI驅(qū)動的功能接口的準(zhǔn)備工作;
步驟4、PXE ROM繼續(xù)運(yùn)行,接著調(diào)用DHCP模塊,DHCP模塊在執(zhí)行過程中調(diào)用中斷 鉤子子程序;
步驟5、中斷鉤子子程序被調(diào)用獲得控制權(quán)后,中止PXE ROM繼續(xù)運(yùn)行,將控制權(quán) 交回BIOS ;完成上述步驟后,UNDI驅(qū)動已經(jīng)駐留內(nèi)存,只需要按照UNDI接口規(guī)范調(diào)用UNDI 提供的API,即可進(jìn)行網(wǎng)絡(luò)通信。
在上述技術(shù)方案的基礎(chǔ)上,所述存儲芯片為BI0S芯片,或采用PCI總線的外置卡 的Option ROM芯片,或采用PCI-E總線的外置卡的Option ROM芯片。
在上述技術(shù)方案的基礎(chǔ)上,步驟4的具體調(diào)用過程為DHCP模塊在執(zhí)行過程中調(diào) 用一些系統(tǒng)中斷服務(wù)程序,當(dāng)調(diào)用到入口地址已經(jīng)被替換成中斷鉤子子程序的地址的系統(tǒng) 中斷服務(wù)程序的入口地址時,中斷鉤子子程序被DHCP模塊調(diào)用。
在上述技術(shù)方案的基礎(chǔ)上,專用BIOS擴(kuò)展ROM的初始化子程序修改中斷向量表, 替換PXE ROM的DHCP模塊會調(diào)用的編號為0x15或OxlA的系統(tǒng)中斷服務(wù)程序的入口地址 為專用BIOS擴(kuò)展ROM的中斷鉤子子程序的地址。
本發(fā)明所述的利用UNDI實(shí)現(xiàn)網(wǎng)絡(luò)通信的方法,直接利用PXE ROM中的UNDI驅(qū)動 實(shí)現(xiàn)網(wǎng)絡(luò)通信,為遠(yuǎn)程維護(hù)軟件提供網(wǎng)絡(luò)通信服務(wù),可以在不需要完整運(yùn)行PXE ROM的情況 下直接使用UNDI驅(qū)動,即在PXE ROM完成UNDI驅(qū)動的加載后,中止PXE ROM的運(yùn)行。
本發(fā)明有如下附圖
圖1本發(fā)明所述方法的流程圖。
具體實(shí)施方式
以下結(jié)合附圖對本發(fā)明作進(jìn)一步詳細(xì)說明。
本發(fā)明中,凡是未寫明為芯片的,都是指軟件范疇概念,凡是寫明芯片的,都是指 硬件范疇概念。例如0ption ROM是指軟件范疇概念,即Option ROM軟件;而Option ROM 芯片是指硬件范疇概念。
專用BIOS擴(kuò)展ROM有兩種載體,一種是刷入BIOS芯片中,另一種刷入采用PCI總 線或采用PCI-E總線的外置卡的Option ROM芯片中。
圖1為本發(fā)明所述的利用UNDI實(shí)現(xiàn)網(wǎng)絡(luò)通信的方法的流程圖,包括以下步驟
步驟1、將專用BIOS擴(kuò)展ROM刷入存儲芯片內(nèi);
所述存儲芯片為BI0S芯片,或采用PCI總線的外置卡的OptionROM芯片,或采用 PCI-E總線的外置卡的Option ROM芯片;
所述專用BIOS擴(kuò)展ROM符合BIOS規(guī)范中關(guān)于BIOS擴(kuò)展ROM的標(biāo)準(zhǔn),且該專用 BIOS擴(kuò)展ROM中包含一個支持UNDI接口的功能模塊,該功能模塊包括兩個部分初始化子 程序、中斷鉤子子程序;
步驟2、計算機(jī)開機(jī)引導(dǎo),BIOS自動掃描BIOS擴(kuò)展ROM,并自動加載被掃描到的BIOS擴(kuò)展ROM中的初始化子程序,當(dāng)專用BIOS擴(kuò)展ROM被掃描到時,該專用BIOS擴(kuò)展ROM 的初始化子程序被加載,專用BIOS擴(kuò)展ROM的初始化子程序修改中斷向量表,替換PXE ROM 的DHCP模塊會調(diào)用的某一個系統(tǒng)中斷服務(wù)程序的入口地址為專用BIOS擴(kuò)展ROM的中斷鉤 子子程序的地址,初始化子程序完成上述步驟后退出,控制權(quán)交回BIOS ;
DHCP模塊會調(diào)用多個系統(tǒng)中斷服務(wù),專用BIOS擴(kuò)展ROM的初始化子程序只需要替 換任意一個DHCP模塊會調(diào)用的系統(tǒng)中斷服務(wù)程序的入口地址就可以獲得控制權(quán),例如將 編號為0x15或OxlA的系統(tǒng)中斷服務(wù)程序的入口地址改為專用BIOS擴(kuò)展ROM的中斷鉤子 子程序的地址,初始化子程序完成上述步驟后退出,控制權(quán)交回BIOS ;
步驟3、BI0S在完成自動掃描BIOS擴(kuò)展ROM過程后,按順序加載可引導(dǎo)設(shè)備,帶有 PXE ROM的網(wǎng)卡也屬于可引導(dǎo)設(shè)備;當(dāng)加載帶有PXE ROM的網(wǎng)卡時,PXE ROM從BIOS獲得控 制權(quán),PXE ROM執(zhí)行引導(dǎo)操作時,依據(jù)PXE規(guī)范完成UNDI驅(qū)動的功能接口的準(zhǔn)備工作;
步驟4、PXE ROM 繼續(xù)運(yùn)行,接著調(diào)用 DHCP (Dynamic HostConfiguration I^otocol,動態(tài)主機(jī)設(shè)置協(xié)議)模塊,DHCP模塊在執(zhí)行過程中調(diào)用中斷鉤子子程序;
DHCP模塊在執(zhí)行過程中會調(diào)用一些系統(tǒng)中斷服務(wù)程序,由于在步驟2中DHCP模塊 會調(diào)用的某一個系統(tǒng)中斷服務(wù)程序的入口地址已經(jīng)被替換成中斷鉤子子程序的地址,所以 當(dāng)被替換的系統(tǒng)中斷服務(wù)程序被調(diào)用時實(shí)際被調(diào)用的是中斷鉤子子程序;例如DHCP模塊 在執(zhí)行過程中調(diào)用編號為0x15和OxlA的系統(tǒng)中斷服務(wù)程序,由于在步驟2中編號為0x15 或OxlA的系統(tǒng)中斷服務(wù)程序的入口地址已經(jīng)被替換成中斷鉤子子程序的地址,所以被實(shí) 際調(diào)用的是中斷鉤子子程序;
步驟5、中斷鉤子子程序被調(diào)用獲得控制權(quán)后,中止PXE ROM繼續(xù)運(yùn)行,將控制權(quán) 交回BIOS ;
完成上述步驟后,UNDI驅(qū)動已經(jīng)駐留內(nèi)存,只需要按照UNDI接口規(guī)范調(diào)用UNDI提 供的API,即可進(jìn)行網(wǎng)絡(luò)通信。
采用本發(fā)明提供的方法,可以在沒有操作系統(tǒng)的環(huán)境下,直接利用UNDI驅(qū)動使用 網(wǎng)絡(luò),避免了為各種網(wǎng)卡硬件單獨(dú)編寫驅(qū)動的麻煩。為運(yùn)行在無操作系統(tǒng)環(huán)境下的遠(yuǎn)程維 護(hù)軟件提供了通用可靠的網(wǎng)絡(luò)通信服務(wù)。
下面以保存在PCI總線網(wǎng)卡的Option ROM中為例說明其實(shí)現(xiàn)步驟。本發(fā)明所述利 用UNDI實(shí)現(xiàn)網(wǎng)絡(luò)通信的方法,提供專用BIOS擴(kuò)展ROM。專用BIOS擴(kuò)展ROM符合BIOS規(guī)范 中關(guān)于BIOS擴(kuò)展ROM的標(biāo)準(zhǔn),且專用BIOS擴(kuò)展ROM包含一個支持UNDI接口的功能模塊, 該模塊包括兩個部分初始化子程序和中斷鉤子子程序。計算機(jī)網(wǎng)卡提供配套的支持PXE 規(guī)范的網(wǎng)卡Option ROM,將網(wǎng)卡Option ROM簡稱為PXE ROM。
其具體步驟為
步驟1、提供專用BIOS擴(kuò)展ROM。專用BIOS擴(kuò)展ROM符合BIOS規(guī)范中關(guān)于BIOS 擴(kuò)展ROM的標(biāo)準(zhǔn),且專用BIOS擴(kuò)展ROM包含一個支持UNDI接口的功能模塊,該模塊包括 兩個部分初始化子程序和中斷鉤子子程序;將專用BIOS擴(kuò)展ROM刷入PCI總線網(wǎng)卡的 OptionROM中,將包含專用BIOS擴(kuò)展ROM的PCI總線網(wǎng)卡的Option ROM簡稱為專用BIOS 擴(kuò)展ROM ;
步驟2、計算機(jī)開機(jī)引導(dǎo),BIOS會自動掃描BIOS擴(kuò)展ROM (這是計算機(jī)現(xiàn)有標(biāo)準(zhǔn)中 規(guī)定的,BIOS掃描,Option ROM是被掃描的對象),并對掃描到的BIOS擴(kuò)展ROM進(jìn)行初始化。當(dāng)專用BIOS擴(kuò)展ROM被掃描到,BIOS對專用BIOS擴(kuò)展ROM進(jìn)行初始化,專用BIOS擴(kuò) 展ROM的初始化子程序被調(diào)用,初始化子程序會修改中斷向量表,替換PXE ROM的DHCP模 塊會調(diào)用的某一個系統(tǒng)中斷服務(wù)程序的入口地址(DHCP模塊會調(diào)用多個系統(tǒng)中斷服務(wù),我 們只需要替換任意一個就可以獲得控制權(quán))改為專用BIOS擴(kuò)展ROM的中斷鉤子子程序的 地址。初始化子程序完成上述步驟后退出,控制權(quán)交回BIOS ;
步驟3、BIOS在完成掃描過程后,會按順序加載可引導(dǎo)設(shè)備,帶有PXE ROM的網(wǎng)卡 也屬于引導(dǎo)設(shè)備。當(dāng)PXE ROM從BIOS獲得控制權(quán),執(zhí)行引導(dǎo)操作時,會依據(jù)PXE規(guī)范完成 UNDI驅(qū)動的功能接口的準(zhǔn)備工作;
步驟4、PXE ROM繼續(xù)運(yùn)行,接著調(diào)用DHCP模塊,DHCP模塊在執(zhí)行過程中會調(diào)用一 些系統(tǒng)中斷服務(wù)程序進(jìn)行初始化,由于在步驟2中DHCP模塊會調(diào)用的某一個系統(tǒng)中斷服務(wù) 程序的入口地址已經(jīng)被替換成中斷鉤子子程序的地址,所以當(dāng)被替換的系統(tǒng)中斷服務(wù)程序 被調(diào)用時實(shí)際被調(diào)用的是中斷鉤子子程序;
步驟5、中斷鉤子子程序被調(diào)用獲得控制權(quán)后,中止PXE ROM繼續(xù)運(yùn)行,將控制權(quán) 交回BIOS。完成上述步驟后,UNDI驅(qū)動已經(jīng)駐留內(nèi)存,只需要按照UNDI接口規(guī)范調(diào)用UNDI 提供的API,即可進(jìn)行網(wǎng)絡(luò)通信。
在具體實(shí)施時,其軟硬件環(huán)境可能如下
計算機(jī)的主板內(nèi)置網(wǎng)卡,配有PXE R0M,因為主板內(nèi)置網(wǎng)卡一般不再單獨(dú)提供 Option ROM的存儲芯片。所以PXE ROM被保存在主板的BIOS芯片中。如果主板沒有內(nèi)置 網(wǎng)卡,也可以單獨(dú)配套一個PCI總線的網(wǎng)卡或PCI-E總線的網(wǎng)卡,但該網(wǎng)卡必須配套有PXE ROM,存儲在網(wǎng)卡的ROM芯片中。
我們單獨(dú)提供一片PCI總線的網(wǎng)卡,在網(wǎng)卡的ROM芯片中刷入我們的專用BIOS擴(kuò) 展 R0M,
這樣相當(dāng)于計算機(jī)有兩塊網(wǎng)卡,一塊網(wǎng)卡配PXE ROM, 一塊是我們的PCI總線網(wǎng) 卡,配專用BIOS擴(kuò)展ROM。
計算機(jī)進(jìn)行網(wǎng)絡(luò)通信時,使用的是配有PXE ROM的網(wǎng)卡。
我們的專用BIOS擴(kuò)展ROM不一定要刷入網(wǎng)卡的Option ROM中,只要是符合PCI 規(guī)范的卡,且支持Option ROM規(guī)范,都可以刷入我們的專用BIOS擴(kuò)展R0M,但一般使用網(wǎng)卡 比較方便。
因此最終的產(chǎn)品可分為兩種一種是使用的網(wǎng)卡+專用BIOS擴(kuò)展R0M,另一種使 用的是專用PCI設(shè)備+專用BIOS擴(kuò)展R0M,專用PCI設(shè)備的設(shè)備類型不是網(wǎng)卡,而是新的設(shè)備類型。
權(quán)利要求
1.一種利用UNDI實(shí)現(xiàn)網(wǎng)絡(luò)通信的方法,其特征在于,包括以下步驟步驟1、將專用BIOS擴(kuò)展ROM刷入存儲芯片內(nèi);所述專用BIOS擴(kuò)展ROM符合BIOS規(guī)范中關(guān)于BIOS擴(kuò)展ROM的標(biāo)準(zhǔn),且該專用BIOS 擴(kuò)展ROM中包含一個支持UNDI接口的功能模塊,該功能模塊包括兩個部分初始化子程序、 中斷鉤子子程序;步驟2、計算機(jī)開機(jī)引導(dǎo),BIOS自動掃描BIOS擴(kuò)展ROM,并自動加載被掃描到的BIOS 擴(kuò)展ROM中的初始化子程序,當(dāng)專用BIOS擴(kuò)展ROM被掃描到時,該專用BIOS擴(kuò)展ROM的初 始化子程序被加載,專用BIOS擴(kuò)展ROM的初始化子程序修改中斷向量表,替換PXE ROM的 DHCP模塊會調(diào)用的某一個系統(tǒng)中斷服務(wù)程序的入口地址為專用BIOS擴(kuò)展ROM的中斷鉤子 子程序的地址,初始化子程序完成上述步驟后退出,控制權(quán)交回BIOS ;步驟3、BI0S在完成自動掃描BIOS擴(kuò)展ROM過程后,按順序加載可引導(dǎo)設(shè)備;當(dāng)加載帶 有PXE ROM的網(wǎng)卡時,PXE ROM從BIOS獲得控制權(quán),PXE ROM執(zhí)行引導(dǎo)操作時,依據(jù)PXE規(guī) 范完成UNDI驅(qū)動的功能接口的準(zhǔn)備工作;步驟4、PXE ROM繼續(xù)運(yùn)行,接著調(diào)用DHCP模塊,DHCP模塊在執(zhí)行過程中調(diào)用中斷鉤子 子程序;步驟5、中斷鉤子子程序被調(diào)用獲得控制權(quán)后,中止PXE ROM繼續(xù)運(yùn)行,將控制權(quán)交回 BIOS ;完成上述步驟后,UNDI驅(qū)動已經(jīng)駐留內(nèi)存,只需要按照UNDI接口規(guī)范調(diào)用UNDI提供 的API,即可進(jìn)行網(wǎng)絡(luò)通信。
2.如權(quán)利要求1所述的利用UNDI實(shí)現(xiàn)網(wǎng)絡(luò)通信的方法,其特征在于,所述存儲芯片 為BI0S芯片,或采用PCI總線的外置卡的OptionROM芯片,或采用PCI-E總線的外置卡的 Option ROM 芯片。
3.如權(quán)利要求1或2所述的利用UNDI實(shí)現(xiàn)網(wǎng)絡(luò)通信的方法,其特征在于,步驟4的具 體調(diào)用過程為DHCP模塊在執(zhí)行過程中調(diào)用一些系統(tǒng)中斷服務(wù)程序,當(dāng)調(diào)用到入口地址已 經(jīng)被替換成中斷鉤子子程序的地址的系統(tǒng)中斷服務(wù)程序的入口地址時,中斷鉤子子程序被 DHCP模塊調(diào)用。
4.如權(quán)利要求1或2所述的利用UNDI實(shí)現(xiàn)網(wǎng)絡(luò)通信的方法,其特征在于專用BIOS擴(kuò) 展ROM的初始化子程序修改中斷向量表,替換PXE ROM的DHCP模塊會調(diào)用的編號為0x15 或OxlA的系統(tǒng)中斷服務(wù)程序的入口地址為專用BIOS擴(kuò)展ROM的中斷鉤子子程序的地址。
全文摘要
本發(fā)明涉及一種利用UNDI實(shí)現(xiàn)網(wǎng)絡(luò)通信的方法,先將專用BIOS擴(kuò)展ROM刷入存儲芯片內(nèi);該專用BIOS擴(kuò)展ROM中包含一個支持UNDI接口的功能模塊,該功能模塊包括兩個部分初始化子程序、中斷鉤子子程序;當(dāng)BIOS自動加載初始化子程序時,初始化子程序替換DHCP模塊會調(diào)用的某一個系統(tǒng)中斷服務(wù)程序的入口地址為中斷鉤子子程序的地址;中斷鉤子子程序用于UNDI驅(qū)動駐留內(nèi)存后,中止PXE ROM繼續(xù)運(yùn)行。本發(fā)明所述的利用UNDI實(shí)現(xiàn)網(wǎng)絡(luò)通信的方法,直接利用PXE ROM中的UNDI驅(qū)動實(shí)現(xiàn)網(wǎng)絡(luò)通信,為遠(yuǎn)程維護(hù)軟件提供網(wǎng)絡(luò)通信服務(wù),可以在不需要完整運(yùn)行PXE ROM的情況下直接使用UNDI驅(qū)動,即在PXE ROM完成UNDI驅(qū)動的加載后,中止PXE ROM的運(yùn)行。
文檔編號G06F9/445GK102033763SQ20101055999
公開日2011年4月27日 申請日期2010年11月26日 優(yōu)先權(quán)日2010年11月26日
發(fā)明者劉奇, 曾麗星 申請人:武漢噢易科技有限公司