本技術(shù)實施例涉及計算機領(lǐng)域,具體而言,涉及一種外接設(shè)備的熱插拔控制方法、裝置、存儲介質(zhì)和電子設(shè)備。
背景技術(shù):
1、目前,通用的操作系統(tǒng)中設(shè)有針對熱插拔的使能配置,通過使能配置來開啟和關(guān)閉外接設(shè)備的熱插拔響應(yīng)處理,但是這種方式是針對所有連接在擴展插槽中的外接設(shè)備,即無論支持熱插拔的外接設(shè)備或者不支持熱插拔的外接設(shè)備的熱插拔信號都會屏蔽掉,但是上述方法屏蔽外接設(shè)備的熱插拔信號后,當(dāng)被屏蔽的外接設(shè)備發(fā)生硬件故障或者插拔后,因為熱插拔信號被屏蔽,所以無法及時感知到被屏蔽的外接設(shè)備的變化。
2、針對相關(guān)技術(shù)中,外接設(shè)備的熱插拔控制效率較低等問題,尚未提出有效的解決方案。
技術(shù)實現(xiàn)思路
1、本技術(shù)實施例提供了一種外接設(shè)備的熱插拔控制方法、裝置、存儲介質(zhì)和電子設(shè)備,以至少解決相關(guān)技術(shù)中外接設(shè)備的熱插拔控制效率較低的問題。
2、根據(jù)本技術(shù)的一個實施例,提供了一種外接設(shè)備的熱插拔控制方法,應(yīng)用于主板設(shè)備上運行的操作系統(tǒng),所述主板設(shè)備上部署了擴展插槽,所述操作系統(tǒng)通過驅(qū)動程序?qū)λ鰯U展插槽上所連接的外接設(shè)備進行驅(qū)動,所述主板設(shè)備中存儲了支持外接設(shè)備熱插拔的參考驅(qū)動程序的參考驅(qū)動標(biāo)識,所述方法包括:
3、檢測所述擴展插槽上所產(chǎn)生的熱插拔信號,其中,所述熱插拔信號用于指示在所述擴展插槽上發(fā)生了外接設(shè)備的熱插拔;
4、在檢測到所述擴展插槽上產(chǎn)生了目標(biāo)熱插拔信號的情況下,檢測產(chǎn)生所述目標(biāo)熱插拔信號的目標(biāo)外接設(shè)備所對應(yīng)的目標(biāo)驅(qū)動程序的目標(biāo)驅(qū)動標(biāo)識;
5、從所述參考驅(qū)動標(biāo)識中查找所述目標(biāo)驅(qū)動標(biāo)識;
6、在從所述參考驅(qū)動標(biāo)識中查找到所述目標(biāo)驅(qū)動標(biāo)識的情況下,將所述目標(biāo)熱插拔信號傳輸至所述目標(biāo)驅(qū)動程序,其中,所述目標(biāo)驅(qū)動程序用于響應(yīng)所述目標(biāo)熱插拔信號對所述目標(biāo)外接設(shè)備進行熱插拔處理;在從所述參考驅(qū)動標(biāo)識中未查找到所述目標(biāo)驅(qū)動標(biāo)識的情況下,對所述目標(biāo)驅(qū)動程序屏蔽所述目標(biāo)熱插拔信號。
7、在一個示例性實施例中,所述檢測產(chǎn)生所述目標(biāo)熱插拔信號的目標(biāo)外接設(shè)備所對應(yīng)的目標(biāo)驅(qū)動程序的目標(biāo)驅(qū)動標(biāo)識,包括:識別出所述擴展插槽上產(chǎn)生所述目標(biāo)熱插拔信號的所述目標(biāo)外接設(shè)備;檢測所述操作系統(tǒng)上所安裝的驅(qū)動程序中是否存在允許驅(qū)動所述目標(biāo)外接設(shè)備的驅(qū)動程序;在檢測到所述操作系統(tǒng)上所安裝的驅(qū)動程序中存在允許驅(qū)動所述目標(biāo)外接設(shè)備的驅(qū)動程序的情況下,將允許驅(qū)動所述目標(biāo)外接設(shè)備的驅(qū)動程序確定為所述目標(biāo)驅(qū)動程序;獲取所述目標(biāo)驅(qū)動程序的所述目標(biāo)驅(qū)動標(biāo)識。
8、在一個示例性實施例中,所述操作系統(tǒng)中安裝了內(nèi)核熱插拔驅(qū)動程序和內(nèi)核驅(qū)動,所述內(nèi)核熱插拔驅(qū)動程序中注冊了熱插拔中斷處理函數(shù),所述內(nèi)核驅(qū)動用于管理所述參考驅(qū)動標(biāo)識;所述從所述參考驅(qū)動標(biāo)識中查找所述目標(biāo)驅(qū)動標(biāo)識包括:運行所述內(nèi)核熱插拔驅(qū)動程序,通過所述內(nèi)核熱插拔驅(qū)動程序調(diào)用所述熱插拔中斷處理函數(shù);通過所述熱插拔中斷處理函數(shù)向所述內(nèi)核驅(qū)動查詢所述目標(biāo)驅(qū)動標(biāo)識;通過所述熱插拔中斷處理函數(shù)接收所述內(nèi)核驅(qū)動返回的所述目標(biāo)驅(qū)動標(biāo)識的查詢結(jié)果,其中,所述查詢結(jié)果用于指示從所述參考驅(qū)動標(biāo)識中是否查找到所述目標(biāo)驅(qū)動標(biāo)識。
9、在一個示例性實施例中,所述操作系統(tǒng)中還安裝了信號監(jiān)聽程序;所述檢測所述擴展插槽上所產(chǎn)生的熱插拔信號,包括:在所述操作系統(tǒng)已啟動的情況下,運行所述信號監(jiān)聽程序;通過所述信號監(jiān)聽程序檢測所述擴展插槽上所產(chǎn)生的熱插拔信號;所述檢測產(chǎn)生所述目標(biāo)熱插拔信號的目標(biāo)外接設(shè)備所對應(yīng)的目標(biāo)驅(qū)動程序的目標(biāo)驅(qū)動標(biāo)識,包括:在所述信號監(jiān)聽程序檢測到所述擴展插槽上產(chǎn)生了所述目標(biāo)熱插拔信號的情況下,向所述內(nèi)核熱插拔驅(qū)動程序觸發(fā)熱插拔中斷;所述內(nèi)核熱插拔驅(qū)動程序在檢測到觸發(fā)了所述熱插拔中斷的情況下,調(diào)用所述熱插拔中斷處理函數(shù);通過所述熱插拔中斷處理函數(shù)檢測所述目標(biāo)外接設(shè)備所對應(yīng)的所述目標(biāo)驅(qū)動程序的所述目標(biāo)驅(qū)動標(biāo)識。
10、在一個示例性實施例中,所述操作系統(tǒng)劃分了用戶層和內(nèi)核層,所述用戶層被設(shè)置為允許用戶配置所述參考驅(qū)動標(biāo)識,所述內(nèi)核層中安裝了內(nèi)核驅(qū)動,所述操作系統(tǒng)在所述內(nèi)核層中運行了系統(tǒng)文件系統(tǒng);在所述從所述參考驅(qū)動標(biāo)識中查找所述目標(biāo)驅(qū)動標(biāo)識之前,所述方法還包括:將所述用戶層上配置的所述參考驅(qū)動標(biāo)識從所述用戶層傳輸至所述內(nèi)核層的所述內(nèi)核驅(qū)動;通過所述內(nèi)核驅(qū)動將所述參考驅(qū)動標(biāo)識寫入所述系統(tǒng)文件系統(tǒng),得到記錄了所述參考驅(qū)動標(biāo)識的目標(biāo)系統(tǒng)文件。
11、在一個示例性實施例中,所述將所述用戶層上配置的所述參考驅(qū)動標(biāo)識從所述用戶層傳輸至所述內(nèi)核層的所述內(nèi)核驅(qū)動,包括:在所述操作系統(tǒng)開機啟動的過程中,通過所述操作系統(tǒng)的開機啟動系統(tǒng)從所述用戶層獲取用戶在所述用戶層創(chuàng)建的第一配置文件,其中,所述第一配置文件中記錄了所述參考驅(qū)動標(biāo)識;通過所述開機啟動系統(tǒng)將所述第一配置文件中所記錄的所述參考驅(qū)動標(biāo)識傳輸至所述內(nèi)核驅(qū)動;所述通過所述內(nèi)核驅(qū)動將所述參考驅(qū)動標(biāo)識寫入所述系統(tǒng)文件系統(tǒng),得到記錄了所述參考驅(qū)動標(biāo)識的目標(biāo)系統(tǒng)文件,包括:通過所述內(nèi)核驅(qū)動接收所述開機啟動系統(tǒng)所傳輸?shù)乃鰠⒖简?qū)動標(biāo)識;通過所述內(nèi)核驅(qū)動在所述系統(tǒng)文件系統(tǒng)中創(chuàng)建初始系統(tǒng)文件;通過所述內(nèi)核驅(qū)動以鏈表的形式將所述參考驅(qū)動標(biāo)識寫入所述初始系統(tǒng)文件,得到所述目標(biāo)系統(tǒng)文件。
12、在一個示例性實施例中,在檢測到所述擴展插槽上產(chǎn)生了所述目標(biāo)熱插拔信號的情況下,所述方法還包括:從所述目標(biāo)熱插拔信號中提取目標(biāo)設(shè)備信息,其中,所述目標(biāo)設(shè)備信息是產(chǎn)生所述目標(biāo)熱插拔信號的目標(biāo)外接設(shè)備的設(shè)備信息;根據(jù)所述目標(biāo)設(shè)備信息從第二配置文件中匹配目標(biāo)插槽信息,其中,所述第二配置文件中記錄了每個擴展插槽上所連接的外接設(shè)備的設(shè)備信息,所述目標(biāo)插槽信息是所述目標(biāo)外接設(shè)備所連接的目標(biāo)擴展插槽的插槽信息;根據(jù)所述目標(biāo)設(shè)備信息和所述目標(biāo)插槽信息生成告警信息,并將所述告警信息推送至客戶端。
13、根據(jù)本技術(shù)的另一個實施例,提供了一種外接設(shè)備的熱插拔控制裝置,應(yīng)用于主板設(shè)備上運行的操作系統(tǒng),所述主板設(shè)備上部署了擴展插槽,所述操作系統(tǒng)通過驅(qū)動程序?qū)λ鰯U展插槽上所連接的外接設(shè)備進行驅(qū)動,所述主板設(shè)備中存儲了支持外接設(shè)備熱插拔的參考驅(qū)動程序的參考驅(qū)動標(biāo)識,所述裝置包括:
14、第一檢測模塊,用于檢測所述擴展插槽上所產(chǎn)生的熱插拔信號,其中,所述熱插拔信號用于指示在所述擴展插槽上發(fā)生了外接設(shè)備的熱插拔;
15、第二檢測模塊,用于在檢測到所述擴展插槽上產(chǎn)生了目標(biāo)熱插拔信號的情況下,檢測產(chǎn)生所述目標(biāo)熱插拔信號的目標(biāo)外接設(shè)備所對應(yīng)的目標(biāo)驅(qū)動程序的目標(biāo)驅(qū)動標(biāo)識;
16、查找模塊,用于從所述參考驅(qū)動標(biāo)識中查找所述目標(biāo)驅(qū)動標(biāo)識;
17、傳輸模塊,用于在從所述參考驅(qū)動標(biāo)識中查找到所述目標(biāo)驅(qū)動標(biāo)識的情況下,將所述目標(biāo)熱插拔信號傳輸至所述目標(biāo)驅(qū)動程序,其中,所述目標(biāo)驅(qū)動程序用于響應(yīng)所述目標(biāo)熱插拔信號對所述目標(biāo)外接設(shè)備進行熱插拔處理;
18、屏蔽模塊,用于在從所述參考驅(qū)動標(biāo)識中未查找到所述目標(biāo)驅(qū)動標(biāo)識的情況下,對所述目標(biāo)驅(qū)動程序屏蔽所述目標(biāo)熱插拔信號。
19、根據(jù)本技術(shù)的又一個實施例,還提供了一種計算機可讀存儲介質(zhì),所述計算機可讀存儲介質(zhì)中存儲有計算機程序,其中,所述計算機程序被設(shè)置為運行時執(zhí)行上述任一項方法實施例中的步驟。
20、根據(jù)本技術(shù)的又一個實施例,還提供了一種電子設(shè)備,包括存儲器和處理器,所述存儲器中存儲有計算機程序,所述處理器被設(shè)置為運行所述計算機程序以執(zhí)行上述任一項方法實施例中的步驟。
21、根據(jù)本技術(shù)的又一個實施例,還提供了一種計算機程序產(chǎn)品,包括計算機程序,所述計算機程序被處理器執(zhí)行時實現(xiàn)上述任一項方法實施例中的步驟。
22、通過本技術(shù),檢測擴展插槽上所產(chǎn)生的熱插拔信號,其中,熱插拔信號用于指示在擴展插槽上發(fā)生了外接設(shè)備的熱插拔;在檢測到擴展插槽上產(chǎn)生了目標(biāo)熱插拔信號的情況下,檢測產(chǎn)生目標(biāo)熱插拔信號的目標(biāo)外接設(shè)備所對應(yīng)的目標(biāo)驅(qū)動程序的目標(biāo)驅(qū)動標(biāo)識;從參考驅(qū)動標(biāo)識中查找目標(biāo)驅(qū)動標(biāo)識;在從參考驅(qū)動標(biāo)識中查找到目標(biāo)驅(qū)動標(biāo)識的情況下,將目標(biāo)熱插拔信號傳輸至目標(biāo)驅(qū)動程序,其中,目標(biāo)驅(qū)動程序用于響應(yīng)目標(biāo)熱插拔信號對目標(biāo)外接設(shè)備進行熱插拔處理;在從參考驅(qū)動標(biāo)識中未查找到目標(biāo)驅(qū)動標(biāo)識的情況下,對目標(biāo)驅(qū)動程序屏蔽目標(biāo)熱插拔信號。也就是說,根據(jù)產(chǎn)生目標(biāo)熱插拔信號的目標(biāo)外接設(shè)備所對應(yīng)的目標(biāo)驅(qū)動程序的目標(biāo)驅(qū)動標(biāo)識確定是否使用目標(biāo)驅(qū)動程序響應(yīng)目標(biāo)熱插拔信號,對于不支持熱插拔處理的目標(biāo)外接設(shè)備,對目標(biāo)驅(qū)動程序屏蔽了目標(biāo)熱插拔信號,因此,可以解決外接設(shè)備的熱插拔控制效率較低的問題,達到了提高外接設(shè)備的熱插拔控制效率的效果。