專利名稱:在usb網(wǎng)卡設(shè)備上自動(dòng)運(yùn)行cdrom功能的方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種自動(dòng)運(yùn)行CDROM功能的方法,特別是涉及一種在USB 網(wǎng)卡設(shè)備上自動(dòng)運(yùn)行CDROM功能的方法。
背景技術(shù):
當(dāng)前很多的無線網(wǎng)卡都是PCI (外設(shè)組件互連標(biāo)準(zhǔn),Peripheral Component Interconnection)或者是PCMCIA(個(gè)人電腦內(nèi)存卡國際協(xié)會(huì),PC Memory International Association)接口的,這主要是為了適應(yīng)很多臺(tái)式 機(jī)和筆記本的應(yīng)用。但是很多手持設(shè)備,如智能手機(jī)和PDA等,由于設(shè)備體 積空間限制,沒有辦法采用PCMCIA或PCI這樣的復(fù)雜接口。
網(wǎng)卡需要安裝驅(qū)動(dòng),普通的做法是給客戶提供光盤。盡管現(xiàn)在計(jì)算機(jī)己 經(jīng)很普及,但是對(duì)于普通用戶來說,網(wǎng)卡驅(qū)動(dòng)的安裝和配置并不是件容易的 事情。基于這樣的考慮,人性化的自動(dòng)安裝對(duì)于普通用戶來說將是一個(gè)很大 的吸引點(diǎn)。
發(fā)明內(nèi)容
本發(fā)明要解決的技術(shù)問題是為了克服現(xiàn)有技術(shù)中網(wǎng)卡驅(qū)動(dòng)的安裝簡(jiǎn)易 性不足的缺陷,提供一種在USB網(wǎng)卡設(shè)備上自動(dòng)運(yùn)行CDROM功能的方法。 本發(fā)明是通過下述技術(shù)方案來解決上述技術(shù)問題的 一種在USB網(wǎng)卡設(shè)備上自動(dòng)運(yùn)行CDROM功能的方法,其特點(diǎn)在于, 其包括以下步驟
生成ISO格式的驅(qū)動(dòng)鏡像,該驅(qū)動(dòng)鏡像包括一自動(dòng)運(yùn)行文件、以及 由該自動(dòng)運(yùn)行文件所制定的安裝程序;52、 將該驅(qū)動(dòng)鏡像放到USB網(wǎng)卡設(shè)備的文件系統(tǒng)中;
53、 該USB網(wǎng)卡設(shè)備與電腦連接,電腦枚舉出USB CDROM設(shè)備,自 動(dòng)運(yùn)行該安裝程序,判斷是否安裝過配置程序,若安裝過,則將該USB網(wǎng) 卡設(shè)備切換至網(wǎng)卡模式;若未安裝過,則在安裝配置程序后切換至網(wǎng)卡模式;
S4、電腦枚舉網(wǎng)卡設(shè)備,該安裝程序檢測(cè)到新硬件后安裝網(wǎng)卡驅(qū)動(dòng)。 其中,步驟S3中的切換至網(wǎng)卡模式是安裝程序通過一程序接口向該USB CDROM設(shè)備發(fā)送一 自定義SCSI命令,控制該USB網(wǎng)卡設(shè)備實(shí)現(xiàn)的。
其中,該USB網(wǎng)卡設(shè)備包括文件系統(tǒng)、操作系統(tǒng)、驅(qū)動(dòng)層和USB協(xié)議棧。
其中,與USB網(wǎng)卡設(shè)備相連接的電腦,如果關(guān)閉了自動(dòng)運(yùn)行功能,則 支持手動(dòng)運(yùn)行,即進(jìn)入U(xiǎn)SB CDROM后直接運(yùn)行安裝程序。
其中,該USB協(xié)議棧包括USB總線驅(qū)動(dòng)、USB大容量存儲(chǔ)器驅(qū)動(dòng)和 SCSI命令處理層。
其中,該USB網(wǎng)卡設(shè)備為USB無線網(wǎng)卡、智能手機(jī)或PDA。
本發(fā)明的積極進(jìn)步效果在于本方法將USB存儲(chǔ)設(shè)備和USB網(wǎng)卡設(shè)備結(jié) 合起來,將網(wǎng)卡的驅(qū)動(dòng)程序和配置程序存儲(chǔ)在USB存儲(chǔ)設(shè)備中(如U盤或USB CDROM),當(dāng)用戶將該USB網(wǎng)卡設(shè)備插入電腦時(shí),自動(dòng)運(yùn)行安裝程序,在安 裝過程中將設(shè)備切換為網(wǎng)卡,這樣就不需要額外制作一張光盤而增加成本。 該方法為客戶無形中增加了使用價(jià)值,把單純的無線網(wǎng)卡設(shè)備變?yōu)榱艘粋€(gè)帶 CDROM功能的無線網(wǎng)卡設(shè)備,與采用其他接口的方法比較,本發(fā)明的方法更 加靈活方便。
圖1為本發(fā)明的CDROM自動(dòng)運(yùn)行方法的流程圖。 圖2為本發(fā)明的USB網(wǎng)卡設(shè)備端的結(jié)構(gòu)層次圖。
具體實(shí)施例方式
下面結(jié)合附圖給出本發(fā)明較佳實(shí)施例,以詳細(xì)說明本發(fā)明的技術(shù)方案。
微軟Windows系統(tǒng)支持U盤設(shè)備,并且對(duì)于固定磁盤(fixed disk)和 CDROM支持基于autorun. inf機(jī)制的自動(dòng)運(yùn)行功能。同時(shí)USB組織也發(fā)布了 針對(duì)存儲(chǔ)設(shè)備的規(guī)范。
在此基礎(chǔ)上,只要在USB網(wǎng)卡設(shè)備中添加一點(diǎn)存儲(chǔ)空間,將這部分空間 模擬出一個(gè)USB CDROM盤,然后將安裝和配置程序放到這個(gè)USB CDROM盤中, 當(dāng)用戶將網(wǎng)卡設(shè)備插入電腦時(shí),首先運(yùn)行USB CDROM盤中的安裝程序,然后 再切換到網(wǎng)卡設(shè)備,安裝完畢后用戶就可以使用網(wǎng)卡了。
如果不運(yùn)行安裝或配置程序,該USB網(wǎng)卡設(shè)備只是一個(gè)普通USB CDROM盤。僅當(dāng)安裝或配置程序運(yùn)行中自動(dòng)切換到網(wǎng)卡模式,并且駐留在 網(wǎng)卡模式下時(shí),該USB網(wǎng)卡設(shè)備將提供上網(wǎng)功能。此時(shí)如果用戶需要使用 USB CDROM盤,那么必須通過命令,S卩,通過配置程序界面提供相應(yīng)的按 鈕來實(shí)現(xiàn)。
其中,該USB網(wǎng)卡設(shè)備可以為USB無線網(wǎng)卡或手持設(shè)備,如智能手機(jī) 或PDA (個(gè)人數(shù)碼助理,Personal Digital Assistant)等。
如圖1所示,本發(fā)明的在USB網(wǎng)卡設(shè)備上自動(dòng)運(yùn)行CDROM功能的方 法流程如下
步驟IOI,根據(jù)用戶的需求,生成ISO格式的驅(qū)動(dòng)鏡像FILE—IMAGE, 該驅(qū)動(dòng)鏡像包括一自動(dòng)運(yùn)行文件autorun.inf、由autorun.inf所指定的安裝程 序,以及安裝文檔等,可以使用Magic ISO等CDROM鏡像制作工具制作。
步驟102,將驅(qū)動(dòng)鏡像FILE_IMAGE放到USB網(wǎng)卡設(shè)備的文件系統(tǒng)中。
步驟103,該USB網(wǎng)卡設(shè)備與電腦(PC)連接,Windows操作系統(tǒng)枚 舉USB設(shè)備,首先獲得一個(gè)USB CDROM設(shè)備,當(dāng)發(fā)現(xiàn)該CDROM中包含 autorun.inf文件時(shí),自動(dòng)運(yùn)行該文件所制定的安裝程序。
步驟104,該安裝程序首先判斷是否安裝過配置程序,若安裝過,則挑過步驟105直接執(zhí)行步驟106;若未安裝過,則執(zhí)行步驟105之后繼續(xù)執(zhí)行 步驟106。
步驟105,安裝配置程序。
步驟106,通過程序接口 IOCTL—SCSI—PASS_THR0UGH向該USB CDROM 設(shè)備發(fā)送一 SCSI命令,控制該USB網(wǎng)卡設(shè)備切換至網(wǎng)卡模式。
步驟107,該USB網(wǎng)卡設(shè)備接收到該SCSI命令后,即得知PC端安裝 程序結(jié)束,準(zhǔn)備工作將開始安裝驅(qū)動(dòng)程序,此時(shí)該USB網(wǎng)卡設(shè)備將自己復(fù) 位,電腦重新枚舉網(wǎng)卡設(shè)備,安裝程序檢測(cè)到新硬件后開始安裝網(wǎng)卡驅(qū)動(dòng)。
完成了網(wǎng)卡驅(qū)動(dòng)的安裝之后,在該網(wǎng)卡模式下,用戶即可以使用該USB 網(wǎng)卡設(shè)備的網(wǎng)卡功能。
其中,以 一 種編程語言為例給出步驟106中的程序接口 IOCTL—SCSI—PASS—THROUGH的實(shí)現(xiàn)方式,該參考代碼如下 void SwitchCDR0M2ModemCmdSend()
bool flag 二 true;
B00Lstatus 二 FALSE;
charszPath[MAX—PATH], szDev[MAX—PATH];
DWORD accessMode = 0;
DWORD shareMode = 0;
UL0NG length 二 0;
UL0NG returned 二 0;
HANDLE hDev 二 NULL;
SCSI—PASS—THROUGH—WITH—BUFFERS sptwb;
〃SCSI—PASS—THROUGH—DIRECT—WITH—BUFFER sptdwb;
// Get current driver.memset(szPath, 0, sizeof(szPath)); GetModuleFileName(亂L, szPa仇MAX—PATH ); 〃 sprintf( szDev, 〃\\\\. \\%c: 〃, szPath
);
shareMode 二 FILE—SHARE—READ | FILE—SHARE—WRITE; 〃 default accessMode = GENERIC—WRITE | GENERIC—READ; 〃 default
hDev = CreateFile((const char氺)szDev, accessMode, shareMode, NULL,
OPEN—EXISTING, 0,
NULL);
if (INVALID—HANDLE—VALUE 二= hDev) CString str;
str. Format ("%s", szDev);
str += "C抑,t open USB driver^;
MyPrintfString(〃Can't open USB driver"); WriteDebugFile(〃C:〃, str);
ZeroMemory(&sptwb, sizeof (SCSI—PASS—T服0UGH一WITH—BUFFERS));sptwb.spt.Length = sizeof(SCSI—PASS—THROUGH);
sptwb.spt.Pathld = 0;
sptwb.spt.Targetld = 1;
sptwb.spt.Lun = 0;
sptwb.spt.CdbLength 二 CDB6GENERIC—LENGTH;
sptwb.spt.SenselnfoLength 二 24;
sptwb.spt.Dataln 二 SCSI—IOCTL—DATA—IN;
sptwb.spt.DataTransferLength = 0;
sptwb.spt.TimeOutValue 二 2;
sptwb.spt.DataBufferOffset = (unsigned long承)
offsetof(SCSI—PASS_THROUGH_WITH—BUFFERS, ucDataBuf); sptwb. spt. Senselnfo0ffset 二
offsetof(SCSI_PASS—THROUGH—WITH—BUFFERS, ucSenseBuf); sptwb. spt. Cdb[O] = OxBD; /*USBMS—SWITCH—CODE*/ sptwb. spt. Cdb[l] = 0; sptwb. spt. Cdb[2] = 0; sptwb. spt. Cdb[3] = 0; sptwb. spt. Cdb[4] = 2; sptwb. spt. Cdb [5] = 0; length =
offsetof(SCSI_PASS—THROUGH—WITH—BUFFERS, ucDataBuf);
status 二 DeviceloControl(hDev, IOCTL—SCSI—PASS—THROUGH, &sptwb,
sizeof(SCSI—PASS—THROUGH),
8&sptwb, length, &returned, FALSE);
由于采用了以上的方案,便省去了開發(fā)驅(qū)動(dòng)和修改文件系統(tǒng)的代碼,而 普通信息仍按正常方式處理,達(dá)到了兩全其美的效果。
為了實(shí)現(xiàn)本發(fā)明的方法,USB網(wǎng)卡設(shè)備端的軟件結(jié)構(gòu)層次如圖2所示。 該網(wǎng)卡設(shè)備端必須包括文件系統(tǒng)1,操作系統(tǒng)2、驅(qū)動(dòng)層3,以及USB協(xié)議 棧4,其中該USB協(xié)議棧4又包括USB總線驅(qū)動(dòng)、USB大容量存儲(chǔ)器(USB mass storage)驅(qū)動(dòng)和SCSI命令處理層。
該USB網(wǎng)卡設(shè)備端可以對(duì)從PC端發(fā)送過來的SCSI命令 USBMS—SWITCH—CODE進(jìn)行處理,以一種編程語言為例給出代碼如下
Case USBMS_SWITCH—CODE: /*0xBD*/
Aswitch command handle OK return, and switch mass storage to modem氺/
Switch—cdrom2modem一start0; Break;
USB接口以其簡(jiǎn)單易用性及其較小的空間使用,使得其與PCMCIA或 PCI這樣的總線比較起來,顯示了巨大的優(yōu)越性,在手持設(shè)備如手機(jī)或PDA 這樣的產(chǎn)品中會(huì)具有更大的優(yōu)勢(shì)。本發(fā)明的USB網(wǎng)卡設(shè)備增加了 CDROM 的自動(dòng)安裝功能,使得用戶安裝配置簡(jiǎn)易化,對(duì)于普通用戶將是一個(gè)很大的 吸引點(diǎn)。同時(shí),本發(fā)明的方法還可以被應(yīng)用到其他同類產(chǎn)品設(shè)計(jì)中,以達(dá)到 操作簡(jiǎn)易的目的。
雖然以上描述了本發(fā)明的具體實(shí)施方式
,但是本領(lǐng)域的技術(shù)人員應(yīng)當(dāng)理 解,這些僅是舉例說明,在不背離本發(fā)明的原理和實(shí)質(zhì)的前提下,可以對(duì)這些實(shí)施方式做出多種變更或修改。因此,本發(fā)明的保護(hù)范圍由所附權(quán)利要求 書限定。
權(quán)利要求
1、一種在USB網(wǎng)卡設(shè)備上自動(dòng)運(yùn)行CDROM功能的方法,其特征在于,其包括以下步驟S1、生成ISO格式的驅(qū)動(dòng)鏡像,該驅(qū)動(dòng)鏡像包括一自動(dòng)運(yùn)行文件、以及由該自動(dòng)運(yùn)行文件所制定的安裝程序;S2、將該驅(qū)動(dòng)鏡像放到USB網(wǎng)卡設(shè)備的文件系統(tǒng)中;S3、該USB網(wǎng)卡設(shè)備與電腦連接,電腦枚舉出USB CDROM設(shè)備,自動(dòng)運(yùn)行該安裝程序,判斷是否安裝過配置程序,若安裝過,則將該USB網(wǎng)卡設(shè)備切換至網(wǎng)卡模式;若未安裝過,則在安裝配置程序后切換至網(wǎng)卡模式;S4、電腦枚舉網(wǎng)卡設(shè)備,該安裝程序檢測(cè)到新硬件后安裝網(wǎng)卡驅(qū)動(dòng)。
2、 如權(quán)利要求1所述的在USB網(wǎng)卡設(shè)備上自動(dòng)運(yùn)行CDROM功能的方法,其特征在于,步驟S3中的切換至網(wǎng)卡模式是安裝程序通過一程序接口向該USB CDROM設(shè)備發(fā)送一自定義SCSI命令,控制該USB網(wǎng)卡設(shè)備實(shí)現(xiàn) 的。
3、 如權(quán)利要求1所述的在USB網(wǎng)卡設(shè)備上自動(dòng)運(yùn)行CDROM功能的方 法,其特征在于,步驟S3中所述的與USB網(wǎng)卡設(shè)備相連接的電腦,如果關(guān) 閉了自動(dòng)運(yùn)行功能,則支持手動(dòng)運(yùn)行,即進(jìn)入U(xiǎn)SB CDROM后直接運(yùn)行安 裝程序。
4、 如權(quán)利要求1所述的在USB網(wǎng)卡設(shè)備上自動(dòng)運(yùn)行CDROM功能的方 法,其特征在于,該USB網(wǎng)卡設(shè)備包括文件系統(tǒng)、操作系統(tǒng)、驅(qū)動(dòng)層和USB 協(xié)議棧。
5、 如權(quán)利要求4所述的在USB網(wǎng)卡設(shè)備上自動(dòng)運(yùn)行CDROM功能的方 法,其特征在于,該USB協(xié)議棧包括USB總線驅(qū)動(dòng)、USB大容量存儲(chǔ)器驅(qū) 動(dòng)和SCSI命令處理層。
6、 如以上任一權(quán)利要求所述的在USB網(wǎng)卡設(shè)備上自動(dòng)運(yùn)行CDROM功 能的方法,其特征在于,該USB網(wǎng)卡設(shè)備為USB無線網(wǎng)卡、智能手機(jī)或PDA。
全文摘要
本發(fā)明公開了一種在USB網(wǎng)卡設(shè)備上自動(dòng)運(yùn)行CDROM功能的方法,其包括以下步驟S<sub>1</sub>、生成ISO格式的驅(qū)動(dòng)鏡像,該驅(qū)動(dòng)鏡像包括一自動(dòng)運(yùn)行文件、以及由該自動(dòng)運(yùn)行文件所制定的安裝程序;S<sub>2</sub>、將該驅(qū)動(dòng)鏡像放到USB網(wǎng)卡設(shè)備的文件系統(tǒng)中;S<sub>3</sub>、該USB網(wǎng)卡設(shè)備與電腦連接,電腦枚舉出USB CDROM設(shè)備,自動(dòng)運(yùn)行該安裝程序,判斷是否安裝過配置程序,若安裝過,則將該USB網(wǎng)卡設(shè)備切換至網(wǎng)卡模式;若未安裝過,則在安裝配置程序后切換至網(wǎng)卡模式;S<sub>4</sub>、電腦枚舉網(wǎng)卡設(shè)備,該安裝程序檢測(cè)到新硬件后安裝網(wǎng)卡驅(qū)動(dòng)。本方法將單純的無線網(wǎng)卡設(shè)備變?yōu)榱艘粋€(gè)帶CDROM功能的無線網(wǎng)卡設(shè)備,節(jié)省了成本,且更加靈活方便。
文檔編號(hào)G06F9/445GK101620538SQ200810039968
公開日2010年1月6日 申請(qǐng)日期2008年7月1日 優(yōu)先權(quán)日2008年7月1日
發(fā)明者斌 吳 申請(qǐng)人:希姆通信息技術(shù)(上海)有限公司