【技術實現步驟摘要】
本申請屬于主機系統識別,尤其涉及usb設備自動識別主機系統的方法、裝置、系統及存儲介質。
技術介紹
1、usb設備連接主機時,需要對主機所使用的操作系統進行識別,現有技術中的識別方法是要有以下幾種:在主機系統上安裝usb設備過濾驅動、利用scsi指令、采用微軟擴展的mods消息。
2、其中,在主機系統上安裝usb設備過濾驅動是通過在主機系統上安裝usb設備過濾驅動中設置約定的usb識別碼,例如macos系統主機驅動下發0xa1,windows7系統主機下發0xa2,windows10系統主機下發0xa3等等;然后設備根據接收到的識別碼來區分當前連接的主機系統類型;最后設備設置當前主機系統的系統類型。
3、利用scsi指令是通過在彈出光盤的時候對于不同的操作系統預先定義好不同的切換指令,然后用戶手動發送scsi指令給設備,設備解析收到的scsi指令,最后獲取到設備連接的主機系統類型。
4、采用微軟擴展的mods消息是通過設備依據windows系統會下發mods消息給支持mods的設備,其它系統不會下發mods消息給設備,從而識別出主機操作系統。
5、但是現有技術中的識別方法存在著不同的缺陷,
6、其中,在主機系統上安裝usb設備過濾驅動的方法,用戶需在主機安裝對應的usb設備過濾驅動,對用戶來說使用效果不佳,占用主機內存空間。對于usb設備過濾驅動來說,廠商需提供相應的設備驅動,用戶需要在主機系統上安裝,用戶每使用一臺新的主機系統設備,都需要重新安裝usb設備過濾驅動,導
7、利用scsi指令的方法,設備需要自帶光盤功能,用戶需要手動設置主機系統類型。對于scsi指令而言,由于設備增加了scsi指令,從而需要設備增加光盤功能,用戶每次都需要手動設置主機系統發送給設備。
8、采用微軟擴展的mods消息的方法,設備無法識別linux系統和macos系統,設備需要支持mods消息。由于微軟擴展的mods消息是windows系統下發給支持mods消息的設備的,故設備需支持特定的mods消息,設備才可以識別windows系統,和非windows系統,但設備卻無法區分linux系統和mac系統。
技術實現思路
1、本申請的目的,在于提供usb設備自動識別主機系統的方法、裝置、系統及存儲介質,通過獲取usb設備枚舉的信息數據得到變量成員信息,根據不同的變量成員信息并通過對不同變量成員信息進行賦值比對實現識別多種主機系統。
2、為了達成上述目的,本申請的解決方案是:
3、第一方面,本申請實施例提供了一種usb設備自動識別主機系統的方法,包括:
4、獲取usb設備枚舉的信息數據;
5、根據usb設備枚舉的信息數據得到結構體中的變量成員信息,根據結構體中的變量成員信息是否滿足預設條件對主機系統進行識別;
6、根據本申請實施例的上述方法,還可以具有以下附加技術特征:
7、其中,變量成員信息包括第一變量成員、第二變量成員、第三變量成員和第四變量成員;預設條件包括第一預設條件和第二預設條件;主機系統包括第一系統、第二系統和第三系統;
8、根據第一變量成員和第二變量成員是否滿足第一預設條件判斷主機系統是否為第一系統,根據第三變量成員和第四變量成員是否滿足第二預設條件判斷主機系統是否為第二系統和第三系統,識別方法如下:若第一變量成員和第二變量成員不滿足第一預設條件,則識別主機系統為第一系統,若第一變量成員和第二變量成員滿足第一預設條件,則判斷第三變量成員和第四變量成員是否滿足第二預設條件,若第三變量成員和第四變量成員不滿足第二預設條件,則識別主機系統為第二系統,若第三變量成員和第四變量成員滿足第二預設條件,則識別主機系統為第三系統。
9、進一步的,變量成員信息還包括第五變量成員、第六變量成員、計數值和變量成員數組,計數值包括總計數值、第一計數值和第二計數值;變量成員數組的變量成員數量等于總計數值;預設條件還包括第三預設條件;第三系統包括第一子系統和第二子系統;根據第一計數值和第二計數值是否滿足第三預設條件判斷主機系統是否為第一子系統和第二子系統,識別方法如下:若第一計數值和第二計數值不滿足第三預設條件,則識別主機系統為第一子系統,若第一計數值和第二計數值滿足第三預設條件,則識別主機系統為第二子系統;其中,第一計數值為對變量成員數組中的變量成員第一次進行賦值為1時的總計數值,第二計數值為對變量成員數組中的變量成員最后一次進行賦值為1時的總計數值。
10、進一步的,獲取usb設備枚舉的信息數據,開始獲取的判斷方法如下:判斷信息數據中數據包的地址是否符合預先分配的新地址,若符合,則開始獲取usb設備枚舉的信息數據;對符合預先分配的新地址的數據包進行初始化結構體變量操作和對結構體中的變量成員進行賦值操作。
11、進一步的,對符合預先分配的新地址的數據包進行初始化結構體變量操作和對結構體中的變量成員進行賦值操作,操作方法包括:若信息數據中數據包的地址符合預先分配的新地址,則初始化結構體變量,對第五變量成員賦值為1、對總計數值加1。
12、進一步的,操作方法還包括:判斷數據包中的wlength字段是否為255,并且是第一次接收到wlength字段為255的數據包;若是則對第一變量成員賦值為1,對第三變量成員賦值為第一次接收到wlength字段為255的數據包時的總計數值;若不是則判斷數據包中的wlength字段是否為9,并且是第一次接收到wlength字段為9的數據包;若是則對第二變量成員賦值為1,對第四變量成員賦值為第一次接收到wlength字段為9的數據包時的總計數值;
13、判斷數據包中的wvalue字段是否為預先設定的協議號;若是則對變量成員數組中第總計數值個變量成員賦值為1。
14、進一步的,獲取usb設備枚舉的信息數據,結束獲取的判斷方法如下:判斷是否接收到預先設定的設置配置數據包;若接收到預先設定的設置配置數據包,則停止獲取usb設備枚舉的信息數據,對第五變量成員賦值為0,對第六變量成員賦值為1,若沒有接收到預先設定的設置配置數據包,則繼續獲取usb設備枚舉的信息數據。
15、進一步的,第一預設條件為第一變量成員賦值為1且第二變量成員賦值為1;第二預設條件為第三變量成員賦值小于第四變量成員賦值;第三預設條件為第二計數值與第一計數值的差值。
16、第二方面,本申請實施例提供了一種usb設備自動識別主機系統的裝置,包括:
17、數據獲取模塊,被配置為用于獲取usb設備枚舉的信息數據;
18、數據處理模塊,被配置為用于對所獲取的usb設備枚舉的信息數據進行處理,得到結構體中的變量成員信息,變量成員信息包括第一變量成員、第二變量成員、第三變量成員、第四變量成員第五變量成員、第六變量成員、計數值和變量成員數組;
19、系統識別模塊本文檔來自技高網...
【技術保護點】
1.一種USB設備自動識別主機系統的方法,其特征在于,所述方法包括:
2.如權利要求1所述的USB設備自動識別主機系統的方法,其特征在于,所述變量成員信息還包括第五變量成員、第六變量成員、計數值和變量成員數組,所述計數值包括總計數值、第一計數值和第二計數值;所述變量成員數組的變量成員數量等于所述總計數值;所述預設條件還包括第三預設條件;所述第三系統包括第一子系統和第二子系統;根據所述第一計數值和所述第二計數值是否滿足第三預設條件判斷所述主機系統是否為所述第一子系統和所述第二子系統,所述識別方法如下:若所述第一計數值和所述第二計數值不滿足所述第三預設條件,則識別所述主機系統為所述第一子系統,若所述第一計數值和所述第二計數值滿足所述第三預設條件,則識別所述主機系統為所述第二子系統;其中,所述第一計數值為對所述變量成員數組中的變量成員第一次進行賦值為1時的總計數值,所述第二計數值為對所述變量成員數組中的變量成員最后一次進行賦值為1時的總計數值。
3.如權利要求2所述的USB設備自動識別主機系統的方法,其特征在于,所述獲取USB設備枚舉的信息數據,開始獲取的判斷方
4.如權利要求3所述的USB設備自動識別主機系統的方法,其特征在于,所述對符合預先分配的新地址的數據包進行初始化結構體變量操作和對結構體中的變量成員進行賦值操作,所述操作方法包括:若所述信息數據中數據包的地址符合預先分配的新地址,則初始化結構體變量,對所述第五變量成員賦值為1、對所述總計數值加1。
5.如權利要求4所述的USB設備自動識別主機系統的方法,其特征在于,所述操作方法還包括:判斷所述數據包中的wLength字段是否為255,并且是第一次接收到wLength字段為255的數據包;若是則對所述第一變量成員賦值為1,對所述第三變量成員賦值為第一次接收到wLength字段為255的數據包時的總計數值;若不是則判斷所述數據包中的wLength字段是否為9,并且是第一次接收到wLength字段為9的數據包;若是則對所述第二變量成員賦值為1,對所述第四變量成員賦值為第一次接收到wLength字段為9的數據包時的總計數值;
6.如權利要求5所述的USB設備自動識別主機系統的方法,其特征在于,所述獲取USB設備枚舉的信息數據,結束獲取的判斷方法如下:判斷是否接收到預先設定的設置配置數據包;若接收到所述預先設定的設置配置數據包,則停止獲取所述USB設備枚舉的信息數據,對所述第五變量成員賦值為0,對所述第六變量成員賦值為1,若沒有接收到所述預先設定的設置配置數據包,則繼續獲取所述USB設備枚舉的信息數據。
7.如權利要求6所述的USB設備自動識別主機系統的方法,其特征在于,所述第一預設條件為所述第一變量成員賦值為1且所述第二變量成員賦值為1;所述第二預設條件為所述第三變量成員賦值小于所述第四變量成員賦值;所述第三預設條件為所述第二計數值與所述第一計數值的差值。
8.一種USB設備自動識別主機系統的裝置,其特征在于,所述裝置包括:
9.一種USB設備自動識別主機系統的系統,所述系統包括處理器和存儲器,所述存儲器中存儲有計算機程序,其特征在于,所述計算機程序由所述處理器加載并執行,以實現如權利要求1至7任一項所述的USB設備自動識別主機系統的方法。
10.一種計算機可讀存儲介質,所述存儲介質中存儲有計算機程序,其特征在于,所述計算機程序被處理器執行時,用于實現如權利要求1至7任一項所述的USB設備自動識別主機系統的方法。
...【技術特征摘要】
1.一種usb設備自動識別主機系統的方法,其特征在于,所述方法包括:
2.如權利要求1所述的usb設備自動識別主機系統的方法,其特征在于,所述變量成員信息還包括第五變量成員、第六變量成員、計數值和變量成員數組,所述計數值包括總計數值、第一計數值和第二計數值;所述變量成員數組的變量成員數量等于所述總計數值;所述預設條件還包括第三預設條件;所述第三系統包括第一子系統和第二子系統;根據所述第一計數值和所述第二計數值是否滿足第三預設條件判斷所述主機系統是否為所述第一子系統和所述第二子系統,所述識別方法如下:若所述第一計數值和所述第二計數值不滿足所述第三預設條件,則識別所述主機系統為所述第一子系統,若所述第一計數值和所述第二計數值滿足所述第三預設條件,則識別所述主機系統為所述第二子系統;其中,所述第一計數值為對所述變量成員數組中的變量成員第一次進行賦值為1時的總計數值,所述第二計數值為對所述變量成員數組中的變量成員最后一次進行賦值為1時的總計數值。
3.如權利要求2所述的usb設備自動識別主機系統的方法,其特征在于,所述獲取usb設備枚舉的信息數據,開始獲取的判斷方法如下:判斷所述信息數據中數據包的地址是否符合預先分配的新地址,若符合,則開始獲取所述usb設備枚舉的信息數據;對符合預先分配的新地址的數據包進行初始化結構體變量操作和對結構體中的變量成員進行賦值操作。
4.如權利要求3所述的usb設備自動識別主機系統的方法,其特征在于,所述對符合預先分配的新地址的數據包進行初始化結構體變量操作和對結構體中的變量成員進行賦值操作,所述操作方法包括:若所述信息數據中數據包的地址符合預先分配的新地址,則初始化結構體變量,對所述第五變量成員賦值為1、對所述總計數值加1。
5.如權利要求4所述的usb設備自動識別主機系統的方法,其特征在于,所述操作方法還包括:...
【專利技術屬性】
技術研發人員:趙樹贊,宋成飛,潘建林,
申請(專利權)人:思必馳科技股份有限公司,
類型:發明
國別省市:
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。