專利名稱:基于預(yù)安裝驅(qū)動模式的數(shù)據(jù)卡設(shè)備端口切換裝置及方法
技術(shù)領(lǐng)域:
本發(fā)明涉及通信領(lǐng)域,尤其涉及一種基于預(yù)安裝(pre-install)驅(qū) 動模式的數(shù)據(jù)卡設(shè)備端口切換裝置及方法。
背景技術(shù):
對于用戶來說,數(shù)據(jù)卡設(shè)備首次插入PC時,會被枚舉成CD-ROM 設(shè)備,這就需要將CD-ROM設(shè)備切換成多功能設(shè)備,使得數(shù)據(jù)卡可 以正常工作。
設(shè)備的驅(qū)動模式分為兩種, 一種是安裝(install)模式; 一種是 pre國install。
為了加快數(shù)據(jù)卡的啟動速度, 一般都采用dif—remove服務(wù)方式, 目前大多采用在數(shù)據(jù)卡設(shè)備側(cè)對比設(shè)備描述符的方式實現(xiàn)設(shè)備由 CD-ROM設(shè)備切換到多功能設(shè)備,這種方式僅僅在首次使用設(shè)備時 需要PC側(cè)干涉,再次插入時都由設(shè)備自行比對其描述符進行端口切 換,但是這種方式需要保證第一次能夠成功枚舉設(shè)備的端口;之后設(shè) 備才能自動切換端口。如圖1所示,是現(xiàn)有的采用dif—remove服務(wù)切 換數(shù)據(jù)卡設(shè)備端口方法流程圖,具體包括以下步驟
步驟101:數(shù)據(jù)卡設(shè)備插入PC上電;
步驟102:數(shù)據(jù)卡設(shè)備比較本次要上報的描述符與上次上報的描 述符是否相同,若是,則執(zhí)行步驟107;否則,執(zhí)行步驟103;
步驟103:數(shù)據(jù)卡設(shè)備上報成CD-ROM端口 ;
步驟104: PC接收到數(shù)據(jù)庫上報的CD-ROM端口描述符后,提 示用戶安裝用戶界面(UI)及數(shù)據(jù)卡設(shè)備驅(qū)動,安裝完成后啟動 dif—remove月良務(wù);
步驟105: dif remove 服務(wù)查找USB mass storage的硬件ID;
步驟106: dif一remove服務(wù)根據(jù)查找到的身份標(biāo)識號碼(ID )執(zhí) 行dif remove 操作,即卸載所述ID對應(yīng)的USB mass storage驅(qū)動;步驟107:數(shù)據(jù)卡設(shè)備上報成多功能設(shè)備。 至此,數(shù)據(jù)卡設(shè)備完成端口切換,呈現(xiàn)多功能設(shè)備。 對企業(yè)用戶來說,為了便于對資源進行管理,往往采用部分資源 共享方式,即在管理員權(quán)限下,在服務(wù)器上安裝數(shù)據(jù)卡的驅(qū)動,客 戶端僅僅需要安裝UI,通過共享服務(wù)器上已安裝的驅(qū)動即可使用數(shù) 據(jù)卡,這就是在服務(wù)器管理員權(quán)限下pre-install設(shè)備驅(qū)動,在USER 模式下使用數(shù)據(jù)卡。
對于pre-install來說,UI和驅(qū)動已經(jīng)預(yù)先安裝在PC上,但在數(shù) 據(jù)卡沒有被成功枚舉成多端口設(shè)備前,運行在PC上的dif—remove服 務(wù)是無法與數(shù)據(jù)卡進行交互的,故dif_remove服務(wù)會一直處于運行狀 態(tài),而插入的數(shù)據(jù)卡也會一直被枚舉成CD-ROM設(shè)備?,F(xiàn)有的解決 方法有過濾驅(qū)動和修改總線驅(qū)動,但是過濾驅(qū)動復(fù)雜并且需要昂貴的 數(shù)字簽名費用,修改總線驅(qū)動工程龐大,且開發(fā)周期長。
發(fā)明內(nèi)容
本發(fā)明所要解決的技術(shù)問題是,提供一種基于預(yù)安裝驅(qū)動模式的 數(shù)據(jù)卡設(shè)備端口切換裝置及方法,本發(fā)明不僅筒單易用,而且節(jié)約成 本。
本發(fā)明公開了 一種基于預(yù)安裝驅(qū)動模式的數(shù)據(jù)卡設(shè)備端口切換 裝置,所述裝置包括配置文件模塊和服務(wù)控制模塊,其中
配置文件模塊用于在數(shù)據(jù)卡設(shè)備的驅(qū)動程序安裝完成后生成具 有標(biāo)志位的配置文件,并存儲生成的配置文件;
服務(wù)控制模塊用于在PC上電/重啟時,控制dif—remove服務(wù)從所 述配置文件模塊中讀取相應(yīng)的配置文件,在所述dif—remove服務(wù)讀取 到的配置文件標(biāo)志位為已安裝時,控制所述服務(wù)監(jiān)測注冊表中 CD-ROM的鍵值,在所述dif—remove服務(wù)讀取到的配置文件標(biāo)志位 為已卸載時,控制所述dif—remove服務(wù)結(jié)束運行。
所述服務(wù)控制模塊還用于在所述注冊表中CD-ROM的鍵值發(fā)生 變化時,控制所述dif—remove服務(wù)查詢注冊表中USB mass storage 的硬件ID,卸載所述ID對應(yīng)的USB mass storage驅(qū)動,在所述數(shù)據(jù)
5卡設(shè)備被枚舉成多功能設(shè)備后,控制所述dif一remove服務(wù)結(jié)束運行。 本發(fā)明還公開了 一種基于預(yù)安裝驅(qū)動模式的數(shù)據(jù)卡設(shè)備端口切 換方法,所述方法為PC上電/重啟時,dif—remove服務(wù)讀取配置文 件的標(biāo)志位,若所述標(biāo)志位為已卸載,則所述服務(wù)結(jié)束運行;若所述 標(biāo)志位為已安裝,則所述服務(wù)監(jiān)測注冊表中CD-ROM的鍵值,若所 述鍵值發(fā)生變化,則所述服務(wù)查詢注冊表中USB mass storage的硬件 ID,卸載所述ID對應(yīng)的USB mass storage驅(qū)動,并等待所述凄t據(jù)卡 設(shè)備被枚舉成多功能設(shè)備后,將所述配置文件的標(biāo)志位修改成已卸 載,結(jié)束運行。
所述配置文件在數(shù)據(jù)卡設(shè)備的驅(qū)動安裝完成時生成,所述配置文 件的標(biāo)志位的初始值為已安裝。
所述數(shù)據(jù)卡設(shè)備被枚舉成多功能設(shè)備是指所述數(shù)據(jù)卡設(shè)備成功 上報成多功能設(shè)備。
本發(fā)明采用WIN32服務(wù),克服了現(xiàn)有技術(shù)中存在開發(fā)周期長, 集成復(fù)雜,費用高的問題和缺陷。
圖1是現(xiàn)有技術(shù)中采用dif一remove服務(wù)時數(shù)據(jù)卡設(shè)備端口切換 流程圖2是本發(fā)明所述裝置的結(jié)構(gòu)框圖; 圖3是本發(fā)明所述方法流程圖。
具體的實施方式
以下結(jié)合附圖及優(yōu)選實施例,對本發(fā)明做進一步詳細說明。 如圖2所示,本發(fā)明所述裝置包括配置文件模塊和服務(wù)控制模
塊,配置文件模塊用于在數(shù)據(jù)卡設(shè)備的驅(qū)動程序安裝完成后生成具有
標(biāo)志位的配置文件,并存儲生成的配置文件;
服務(wù)控制模塊用于在PC上電/重啟時,控制dif—remove服務(wù)從所
述配置文件模塊中讀取相應(yīng)的配置文件,用于在所述dif一remove服務(wù)
讀取到的配置文件標(biāo)志位為已安裝時,控制所述服務(wù)監(jiān)測注冊表中CD-ROM的鍵值,并在所述CD-ROM的鍵值發(fā)生變化時,控制所述 dif—remove服務(wù)查詢注冊表中USB mass storage的硬件ID,卸載所 述ID對應(yīng)的USB mass storage驅(qū)動,在所述數(shù)據(jù)卡設(shè)備被成功才文舉 成多功能設(shè)備后,或者在所述dif_remove服務(wù)讀取到的配置文件標(biāo)志 位為已卸載時,控制所述dif—remove服務(wù)結(jié)束運行。
如圖3所示,是本發(fā)明所述方法的流程圖,具體包括如下步驟
步驟301: PC安裝完數(shù)據(jù)卡的驅(qū)動后,配置文件^^莫塊生成一個 具有標(biāo)志位的配置文件;
配置文件用來標(biāo)識相應(yīng)的驅(qū)動是否已經(jīng)被卸載,其標(biāo)志位的初始 值為已安裝,當(dāng)數(shù)據(jù)卡設(shè)備被成功枚舉成多功能設(shè)備時,標(biāo)志位會被 修改成已卸載,表示不用再進行dif—remove操作。
步驟302: PC上電/重啟時,dif—remove服務(wù)讀取配置文件的標(biāo) 志位;
步驟303:若所述標(biāo)志位為已安裝,則執(zhí)行步驟304;否則,執(zhí) 行步驟309;
步驟304:所述月良務(wù)監(jiān)測注冊表中CD-ROM的鍵值; 本發(fā)明利用CD-ROM的鍵值在有數(shù)據(jù)卡設(shè)備插入時發(fā)生變化的
特點,通過事件檢測來使得預(yù)安裝模式的數(shù)據(jù)卡設(shè)備的端口轉(zhuǎn)換在應(yīng)
用層進行。
步驟305:若CD-ROM的鍵值有變化,則執(zhí)行步驟306;否則, 執(zhí)行步驟304;
步驟306:所述服務(wù)查詢注冊表中USB mass storage的硬件ID, 卸載所述ID對應(yīng)的USB mass storage驅(qū)動,即l丸行dif—remove才喿作;
步驟307:等待所述數(shù)據(jù)卡設(shè)備被枚舉成多功能設(shè)備,即等待所 述數(shù)據(jù)卡設(shè)備成功上報成多功能設(shè)備;
步驟308:將配置文件的標(biāo)志位修改成已卸載;
步驟309:所述服務(wù)結(jié)束運行。
本發(fā)明在端口切換完成后,服務(wù)即退出系統(tǒng),并且數(shù)據(jù)卡設(shè)備被 成功枚舉成多功能設(shè)備后,dif—remove服務(wù)不會在PC上電/重啟時跟 著啟動,而現(xiàn)有技術(shù)中的過濾驅(qū)動方法和修改總線驅(qū)動方法都需要常駐系統(tǒng)。
以上所述僅為本發(fā)明的較佳實施例而已,并非用于限制本發(fā)明的 保護范圍。應(yīng)當(dāng)理解的是,對本發(fā)明技術(shù)所在領(lǐng)域的普通技術(shù)人員來 說,可以根據(jù)本發(fā)明的技術(shù)方案及其構(gòu)思進行相應(yīng)的等同改變或替 換,而所有這些改變或替換,都應(yīng)屬于本發(fā)明所附權(quán)利要求的保護范 圍。
權(quán)利要求
1、一種基于預(yù)安裝驅(qū)動模式的數(shù)據(jù)卡設(shè)備端口切換裝置,其特征在于,所述裝置包括配置文件模塊和服務(wù)控制模塊,其中,所述配置文件模塊用于在數(shù)據(jù)卡設(shè)備的驅(qū)動程序安裝完成后生成具有標(biāo)志位的配置文件,并存儲生成的配置文件;所述服務(wù)控制模塊用于在PC上電/重啟時,控制dif_remove服務(wù)從所述配置文件模塊中讀取相應(yīng)的配置文件,在所述dif_remove服務(wù)讀取到的配置文件標(biāo)志位為已安裝時,控制所述服務(wù)監(jiān)測注冊表中CD-ROM的鍵值,在所述dif_remove服務(wù)讀取到的配置文件標(biāo)志位為已卸載時,控制所述dif_remove服務(wù)結(jié)束運行。
2、 如權(quán)利要求1所述的基于預(yù)安裝驅(qū)動模式的數(shù)據(jù)卡設(shè)備端口 切換裝置,其特征在于,所述服務(wù)控制模塊還用于在所述注冊表中 CD-ROM的鍵值發(fā)生變化時,控制所述dif一remove J良務(wù)查詢注冊表 中USB mass storage的石更件身份標(biāo)識號碼ID, 卸載所述ID對應(yīng)的 USB mass storage驅(qū)動,在所述數(shù)據(jù)卡設(shè)備被沖文舉成多功能設(shè)備后, 控制所述dif—remove服務(wù)結(jié)束運行。
3、 一種基于預(yù)安裝驅(qū)動模式的數(shù)據(jù)卡設(shè)備端口切換方法,其特 征在于,PC上電/重啟時,dif—remove服務(wù)讀取配置文件的標(biāo)志位, 若所述標(biāo)志位為已卸載,則所述服務(wù)結(jié)束運行;若所述標(biāo)志位為已安 裝,則所述服務(wù)監(jiān)測注冊表中CD-ROM的鍵值,若所述鍵值發(fā)生變 化,則所述服務(wù)查詢注冊表中USB mass storage的硬件ID,卸載所 迷ID對應(yīng)的USB mass storage驅(qū)動,并等待所述數(shù)據(jù)卡設(shè)備被枚舉 成多功能設(shè)備后,將所述配置文件的標(biāo)志位修改成已卸載,結(jié)束運行。
4、 如權(quán)利要求3所述的基于預(yù)安裝驅(qū)動模式的數(shù)據(jù)卡設(shè)備端口 切換方法,其特征在于,所述配置文件在數(shù)據(jù)卡設(shè)備的驅(qū)動安裝完成 時生成,所述配置文件的標(biāo)志位的初始值為已安裝。
5、 如權(quán)利要求3所述的基于預(yù)安裝驅(qū)動模式的數(shù)據(jù)卡設(shè)備端口切換方法,其特征在于,所述數(shù)據(jù)卡設(shè)備被枚舉成多功能設(shè)備是指所 述數(shù)據(jù)卡設(shè)備成功上報成多功能設(shè)備。
全文摘要
本發(fā)明涉及一種基于預(yù)安裝驅(qū)動模式的數(shù)據(jù)卡設(shè)備端口切換裝置及方法,所述裝置包括配置文件模塊和服務(wù)控制模塊;所述方法為PC上電/重啟時,dif_remove服務(wù)讀取配置文件的標(biāo)志位,若所述標(biāo)志位為已卸載,則所述服務(wù)結(jié)束運行;若所述標(biāo)志位為已安裝,則所述服務(wù)監(jiān)測注冊表中CD-ROM的鍵值,若所述鍵值發(fā)生變化,則所述服務(wù)查詢注冊表中USB mass storage的硬件身份標(biāo)識號碼ID,卸載所述ID對應(yīng)的USB mass storage驅(qū)動,并等待所述數(shù)據(jù)卡設(shè)備被枚舉成多功能設(shè)備后,將所述配置文件的標(biāo)志位修改成已卸載,結(jié)束運行。本發(fā)明不僅簡單易用,而且節(jié)約成本。
文檔編號G06F13/10GK101526928SQ20091010657
公開日2009年9月9日 申請日期2009年4月10日 優(yōu)先權(quán)日2009年4月10日
發(fā)明者釗 左, 田治兵 申請人:中興通訊股份有限公司