一種自動打開擴展通道的方法及裝置的制造方法
【技術領域】
[0001] 本發明涉及信息安全領域,尤其涉及一種自動打開擴展通道的方法及裝置。
【背景技術】
[0002] 現有技術中,在Windows平臺下,通常打開擴展通道和智能卡讀卡器通訊,必須首 先知道硬件的VID和PID。然后手動設置VID和PID組成一個路徑,用RegOpenKey打開后, 在當前路徑從〇索引開始遍歷下一級的目錄設備實例ID,獲得設備實例ID后,把獲得的 VID、PID、設備實例ID和根目錄路徑組成一個路徑,然后再用RegOpenKey函數打開新獲得 的路徑,對注冊表操作,比較耗時,而且很繁瑣。
【發明內容】
[0003] 本發明的目的是為了解決現有技術中存在的問題,提供了一種自動打開擴展通道 的方法及裝置。
[0004] 本發明采用的技術方案是:一種自動打開擴展通道的方法,包括:當主設備監控 到有外接設備連接時,執行以下操作:
[0005] 步驟S1 :所述主設備獲取當前外接設備的設備信息,根據所述當前外接設備的設 備信息得到設備路徑,根據所述設備路徑得到當前外接設備的注冊表路徑;
[0006] 步驟S2 :所述主設備判斷在所述當前外接設備的注冊表路徑下是否能夠獲取到 當前外接設備的預設子項,如果是,則執行步驟S3,否則結束;
[0007] 步驟S3 :所述主設備將所述當前外接設備的預設子項的值設置為第一預設值,打 開擴展通道成功。
[0008] 所述步驟S1之前,還包括:
[0009] 步驟al:所述主設備創建監控外接設備插拔線程;
[0010] 步驟a2 :所述主設備監控外接設備的插拔,當監控到有外接設備連接時,執行步 驟S1,當監控到有外接設備斷開連接時,繼續執行步驟a2。
[0011] 所述步驟S1之前還包括:所述主設備獲取當前已安裝的外接設備列表,并為之創 建外接設備索引表;
[0012] 所述步驟S1中,所述主設備獲取所述外接設備的設備信息,具體為:所述主設備 從所述外接設備索引表中獲取所述外接設備的設備信息;
[0013] 所述方法還包括:所述主設備創建監控外接設備插拔線程,監控外接設備的插拔, 當監控到有外接設備連接時,更新所述外接設備索引表。
[0014] 所述步驟S3中,所述將所述當前外接設備的預設子項的值設置為所述第一預設 值之后,還包括:所述主設備判斷所述外接設備索引表中是否還有未進行通道擴展的外接 設備,如果是,則將其中一個未進行通過擴展的外接設備作為當前外接設備,返回步驟S1, 否則結束。
[0015] 所述判斷所述外接設備索引表中是否還有未進行通道擴展的外接設備,具體為: 判斷所述外接設備索引表中是否存在已擴展標識未置位的外接設備,如果是,則將其中一 個已擴展標識未置位的外接設備作為當前外接設備,否則結束;
[0016] 所述步驟S3中,所述將所述當前外接設備的預設子項的值設置為所述第一預設 值之后,還包括:所述主設備將所述當前外接設備的已擴展標識置位。
[0017] 所述步驟S1中,所述主設備獲取當前外接設備的設備信息之后,還包括:根據所 述當前外接設備的設備信息,判斷所述當前外接設備是否需要打開擴展通道,如果是,則繼 續,否則結束。
[0018] 所述判斷所述當前外接設備是否需要打開擴展通道,具體為:判斷當前外接設備 的設備信息中的GUID值是否為預設設備類的GUID值,如果是,則繼續,否則結束。
[0019] 所述步驟S1中,所述根據所述當前外接設備的設備信息得到設備路徑,具體為: 所述主設備將當前外接設備的設備信息中的PID、VID和設備唯一標識按照第一預設格式 組合得到設備路徑。
[0020] 所述步驟S1中,所述根據所述設備路徑得到所述當前外接設備的注冊表路徑,具 體為:所述主設備獲取主設備操作系統,根據所述設備路徑和所述主設備操作系統得到當 前外接設備的注冊表路徑。
[0021] 所述根據所述設備路徑和所述主設備操作系統得到當前外接設備的注冊表路徑, 具體為:將所述設備路徑填充至所述主設備操作系統對應的預設注冊表路徑信息中。
[0022] 所述步驟S2中,判斷為否時,還包括:所述主設備在所述當前外接設備的注冊表 路徑下創建預設子項,判斷是否創建成功,如果是,則將創建的預設子項的值設置為第一預 設值,打開擴展通道成功,結束,否則報錯,結束。
[0023] 所述方法還包括:所述主設備創建顯示界面對話框,當所述主設備監控到有外接 設備連接時,在所述顯示界面對話框上顯示當前外接設備的插入信息,當所述主設備監控 到有外接設備拔出時,在所述顯示界面對話框上顯示當前外接設備的拔出信息。
[0024] -種自動打開擴展通道的裝置,包括:
[0025] 監控模塊,用于監控與外接設備的連接;
[0026] 獲取模塊,用于當所述監控模塊監控到有外接設備連接時,獲取當前外接設備的 設備信息;
[0027] 處理模塊:用于當所述獲取模塊獲取到當前外接設備的設備信息時,根據所述當 前外接設備的設備信息得到設備路徑,根據所述設備路徑得到當前外接設備的注冊表路 徑;
[0028] 第一判斷模塊,用于當所述處理模塊得到當前外接設備的注冊表路徑時,判斷在 所述當前外接設備的注冊表路徑下是否能夠獲取到所述當前外接設備的預設子項;
[0029] 設置模塊,用于當所述第一判斷模塊判斷為是時,將所述當前外接設備的預設子 項的值設置為第一預設值。
[0030] 所述監控模塊包括:第一創建單元和第一監控單元;
[0031] 所述第一創建單元,用于創建監控外接設備插拔線程;
[0032] 所述第一監控單元,用于監控外接設備的插拔,當監控到有外接設備連接時,觸發 所述獲取模塊,當監控到有外接設備斷開連接時,繼續觸發所述第一監控單元。
[0033] 所述裝置還包括創建模塊和更新模塊;
[0034] 所述創建模塊,用于獲取當前已安裝的外接設備列表,并為之創建外接設備索引 表;
[0035] 所述獲取模塊,具體用于從所述外接設備索引表中獲取所述外接設備的設備信 息;
[0036] 所述更新模塊,用于當所述監控模塊監控到有外接設備連接時,更新所述外接設 備索引表。
[0037] 所述裝置還包括:第二判斷模塊和設定模塊;
[0038] 所述第二判斷模塊,用于當所述設置模塊設置完成后,判斷所述外接設備索引表 中是否還有未進行通道擴展的外接設備;
[0039] 所述設定模塊,用于當所述第二判斷模塊判斷為是時,將其中一個未進行通過擴 展的外接設備作為當前外接設備,觸發所述獲取模塊。
[0040] 所述第二判斷模塊,具體用于判斷所述外接設備索引表中是否存在已擴展標識未 置位的外接設備;
[0041] 所述設定模塊,具體用于當所述第二判斷模塊判斷為是時,將其中一個已擴展標 識未置位的外接設備作為當前外接設備,觸發所述獲取模塊;
[0042] 所述裝置還包括置位模塊,用于當設置模塊設置完成時,將所述當前外接設備的 已擴展標識置位。
[0043] 所述裝置還包括:第三判斷模塊,用于當所述獲取模塊獲取到當前外接設備的設 備信息時,根據所述當前外接設備的設備信息,判斷所述當前外接設備是否需要打開擴展 通道,判斷為是時,觸發所述處理模塊。
[0044] 所述第三判斷模塊,具體用于判斷當前外接設備的設備信息中的GUID值是否為 預設設備類的GUID值,判斷為是時,觸發所述處理模塊。
[0045] 所述處理模塊中,所述根據所述當前外接設備的設備信息得到設備路徑,具體用 于將當前外接設備的設備信息中的PID、VID和設備唯一標識按照第一預設格式組合得到 設備路徑。
[0046] 所述處理模塊中,所述根據所述設備路徑得到當前外接設備的注冊表路徑,具體 用于獲取主設備操作系統,根據所述設備路徑和所述主設備操作系統得到當前外接設備的 注冊表路徑。
[0047] 所述處理模塊中,所述根據所述設備路徑和所述主設備操作系統得到當前外接設 備的注冊表路徑,具體用于將所述設備路徑填充至所述主設備操作系統對應的預設注冊表 路徑信息中。
[0048] 所述裝置還包括創建模塊,用于當所述第一判斷模塊判斷為否時,在所述當前外 接設備的注冊表路徑下創建預設子項,判斷是否創建成功;
[0049] 所述設置模塊,還用于當所述創建模塊創建預設子項成功時,將創建的預設子項 的值設置為第一預設值。
[0050] 所述裝置還包括:顯示模塊;所述顯示模塊包括第二創建單元和第一顯示單元;
[0051] 所述第二創建單元,用于創建顯示界面對話框;
[0052] 所述第一顯示單元,用于當所述監控模塊監控到有外接設備連接時,在所述顯示 界面對話框上顯示當前外接設備的插入信息;用于當所述監控模塊監控到有外接設備拔出 時,在所述顯示界面對話框上顯示當前外接設備的拔出信息。
[0053] 本發明取得的有益效果是:采用windows驅動程序的操作對注冊表進行處理,能 夠實現對插入的設備實時的檢測,而且不需要每次再手動設置,簡單方便,效率更高。
【附圖說明】
[0054] 為了更清楚的說明本發明實施例或現有技術中的技術方案,下面將對實施例或現 有技術描述中所需要使用的附圖作簡單的介紹,顯而易見地,下面描述中的附圖僅僅是本 發明的一些實施例,對于本領域普通技術人員來講,在不付出創造性勞動的前提下,還可以 根據這些附圖獲得其他的附圖。
[0055] 圖1是本發明實施例1提供的一種自動打開擴展通道的方法流程圖;
[0056] 圖2是