Fat32格式的usb設(shè)備重定向后的數(shù)據(jù)讀取方法和系統(tǒng)的制作方法
【專(zhuān)利摘要】一種FAT32格式的USB設(shè)備重定向后的文件分配表讀取方法,包括以下步驟:接收USB設(shè)備驅(qū)動(dòng)的讀取USB設(shè)備的文件分配表的數(shù)據(jù)請(qǐng)求;修改數(shù)據(jù)請(qǐng)求以增加所述數(shù)據(jù)請(qǐng)求中請(qǐng)求的數(shù)據(jù)量;將修改后的所述數(shù)據(jù)請(qǐng)求發(fā)送給USB設(shè)備接入端;接收USB設(shè)備接入端返回的文件分配表數(shù)據(jù);將文件分配表數(shù)據(jù)進(jìn)行緩存;當(dāng)所述USB設(shè)備驅(qū)動(dòng)請(qǐng)求的文件分配表數(shù)據(jù)存儲(chǔ)于緩存中時(shí),從緩存中讀取數(shù)據(jù)并回復(fù)USB設(shè)備驅(qū)動(dòng)。上述方法可減少USB設(shè)備重定向端與USB設(shè)備接入端之間的通信交互,縮短USB設(shè)備重定向端讀取到FAT32格式的USB設(shè)備的文件分配表的時(shí)間。此外,還提供一種FAT32格式的USB設(shè)備重定向后的文件分配表讀取系統(tǒng)。
【專(zhuān)利說(shuō)明】FAT32格式的USB設(shè)備重定向后的數(shù)據(jù)讀取方法和系統(tǒng)
【【技術(shù)領(lǐng)域】】
[0001]本發(fā)明涉及網(wǎng)絡(luò)及計(jì)算機(jī)【技術(shù)領(lǐng)域】,特別涉及一種FAT32格式的USB設(shè)備重定向后的文件分配表讀取方法和系統(tǒng)。
【【背景技術(shù)】】
[0002]USB重定向技術(shù)根據(jù)USB規(guī)范將接入到一臺(tái)計(jì)算機(jī)的USB設(shè)備重定向到另一臺(tái)計(jì)算機(jī),由另一臺(tái)計(jì)算機(jī)計(jì)算USB設(shè)備的數(shù)據(jù),而第一臺(tái)計(jì)算機(jī)只負(fù)責(zé)界面顯示。例如,VDI(Virtual Desktop Infrastructure,虛擬桌面基礎(chǔ)架構(gòu))環(huán)境中,采用“集中計(jì)算,分布顯示”的原則,通過(guò)虛擬化技術(shù),將所有客戶(hù)端的運(yùn)算合為一體,在數(shù)據(jù)處理中心內(nèi)進(jìn)行集中處理;而客戶(hù)端僅負(fù)責(zé)輸入輸出與界面顯示,不參與任何計(jì)算。在VDI環(huán)境中,當(dāng)客戶(hù)端計(jì)算機(jī)接入U(xiǎn)SB設(shè)備時(shí),則需要采用USB重定向技術(shù)將USB設(shè)備重定向到用于數(shù)據(jù)處理的服務(wù)器。
[0003]USB設(shè)備驅(qū)動(dòng)用于按照USB存儲(chǔ)設(shè)備傳輸協(xié)議(例如BOT協(xié)議,即BuIk OnlyTransport協(xié)議)解析USB設(shè)備存儲(chǔ)的數(shù)據(jù)(以下簡(jiǎn)稱(chēng)USB數(shù)據(jù))。不同的USB設(shè)備對(duì)應(yīng)不同的USB設(shè)備驅(qū)動(dòng)。
[0004]在USB重定向技術(shù)中,接入U(xiǎn)SB設(shè)備的計(jì)算機(jī)(以下稱(chēng)為USB設(shè)備接入端)不需要安裝USB設(shè)備驅(qū)動(dòng),而是由負(fù)責(zé)數(shù)據(jù)處理的計(jì)算機(jī)(以下稱(chēng)為USB設(shè)備重定向端,也可稱(chēng)為服務(wù)端)安裝USB設(shè)備驅(qū)動(dòng)。USB設(shè)備接入端中由USB數(shù)據(jù)讀寫(xiě)收發(fā)驅(qū)動(dòng)對(duì)USB數(shù)據(jù)進(jìn)行讀寫(xiě)、將USB數(shù)據(jù)發(fā)送給USB設(shè)備重定向端并處理USB設(shè)備重定向端的USB數(shù)據(jù)請(qǐng)求(包括對(duì)USB數(shù)據(jù)的讀請(qǐng)求和寫(xiě)請(qǐng)求等)。USB設(shè)備重定向端中,文件系統(tǒng)驅(qū)動(dòng)與文件系統(tǒng)協(xié)同工作來(lái)處理文件I/O操作,將USB數(shù)據(jù)請(qǐng)求發(fā)送給USB設(shè)備驅(qū)動(dòng)。USB設(shè)備重定向端的USB設(shè)備驅(qū)動(dòng)將USB數(shù)據(jù)請(qǐng)求發(fā)送給USB設(shè)備重定向端的虛擬USB設(shè)備(也稱(chēng)為虛擬總線(xiàn)),由虛擬USB設(shè)備將USB數(shù)據(jù)請(qǐng)求發(fā)送給USB設(shè)備接入端的USB數(shù)據(jù)讀寫(xiě)收發(fā)驅(qū)動(dòng),當(dāng)接收到USB設(shè)備接入端的USB數(shù)據(jù)讀寫(xiě)收發(fā)驅(qū)動(dòng)發(fā)送的USB數(shù)據(jù)時(shí),虛擬USB設(shè)備將USB數(shù)據(jù)傳輸給USB設(shè)備驅(qū)動(dòng),USB設(shè)備驅(qū)動(dòng)解析USB數(shù)據(jù)后,將USB數(shù)據(jù)傳輸給文件系統(tǒng)驅(qū)動(dòng)。
[0005]Windows系統(tǒng)的文件系統(tǒng)驅(qū)動(dòng)在讀取FAT32格式的USB數(shù)據(jù)時(shí),一次至多只請(qǐng)求4K數(shù)據(jù),而每次數(shù)據(jù)請(qǐng)求都至少要經(jīng)歷一次USB設(shè)備接入端與USB設(shè)備重定向端之間的通信交互,若再加上讀取數(shù)據(jù)前測(cè)試數(shù)據(jù)是否有效及讀完數(shù)據(jù)后報(bào)告狀態(tài)這兩個(gè)過(guò)程,則每次數(shù)據(jù)請(qǐng)求要經(jīng)歷三次USB設(shè)備接入端與USB設(shè)備重定向端之間的通信交互。
[0006]USB設(shè)備接入端的FAT32格式的USB設(shè)備重定向到USB設(shè)備重定向端后,USB設(shè)備重定向端需要讀取USB設(shè)備引導(dǎo)區(qū)和文件分配表區(qū)的數(shù)據(jù)以得到USB設(shè)備的基本信息。而FAT32格式的USB設(shè)備的文件分配表的數(shù)據(jù)量比較大,其與USB設(shè)備的容量有關(guān),一個(gè)容量為4G的USB設(shè)備的文件分配表的數(shù)據(jù)量大小為4M。USB設(shè)備重定向端向USB設(shè)備接入端每次請(qǐng)求的數(shù)據(jù)量小,導(dǎo)致USB設(shè)備重定向端讀取USB設(shè)備的文件分配表時(shí)需要與USB設(shè)備接入端之間進(jìn)行頻繁的通信交互,從而延長(zhǎng)了 USB設(shè)備重定向端讀取到文件分配表所需的時(shí)間。【
【發(fā)明內(nèi)容】
】
[0007]基于此,有必要提供一種FAT32格式的USB設(shè)備重定向后的數(shù)據(jù)讀取方法和系統(tǒng),可縮短USB設(shè)備重定向端讀取到FAT32格式的USB設(shè)備的文件分配表的時(shí)間。
[0008]一種FAT32格式的USB設(shè)備重定向后的文件分配表讀取方法,包括以下步驟:
[0009]接收USB設(shè)備驅(qū)動(dòng)的讀取USB設(shè)備的文件分配表的數(shù)據(jù)請(qǐng)求;
[0010]修改所述數(shù)據(jù)請(qǐng)求以增加所述數(shù)據(jù)請(qǐng)求中請(qǐng)求的數(shù)據(jù)量;
[0011 ] 將修改后的所述數(shù)據(jù)請(qǐng)求發(fā)送給USB設(shè)備接入端;
[0012]接收USB設(shè)備接入端返回的文件分配表數(shù)據(jù);
[0013]將文件分配表數(shù)據(jù)進(jìn)行緩存;
[0014]當(dāng)所述USB設(shè)備驅(qū)動(dòng)請(qǐng)求的文件分配表數(shù)據(jù)存儲(chǔ)于緩存中時(shí),從緩存中讀取數(shù)據(jù)并回復(fù)USB設(shè)備驅(qū)動(dòng)。
[0015]在其中一個(gè)實(shí)施例中,所述方法包括以下步驟:
[0016]接收USB設(shè)備驅(qū)動(dòng)的USB數(shù)據(jù)請(qǐng)求,判斷所述USB數(shù)據(jù)請(qǐng)求是否為讀取USB設(shè)備的文件分配表的數(shù)據(jù)請(qǐng)求;
[0017]在接收到USB設(shè)備驅(qū)動(dòng)的讀取USB設(shè)備的文件分配表的數(shù)據(jù)請(qǐng)求之后,執(zhí)行所述接收USB設(shè)備驅(qū)動(dòng)的讀取USB設(shè)備的文件分配表的數(shù)據(jù)請(qǐng)求之后的步驟。
[0018]在其中一個(gè)實(shí)施例中,所述方法包括以下步驟:
[0019]在第一次接收到USB設(shè)備驅(qū)動(dòng)的讀取USB設(shè)備的文件分配表的數(shù)據(jù)請(qǐng)求之后,申請(qǐng)并開(kāi)啟用于緩存文件分配表的緩存空間;
[0020]在USB設(shè)備驅(qū)動(dòng)將USB設(shè)備的文件分配表讀取完畢之后,關(guān)閉所述緩存空間;
[0021]所述將文件分配表數(shù)據(jù)進(jìn)行緩存的步驟為:將所述文件分配表數(shù)據(jù)保存到所述緩存空間。
[0022]在其中一個(gè)實(shí)施例中,所述方法包括以下步驟:
[0023]判斷所述USB設(shè)備驅(qū)動(dòng)請(qǐng)求的文件分配表數(shù)據(jù)是否存儲(chǔ)于所述緩存空間中;
[0024]若所述USB設(shè)備驅(qū)動(dòng)請(qǐng)求的文件分配表數(shù)據(jù)未存儲(chǔ)于所述緩存空間中,執(zhí)行所述修改所述數(shù)據(jù)請(qǐng)求以增加所述數(shù)據(jù)請(qǐng)求中請(qǐng)求的數(shù)據(jù)量的步驟。
[0025]在其中一個(gè)實(shí)施例中,所述修改所述數(shù)據(jù)請(qǐng)求的步驟還包括:在所述數(shù)據(jù)請(qǐng)求中添加數(shù)據(jù)需緩存的標(biāo)記;
[0026]所述方法包括步驟:
[0027]判斷USB設(shè)備接入端返回的USB數(shù)據(jù)中是否包含數(shù)據(jù)需緩存的標(biāo)記;
[0028]若USB設(shè)備接入端返回的USB數(shù)據(jù)中包含數(shù)據(jù)需緩存的標(biāo)記,將所述USB數(shù)據(jù)保存到所述緩存空間。
[0029]一種FAT32格式的USB設(shè)備重定向后的數(shù)據(jù)讀取系統(tǒng),包括:
[0030]請(qǐng)求接收模塊,用于接收USB設(shè)備驅(qū)動(dòng)的讀取USB設(shè)備的文件分配表的數(shù)據(jù)請(qǐng)求;
[0031]請(qǐng)求修改模塊,用于修改所述數(shù)據(jù)請(qǐng)求以增加所述數(shù)據(jù)請(qǐng)求中請(qǐng)求的數(shù)據(jù)量;
[0032]請(qǐng)求發(fā)送模塊,用于將修改后的所述數(shù)據(jù)請(qǐng)求發(fā)送給USB設(shè)備接入端;
[0033]數(shù)據(jù)接收模塊,用于接收USB設(shè)備接入端返回的文件分配表數(shù)據(jù);[0034]數(shù)據(jù)緩存模塊,用于將文件分配表數(shù)據(jù)進(jìn)行緩存;
[0035]請(qǐng)求回復(fù)模塊,用于當(dāng)所述USB設(shè)備驅(qū)動(dòng)請(qǐng)求的文件分配表數(shù)據(jù)存儲(chǔ)于緩存中時(shí),從緩存中讀取數(shù)據(jù)并回復(fù)USB設(shè)備驅(qū)動(dòng)。
[0036]在其中一個(gè)實(shí)施例中,所述請(qǐng)求接收模塊用于接收USB設(shè)備驅(qū)動(dòng)的USB數(shù)據(jù)請(qǐng)求;
[0037]所述系統(tǒng)還包括請(qǐng)求判斷模塊,用于判斷所述USB數(shù)據(jù)請(qǐng)求是否為讀取USB設(shè)備的文件分配表的數(shù)據(jù)請(qǐng)求;
[0038]所述請(qǐng)求修改模塊用于在接收到USB設(shè)備驅(qū)動(dòng)的讀取USB設(shè)備的文件分配表的數(shù)據(jù)請(qǐng)求之后,修改所述數(shù)據(jù)請(qǐng)求以增加所述數(shù)據(jù)請(qǐng)求中請(qǐng)求的數(shù)據(jù)量。
[0039]在其中一個(gè)實(shí)施例中,所述系統(tǒng)還包括緩存開(kāi)啟模塊,用于在第一次接收到USB設(shè)備驅(qū)動(dòng)的讀取USB設(shè)備的文件分配表的數(shù)據(jù)請(qǐng)求之后,申請(qǐng)并開(kāi)啟用于緩存文件分配表的緩存空間;
[0040]所述數(shù)據(jù)緩存模塊用于將所述文件分配表數(shù)據(jù)保存到所述緩存空間;
[0041]所述系統(tǒng)還包括緩存關(guān)閉模塊,用于在USB設(shè)備驅(qū)動(dòng)將USB設(shè)備的文件分配表讀取完畢之后,關(guān)閉所述緩存空間。
[0042]在其中一個(gè)實(shí)施例中,所述系統(tǒng)還包括已緩存判斷模塊,用于判斷所述USB設(shè)備驅(qū)動(dòng)請(qǐng)求的文件分配表數(shù)據(jù)是否存儲(chǔ)于所述緩存空間中;
[0043]所述請(qǐng)求修改模塊用于若所述USB設(shè)備驅(qū)動(dòng)請(qǐng)求的文件分配表數(shù)據(jù)未存儲(chǔ)于所述緩存空間中,修改所述數(shù)據(jù)請(qǐng)求以增加所述數(shù)據(jù)請(qǐng)求中請(qǐng)求的數(shù)據(jù)量。
[0044]在其中一個(gè)實(shí)施例中,所述請(qǐng)求修改模塊修改所述數(shù)據(jù)請(qǐng)求的過(guò)程還包括在所述數(shù)據(jù)請(qǐng)求中添加數(shù)據(jù)需緩存的標(biāo)記;
[0045]所述系統(tǒng)還包括需緩存判斷模塊,用于判斷USB設(shè)備接入端返回的USB數(shù)據(jù)中是否包含數(shù)據(jù)需緩存的標(biāo)記;
[0046]所述數(shù)據(jù)緩存模塊用于若USB設(shè)備接入端返回的USB數(shù)據(jù)中包含數(shù)據(jù)需緩存的標(biāo)記,將所述USB數(shù)據(jù)保存到所述緩存空間。
[0047]由于USB設(shè)備驅(qū)動(dòng)從文件系統(tǒng)驅(qū)動(dòng)接收USB數(shù)據(jù)請(qǐng)求,而文件系統(tǒng)驅(qū)動(dòng)在讀取FAT32格式的USB數(shù)據(jù)時(shí)一次至多只請(qǐng)求4K數(shù)據(jù),因此USB設(shè)備驅(qū)動(dòng)的讀取USB設(shè)備的文件分配表的數(shù)據(jù)請(qǐng)求所請(qǐng)求的數(shù)據(jù)至多只有4K,上述FAT32格式的USB設(shè)備重定向后的文件分配表讀取方法和系統(tǒng),在接收到USB設(shè)備驅(qū)動(dòng)的讀取USB設(shè)備的文件分配表的數(shù)據(jù)請(qǐng)求之后,增加了數(shù)據(jù)請(qǐng)求中請(qǐng)求的數(shù)據(jù)量,在接收到USB設(shè)備接入端返回的文件分配表數(shù)據(jù)后,將文件分配表數(shù)據(jù)進(jìn)行緩存,當(dāng)下一次USB設(shè)備驅(qū)動(dòng)請(qǐng)求的文件分配表數(shù)據(jù)存儲(chǔ)于緩存中時(shí),直接從緩存中讀取數(shù)據(jù)回復(fù)USB設(shè)備驅(qū)動(dòng)即可,由于USB設(shè)備重定向后的初始階段,USB設(shè)備驅(qū)動(dòng)對(duì)文件分 配表數(shù)據(jù)是順序讀取的,因此緩存命中率極高,從而可減少USB設(shè)備重定向端與USB設(shè)備接入端之間的通信交互,縮短USB設(shè)備重定向端讀取到FAT32格式的USB設(shè)備的文件分配表的時(shí)間。
【【專(zhuān)利附圖】
【附圖說(shuō)明】】
[0048]圖1為一個(gè)實(shí)施例中的FAT32格式的USB設(shè)備重定向后的文件分配表讀取方法的流程示意圖;[0049]圖2A為一個(gè)實(shí)施例中處理USB設(shè)備驅(qū)動(dòng)的USB數(shù)據(jù)請(qǐng)求的過(guò)程的流程示意圖;
[0050]圖2B為一個(gè)實(shí)施例中處理USB設(shè)備接入端返回的USB數(shù)據(jù)的過(guò)程的流程示意圖;
[0051]圖3為一個(gè)實(shí)施例中的FAT32格式的USB設(shè)備重定向后的文件分配表讀取系統(tǒng)的結(jié)構(gòu)示意圖;
[0052]圖4為一個(gè)實(shí)施例中的FAT32格式的USB設(shè)備重定向后的文件分配表讀取系統(tǒng)的結(jié)構(gòu)示意圖;
[0053]圖5為一個(gè)實(shí)施例中的FAT32格式的USB設(shè)備重定向后的文件分配表讀取系統(tǒng)的結(jié)構(gòu)示意圖;
[0054]圖6為一個(gè)實(shí)施例中的FAT32格式的USB設(shè)備重定向后的文件分配表讀取系統(tǒng)的結(jié)構(gòu)示意圖;
[0055]圖7為一個(gè)實(shí)施例中的FAT32格式的USB設(shè)備重定向后的文件分配表讀取系統(tǒng)的結(jié)構(gòu)示意圖;
[0056]圖8為一個(gè)實(shí)施例中的FAT32格式的USB設(shè)備重定向后的文件分配表讀取系統(tǒng)的結(jié)構(gòu)示意圖;
[0057]圖9A為一個(gè)實(shí)施例中USB請(qǐng)求處理模塊的結(jié)構(gòu)示意圖;
[0058]圖9B為一個(gè)實(shí)施例中USB數(shù)據(jù)處理模塊的結(jié)構(gòu)示意圖。
【【具體實(shí)施方式】】
[0059]如圖1所示,在一個(gè)實(shí)施例中,一種FAT32格式的USB設(shè)備重定向后的文件分配表讀取方法,包括以下步驟:
[0060]步驟S101,接收USB設(shè)備驅(qū)動(dòng)的讀取USB設(shè)備的文件分配表的數(shù)據(jù)請(qǐng)求。
[0061]在一個(gè)實(shí)施例中,上述FAT32格式的USB設(shè)備重定向后的文件分配表讀取方法,包括以下步驟:
[0062]接收USB設(shè)備驅(qū)動(dòng)的USB數(shù)據(jù)請(qǐng)求,判斷USB數(shù)據(jù)請(qǐng)求是否為讀取USB設(shè)備的文件分配表的數(shù)據(jù)請(qǐng)求;在接收到USB設(shè)備驅(qū)動(dòng)的讀取USB設(shè)備的文件分配表的數(shù)據(jù)請(qǐng)求之后,執(zhí)行步驟SlOl之后的步驟。
[0063]可在USB設(shè)備的第一個(gè)扇區(qū)即引導(dǎo)扇區(qū)讀取USB設(shè)備的文件分配表的偏移地址和長(zhǎng)度。當(dāng)接收到USB設(shè)備驅(qū)動(dòng)的USB數(shù)據(jù)請(qǐng)求時(shí),可解析USB數(shù)據(jù)請(qǐng)求的命令類(lèi)型及命令請(qǐng)求的數(shù)據(jù)的偏移地址和長(zhǎng)度,根據(jù)請(qǐng)求的數(shù)據(jù)的偏移地址和長(zhǎng)度以及文件分配表的偏移地址和長(zhǎng)度計(jì)算出請(qǐng)求的數(shù)據(jù)是否為文件分配表數(shù)據(jù)。若命令類(lèi)型為讀類(lèi)型,且請(qǐng)求的數(shù)據(jù)為文件分配表數(shù)據(jù),則可判定USB數(shù)據(jù)請(qǐng)求為讀取USB設(shè)備的文件分配表的數(shù)據(jù)請(qǐng)求。
[0064]步驟S102,修改數(shù)據(jù)請(qǐng)求以增加數(shù)據(jù)請(qǐng)求中請(qǐng)求的數(shù)據(jù)量。
[0065]可增加請(qǐng)求的數(shù)據(jù)量到萬(wàn)級(jí)以上字節(jié)。
[0066]步驟S103,將修改后的數(shù)據(jù)請(qǐng)求發(fā)送給USB設(shè)備接入端。
[0067]步驟S104,接收USB設(shè)備接入端返回的文件分配表數(shù)據(jù)。
[0068]步驟S105,將文件分配表數(shù)據(jù)進(jìn)行緩存。
[0069]步驟S106,當(dāng)USB設(shè)備驅(qū)動(dòng)請(qǐng)求的文件分配表數(shù)據(jù)存儲(chǔ)于緩存中時(shí),從緩存中讀取數(shù)據(jù)并回復(fù)USB設(shè)備驅(qū)動(dòng)。
[0070] 在一個(gè)實(shí)施例中,上述FAT32格式的USB設(shè)備重定向后的文件分配表讀取方法包括以下步驟:
[0071]在第一次接收到USB設(shè)備驅(qū)動(dòng)的讀取USB設(shè)備的文件分配表的數(shù)據(jù)請(qǐng)求之后,申請(qǐng)并開(kāi)啟用于緩存文件分配表的緩存空間。
[0072]在USB設(shè)備驅(qū)動(dòng)將USB設(shè)備的文件分配表讀取完畢之后,關(guān)閉緩存空間。
[0073]本實(shí)施例中,步驟S105可將文件分配表數(shù)據(jù)保存到開(kāi)啟的緩存空間。
[0074]在一個(gè)實(shí)施例中,上述FAT32格式的USB設(shè)備重定向后的文件分配表讀取方法包括以下步驟:
[0075]判斷USB設(shè)備驅(qū)動(dòng)請(qǐng)求的文件分配表數(shù)據(jù)是否存儲(chǔ)于緩存空間中;
[0076]若USB設(shè)備驅(qū)動(dòng)請(qǐng)求的文件分配表數(shù)據(jù)未存儲(chǔ)于緩存空間中,再執(zhí)行步驟S102。
[0077]在一個(gè)實(shí)施例中,上述修改數(shù)據(jù)請(qǐng)求的步驟還包括:在數(shù)據(jù)請(qǐng)求中添加數(shù)據(jù)需緩存的標(biāo)記;
[0078]上述FAT32格式的USB設(shè)備重定向后的文件分配表讀取方法包括以下步驟:
[0079]判斷USB設(shè)備接入端返回的USB數(shù)據(jù)中是否包含數(shù)據(jù)需緩存的標(biāo)記;
[0080]若USB設(shè)備接入端返回的USB數(shù)據(jù)中包含數(shù)據(jù)需緩存的標(biāo)記,將USB數(shù)據(jù)保存到緩存空間。
[0081]USB設(shè)備接入端回復(fù)USB設(shè)備重定向端的數(shù)據(jù)請(qǐng)求的回復(fù)數(shù)據(jù)中,保留有數(shù)據(jù)請(qǐng)求的部分原字段,簡(jiǎn)稱(chēng)為保留字段。可將數(shù)據(jù)需緩存的標(biāo)記添加到數(shù)據(jù)請(qǐng)求中的保留字段中;當(dāng)接收到USB設(shè)備接入端返回的USB數(shù)據(jù)時(shí),可解析USB數(shù)據(jù)中的保留字段,判斷保留字段中是否包含數(shù)據(jù)需緩存的標(biāo)記。
[0082]在一個(gè)實(shí)施例中,一種FAT32格式的USB設(shè)備重定向后的文件分配表讀取方法,包括處理USB設(shè)備驅(qū)動(dòng)的USB數(shù)據(jù)請(qǐng)求的過(guò)程、以及處理USB設(shè)備接入端返回的USB數(shù)據(jù)的過(guò)程。
[0083]如圖2A所示,處理USB設(shè)備驅(qū)動(dòng)的USB數(shù)據(jù)請(qǐng)求的過(guò)程包括以下步驟:
[0084]步驟S201,接收USB設(shè)備驅(qū)動(dòng)的USB數(shù)據(jù)請(qǐng)求。
[0085]步驟S202,判斷USB數(shù)據(jù)請(qǐng)求是否為讀取USB設(shè)備的文件分配表的數(shù)據(jù)請(qǐng)求,并判斷用于緩存文件分配表的緩存空間是否已開(kāi)啟;若USB數(shù)據(jù)請(qǐng)求為讀取USB設(shè)備的文件分配表的數(shù)據(jù)請(qǐng)求,且用于緩存文件分配表的緩存空間未開(kāi)啟,則執(zhí)行步驟S203 ;若USB數(shù)據(jù)請(qǐng)求為讀取USB設(shè)備的文件分配表的數(shù)據(jù)請(qǐng)求,且用于緩存文件分配表的緩存空間已開(kāi)啟,則執(zhí)行步驟S206 ;若USB數(shù)據(jù)請(qǐng)求不是讀取USB設(shè)備的文件分配表的數(shù)據(jù)請(qǐng)求,且用于緩存文件分配表的緩存空間未開(kāi)啟,則執(zhí)行步驟S208 ;若USB數(shù)據(jù)請(qǐng)求不是讀取USB設(shè)備的文件分配表的數(shù)據(jù)請(qǐng)求,且用于緩存文件分配表的緩存空間已開(kāi)啟,則執(zhí)行步驟S209。
[0086]步驟S203,申請(qǐng)并開(kāi)啟用于緩存文件分配表的緩存空間,進(jìn)入步驟S204。
[0087]若接收到的USB數(shù)據(jù)請(qǐng)求為讀取USB設(shè)備的文件分配表的數(shù)據(jù)請(qǐng)求,且用于緩存文件分配表的緩存空間未開(kāi)啟,則說(shuō)明第一次接收到USB設(shè)備驅(qū)動(dòng)的讀取USB設(shè)備的文件分配表的數(shù)據(jù)請(qǐng)求,從而此時(shí)可申請(qǐng)并開(kāi)啟用于緩存文件分配表的緩存空間。
[0088]步驟S204,增加USB數(shù)據(jù)請(qǐng)求中請(qǐng)求的數(shù)據(jù)量,并在USB數(shù)據(jù)請(qǐng)求中添加數(shù)據(jù)需緩存的標(biāo)記,進(jìn)入步驟S205。
[0089]步驟S205,將修改后的USB數(shù)據(jù)請(qǐng)求發(fā)送給USB設(shè)備接入端。
[0090]步驟S206,判斷USB數(shù)據(jù)請(qǐng)求所請(qǐng)求的數(shù)據(jù)是否存儲(chǔ)于緩存空間中,若是,則執(zhí)行步驟S207,若否,則執(zhí)行步驟S204。
[0091]步驟S207,從緩存空間中讀取請(qǐng)求的數(shù)據(jù),將請(qǐng)求的數(shù)據(jù)回復(fù)給USB設(shè)備驅(qū)動(dòng)。
[0092]步驟S208,將USB數(shù)據(jù)請(qǐng)求轉(zhuǎn)發(fā)給USB設(shè)備接入端。
[0093]步驟S209,關(guān)閉用于緩存文件分配表的緩存空間,進(jìn)入步驟S208。
[0094]若USB數(shù)據(jù)請(qǐng)求不是讀取USB設(shè)備的文件分配表的數(shù)據(jù)請(qǐng)求,且用于緩存文件分配表的緩存空間已開(kāi)啟,則說(shuō)明USB設(shè)備驅(qū)動(dòng)已將USB設(shè)備的文件分配表讀取完畢,從而此時(shí)可關(guān)閉用于緩存文件分配表的緩存空間。
[0095]如圖2B所示,處理USB設(shè)備接入端返回的USB數(shù)據(jù)的過(guò)程包括以下步驟:
[0096]步驟S210,接收USB設(shè)備接入端返回的USB數(shù)據(jù)。
[0097]步驟S211,判斷用于緩存文件分配表的緩存空間是否已開(kāi)啟,若是,則執(zhí)行步驟S212,若否,則執(zhí)行步驟S214。
[0098]步驟S212,判斷USB數(shù)據(jù)中是否包含數(shù)據(jù)需緩存的標(biāo)記,若是,則執(zhí)行步驟S213,若否,則執(zhí)行步驟S214。
[0099]步驟S213,將USB數(shù)據(jù)保存到用于緩存文件分配表的緩存空間,并獲取USB設(shè)備驅(qū)動(dòng)的數(shù)據(jù)請(qǐng)求對(duì)應(yīng)的數(shù)據(jù)返回給USB設(shè)備驅(qū)動(dòng)。
[0100]步驟S214,將USB數(shù)據(jù)轉(zhuǎn)發(fā)給USB設(shè)備驅(qū)動(dòng)。
[0101]如圖3所示,在一個(gè)實(shí)施例中,一種FAT32格式的USB設(shè)備重定向后的文件分配表讀取系統(tǒng),包括請(qǐng)求接收模塊301、請(qǐng)求修改模塊302、請(qǐng)求發(fā)送模塊303、數(shù)據(jù)接收模塊304、數(shù)據(jù)緩存模塊305和請(qǐng)求回復(fù)模塊306,其中:
[0102]請(qǐng)求接收模塊301用于接收USB設(shè)備驅(qū)動(dòng)的讀取USB設(shè)備的文件分配表的數(shù)據(jù)請(qǐng)求。
[0103]請(qǐng)求修改模塊302用于修改數(shù)據(jù)請(qǐng)求以增加數(shù)據(jù)請(qǐng)求中請(qǐng)求的數(shù)據(jù)量。
[0104]請(qǐng)求修改模塊302用于修改所述數(shù)據(jù)請(qǐng)求以增加所述數(shù)據(jù)請(qǐng)求中請(qǐng)求的數(shù)據(jù)量,可增加請(qǐng)求的數(shù)據(jù)量到萬(wàn)級(jí)以上字節(jié)。
[0105]在一個(gè)實(shí)施例中,請(qǐng)求接收模塊301用于接收USB設(shè)備驅(qū)動(dòng)的USB數(shù)據(jù)請(qǐng)求;如圖4所示,上述FAT32格式的USB設(shè)備重定向后的文件分配表讀取系統(tǒng)還包括請(qǐng)求判斷模塊402,用于判斷USB數(shù)據(jù)請(qǐng)求是否為讀取USB設(shè)備的文件分配表的數(shù)據(jù)請(qǐng)求;請(qǐng)求修改模塊302在接收到USB設(shè)備驅(qū)動(dòng)的讀取USB設(shè)備的文件分配表的數(shù)據(jù)請(qǐng)求之后,修改數(shù)據(jù)請(qǐng)求以增加數(shù)據(jù)請(qǐng)求中請(qǐng)求的數(shù)據(jù)量。
[0106]本實(shí)施例中,如圖5所示,上述FAT32格式的USB設(shè)備重定向后的文件分配表讀取系統(tǒng)還包括文件分配表地址獲取模塊502,用于在USB設(shè)備的第一個(gè)扇區(qū)即引導(dǎo)扇區(qū)讀取USB設(shè)備的文件分配表的偏移地址和長(zhǎng)度。當(dāng)接收到USB設(shè)備驅(qū)動(dòng)的USB數(shù)據(jù)請(qǐng)求時(shí),請(qǐng)求判斷模塊402可解析USB數(shù)據(jù)請(qǐng)求的命令類(lèi)型及命令請(qǐng)求的數(shù)據(jù)的偏移地址和長(zhǎng)度,根據(jù)請(qǐng)求的數(shù)據(jù)的偏移地址和長(zhǎng)度以及文件分配表的偏移地址和長(zhǎng)度計(jì)算出請(qǐng)求的數(shù)據(jù)是否為文件分配表數(shù)據(jù);若命令類(lèi)型為讀類(lèi)型,且請(qǐng)求的數(shù)據(jù)為文件分配表數(shù)據(jù),則請(qǐng)求判斷模塊402可判定USB數(shù)據(jù)請(qǐng)求為讀取USB設(shè)備的文件分配表的數(shù)據(jù)請(qǐng)求。
[0107]請(qǐng)求發(fā)送模塊303用于將修改后的數(shù)據(jù)請(qǐng)求發(fā)送給USB設(shè)備接入端。
[0108]數(shù)據(jù)接收模塊304用于接收USB設(shè)備接入端返回的文件分配表數(shù)據(jù)。
[0109]數(shù)據(jù)緩存模塊305用于將文件分配表數(shù)據(jù)進(jìn)行緩存。[0110]請(qǐng)求回復(fù)模塊306用于當(dāng)USB設(shè)備驅(qū)動(dòng)請(qǐng)求的文件分配表數(shù)據(jù)存儲(chǔ)于緩存中時(shí),從緩存中讀取數(shù)據(jù)并回復(fù)USB設(shè)備驅(qū)動(dòng)。
[0111]如圖6所示,在一個(gè)實(shí)施例中,上述FAT32格式的USB設(shè)備重定向后的文件分配表讀取系統(tǒng)還包括緩存開(kāi)啟模塊602和緩存關(guān)閉模塊604,其中:緩存開(kāi)啟模塊602用于在第一次接收到USB設(shè)備驅(qū)動(dòng)的讀取USB設(shè)備的文件分配表的數(shù)據(jù)請(qǐng)求之后,申請(qǐng)并開(kāi)啟用于緩存文件分配表的緩存空間。緩存關(guān)閉模塊604用于在USB設(shè)備驅(qū)動(dòng)將USB設(shè)備的文件分配表讀取完畢之后,關(guān)閉緩存空間。
[0112]本實(shí)施例中,數(shù)據(jù)緩存模塊305可將文件分配表數(shù)據(jù)保存到開(kāi)啟的緩存空間。
[0113]在一個(gè)實(shí)施例中,如圖7所不,上述FAT32格式的USB設(shè)備重定向后的文件分配表讀取系統(tǒng)還包括已緩存判斷模塊702,用于判斷USB設(shè)備驅(qū)動(dòng)請(qǐng)求的文件分配表數(shù)據(jù)是否存儲(chǔ)于緩存空間中,請(qǐng)求修改模塊302用于若USB設(shè)備驅(qū)動(dòng)請(qǐng)求的文件分配表數(shù)據(jù)未存儲(chǔ)于緩存空間中,修改數(shù)據(jù)請(qǐng)求以增加數(shù)據(jù)請(qǐng)求中請(qǐng)求的數(shù)據(jù)量。
[0114]在一個(gè)實(shí)施例中,請(qǐng)求修改模塊302修改數(shù)據(jù)請(qǐng)求的過(guò)程還包括在數(shù)據(jù)請(qǐng)求中添加數(shù)據(jù)需緩存的標(biāo)記;如圖8所示,上述FAT32格式的USB設(shè)備重定向后的文件分配表讀取系統(tǒng)還包括需緩存判斷模塊802,用于判斷USB設(shè)備接入端返回的USB數(shù)據(jù)中是否包含數(shù)據(jù)需緩存的標(biāo)記;數(shù)據(jù)緩存模塊305用于若USB設(shè)備接入端返回的USB數(shù)據(jù)中包含數(shù)據(jù)需緩存的標(biāo)記,將USB數(shù)據(jù)保存到緩存空間。
[0115]USB設(shè)備接入端回復(fù)USB設(shè)備重定向端的數(shù)據(jù)請(qǐng)求的回復(fù)數(shù)據(jù)中,保留有數(shù)據(jù)請(qǐng)求的部分原字段,簡(jiǎn)稱(chēng)為保留字段。請(qǐng)求修改模塊302可將數(shù)據(jù)需緩存的標(biāo)記添加到數(shù)據(jù)請(qǐng)求中的保留字段中;當(dāng)接收到USB設(shè)備接入端返回的USB數(shù)據(jù)時(shí),需緩存判斷模塊802可解析USB數(shù)據(jù)中的保留字段,判斷保留字段中是否包含數(shù)據(jù)需緩存的標(biāo)記。
[0116]在一個(gè)實(shí)施例中,一種FAT32格式的USB設(shè)備重定向后的文件分配表讀取系統(tǒng),包括USB請(qǐng)求處理模塊和USB數(shù)據(jù)處理模塊,其中:USB請(qǐng)求處理模塊用于處理USB設(shè)備驅(qū)動(dòng)的USB數(shù)據(jù)請(qǐng)求,USB數(shù)據(jù)處理模塊用于處理USB設(shè)備接入端返回的USB數(shù)據(jù)。
[0117]如圖9A所示,USB請(qǐng)求處理模塊包括請(qǐng)求接收模塊301、請(qǐng)求判斷模塊402、緩存開(kāi)啟狀態(tài)第一判斷模塊901、緩存開(kāi)啟模塊602、請(qǐng)求修改模塊302、請(qǐng)求發(fā)送模塊303、已緩存判斷模塊702、第一請(qǐng)求回復(fù)模塊902、請(qǐng)求轉(zhuǎn)發(fā)模塊903和緩存關(guān)閉模塊604,其中:
[0118]請(qǐng)求接收模塊401用于接收USB設(shè)備驅(qū)動(dòng)的USB數(shù)據(jù)請(qǐng)求。
[0119]請(qǐng)求判斷模塊402用于判斷USB數(shù)據(jù)請(qǐng)求是否為讀取USB設(shè)備的文件分配表的數(shù)據(jù)請(qǐng)求。
[0120]緩存開(kāi)啟狀態(tài)第一判斷模塊901用于判斷用于緩存文件分配表的緩存空間是否已開(kāi)啟。
[0121]緩存開(kāi)啟模塊602用于若USB數(shù)據(jù)請(qǐng)求為讀取USB設(shè)備的文件分配表的數(shù)據(jù)請(qǐng)求,且用于緩存文件分配表的緩存空間未開(kāi)啟,則申請(qǐng)并開(kāi)啟用于緩存文件分配表的緩存空間,通知請(qǐng)求修改模塊405進(jìn)行處理。
[0122]若接收到的USB數(shù)據(jù)請(qǐng)求為讀取USB設(shè)備的文件分配表的數(shù)據(jù)請(qǐng)求,且用于緩存文件分配表的緩存空間未開(kāi)啟,則說(shuō)明第一次接收到USB設(shè)備驅(qū)動(dòng)的讀取USB設(shè)備的文件分配表的數(shù)據(jù)請(qǐng)求,從而此時(shí)緩存開(kāi)啟模塊602可申請(qǐng)并開(kāi)啟用于緩存文件分配表的緩存空間。[0123]請(qǐng)求修改模塊405用于增加USB數(shù)據(jù)請(qǐng)求中請(qǐng)求的數(shù)據(jù)量,并在USB數(shù)據(jù)請(qǐng)求中添加數(shù)據(jù)需緩存的標(biāo)記,并通知請(qǐng)求發(fā)送模塊406進(jìn)行處理。
[0124]請(qǐng)求發(fā)送模塊406用于將修改后的USB數(shù)據(jù)請(qǐng)求發(fā)送給USB設(shè)備接入端。
[0125]已緩存判斷模塊702用于若USB數(shù)據(jù)請(qǐng)求為讀取USB設(shè)備的文件分配表的數(shù)據(jù)請(qǐng)求,且用于緩存文件分配表的緩存空間已開(kāi)啟,則判斷USB數(shù)據(jù)請(qǐng)求所請(qǐng)求的數(shù)據(jù)是否存儲(chǔ)于緩存空間中,若是,則通知第一請(qǐng)求回復(fù)模塊902進(jìn)行處理,若否,則通知請(qǐng)求修改模塊405進(jìn)行處理。
[0126]第一請(qǐng)求回復(fù)模塊902用于從緩存空間中讀取請(qǐng)求的數(shù)據(jù),將請(qǐng)求的數(shù)據(jù)回復(fù)給USB設(shè)備驅(qū)動(dòng)。
[0127]請(qǐng)求轉(zhuǎn)發(fā)模塊903用于若USB數(shù)據(jù)請(qǐng)求不是讀取USB設(shè)備的文件分配表的數(shù)據(jù)請(qǐng)求,且用于緩存文件分配表的緩存空間未開(kāi)啟,則將USB數(shù)據(jù)請(qǐng)求轉(zhuǎn)發(fā)給USB設(shè)備接入端。
[0128]緩存關(guān)閉模塊604用于若USB數(shù)據(jù)請(qǐng)求不是讀取USB設(shè)備的文件分配表的數(shù)據(jù)請(qǐng)求,且用于緩存文件分配表的緩存空間已開(kāi)啟,則關(guān)閉用于緩存文件分配表的緩存空間,通知請(qǐng)求轉(zhuǎn)發(fā)模塊903進(jìn)行處理。
[0129]若USB數(shù)據(jù)請(qǐng)求不是讀取USB設(shè)備的文件分配表的數(shù)據(jù)請(qǐng)求,且用于緩存文件分配表的緩存空間已開(kāi)啟,則說(shuō)明USB設(shè)備驅(qū)動(dòng)已將USB設(shè)備的文件分配表讀取完畢,從而此時(shí)緩存關(guān)閉模塊604可關(guān)閉用于緩存文件分配表的緩存空間。
[0130]如圖9B所示,USB數(shù)據(jù)處理模塊包括數(shù)據(jù)接收模塊304、緩存開(kāi)啟狀態(tài)第二判斷模塊904、需緩存判斷模塊802、數(shù)據(jù)緩存模塊305、第二請(qǐng)求回復(fù)模塊905和數(shù)據(jù)轉(zhuǎn)發(fā)模塊906,其中:
[0131]數(shù)據(jù)接收模塊304用于接收USB設(shè)備接入端返回的USB數(shù)據(jù)。
[0132]緩存開(kāi)啟狀態(tài)第二判斷模塊904用于判斷用于緩存文件分配表的緩存空間是否已開(kāi)啟,若是,則通知需緩存判斷模塊802進(jìn)行處理,若否,則通知數(shù)據(jù)轉(zhuǎn)發(fā)模塊906進(jìn)行處理。
[0133]需緩存判斷模塊802用于判斷USB數(shù)據(jù)中是否包含數(shù)據(jù)需緩存的標(biāo)記,若是,則通知數(shù)據(jù)緩存模塊305進(jìn)行處理,若否,則通知數(shù)據(jù)轉(zhuǎn)發(fā)模塊906進(jìn)行處理。
[0134]數(shù)據(jù)緩存模塊305用于將USB數(shù)據(jù)保存到用于緩存文件分配表的緩存空間,通知第二請(qǐng)求回復(fù)模塊905進(jìn)行處理。
[0135]第二請(qǐng)求回復(fù)模塊905用于獲取USB設(shè)備驅(qū)動(dòng)的數(shù)據(jù)請(qǐng)求對(duì)應(yīng)的數(shù)據(jù)返回給USB設(shè)備驅(qū)動(dòng)。
[0136]數(shù)據(jù)轉(zhuǎn)發(fā)模塊906用于將USB數(shù)據(jù)轉(zhuǎn)發(fā)給USB設(shè)備驅(qū)動(dòng)。
[0137]由于USB設(shè)備驅(qū)動(dòng)從文件系統(tǒng)驅(qū)動(dòng)接收USB數(shù)據(jù)請(qǐng)求,而文件系統(tǒng)驅(qū)動(dòng)在讀取FAT32格式的USB數(shù)據(jù)時(shí)一次至多只請(qǐng)求4K數(shù)據(jù),因此USB設(shè)備驅(qū)動(dòng)的讀取USB設(shè)備的文件分配表的數(shù)據(jù)請(qǐng)求所請(qǐng)求的數(shù)據(jù)至多只有4K,上述FAT32格式的USB設(shè)備重定向后的文件分配表讀取方法和系統(tǒng),在接收到USB設(shè)備驅(qū)動(dòng)的讀取USB設(shè)備的文件分配表的數(shù)據(jù)請(qǐng)求之后,增加了數(shù)據(jù)請(qǐng)求中請(qǐng)求的數(shù)據(jù)量,在接收到USB設(shè)備接入端返回的文件分配表數(shù)據(jù)后,將文件分配表數(shù)據(jù)進(jìn)行緩存,當(dāng)下一次USB設(shè)備驅(qū)動(dòng)請(qǐng)求的文件分配表數(shù)據(jù)存儲(chǔ)于緩存中時(shí),直接從緩存中讀取數(shù)據(jù)回復(fù)USB設(shè)備驅(qū)動(dòng)即可,由于USB設(shè)備重定向后的初始階段,USB設(shè)備驅(qū)動(dòng)對(duì)文件分配表數(shù)據(jù)是順序讀取的,因此緩存命中率極高,從而可減少USB設(shè)備重定向端與USB設(shè)備接入端之間的通信交互,縮短USB設(shè)備重定向端讀取到FAT32格式的USB設(shè)備的文件分配表的時(shí)間。
[0138] 以上所述實(shí)施例僅表達(dá)了本發(fā)明的幾種實(shí)施方式,其描述較為具體和詳細(xì),但并不能因此而理解為對(duì)本發(fā)明專(zhuān)利范圍的限制。應(yīng)當(dāng)指出的是,對(duì)于本領(lǐng)域的普通技術(shù)人員來(lái)說(shuō),在不脫離本發(fā)明構(gòu)思的前提下,還可以做出若干變形和改進(jìn),這些都屬于本發(fā)明的保護(hù)范圍。因此,本發(fā)明專(zhuān)利的保護(hù)范圍應(yīng)以所附權(quán)利要求為準(zhǔn)。
【權(quán)利要求】
1.一種FAT32格式的USB設(shè)備重定向后的文件分配表讀取方法,包括以下步驟: 接收USB設(shè)備驅(qū)動(dòng)的讀取USB設(shè)備的文件分配表的數(shù)據(jù)請(qǐng)求; 修改所述數(shù)據(jù)請(qǐng)求以增加所述數(shù)據(jù)請(qǐng)求中請(qǐng)求的數(shù)據(jù)量; 將修改后的所述數(shù)據(jù)請(qǐng)求發(fā)送給USB設(shè)備接入端; 接收USB設(shè)備接入端返回的文件分配表數(shù)據(jù); 將文件分配表數(shù)據(jù)進(jìn)行緩存; 當(dāng)所述USB設(shè)備驅(qū)動(dòng)請(qǐng)求的文件分配表數(shù)據(jù)存儲(chǔ)于緩存中時(shí),從緩存中讀取數(shù)據(jù)并回復(fù)USB設(shè)備驅(qū)動(dòng)。
2.根據(jù)權(quán)利要求1所述的FAT32格式的USB設(shè)備重定向后的文件分配表讀取方法,其特征在于,所述方法包括以下步驟: 接收USB設(shè)備驅(qū)動(dòng)的USB數(shù)據(jù)請(qǐng)求,判斷所述USB數(shù)據(jù)請(qǐng)求是否為讀取USB設(shè)備的文件分配表的數(shù)據(jù)請(qǐng)求; 在接收到USB設(shè)備驅(qū)動(dòng)的讀取USB設(shè)備的文件分配表的數(shù)據(jù)請(qǐng)求之后,執(zhí)行所述接收USB設(shè)備驅(qū)動(dòng)的讀取USB設(shè)備的文件分配表的數(shù)據(jù)請(qǐng)求之后的步驟。
3.根據(jù)權(quán)利要求2所述的FAT32格式的USB設(shè)備重定向后的文件分配表讀取方法,其特征在于,所述方法包括以下步驟: 在第一次接收到USB設(shè)備驅(qū)動(dòng)的讀取USB設(shè)備的文件分配表的數(shù)據(jù)請(qǐng)求之后,申請(qǐng)并開(kāi)啟用于緩存文件分配表的緩存空間; 在USB設(shè)備驅(qū)動(dòng)將USB設(shè)備的文件分配表讀取完畢之后,關(guān)閉所述緩存空間; 所述將文件分配表數(shù)據(jù)進(jìn)行緩存的步驟為:將所述文件分配表數(shù)據(jù)保存到所述緩存空間。
4.根據(jù)權(quán)利要求3所述的FAT32格式的USB設(shè)備重定向后的文件分配表讀取方法,其特征在于,所述方法包括以下步驟: 判斷所述USB設(shè)備驅(qū)動(dòng)請(qǐng)求的文件分配表數(shù)據(jù)是否存儲(chǔ)于所述緩存空間中; 若所述USB設(shè)備驅(qū)動(dòng)請(qǐng)求的文件分配表數(shù)據(jù)未存儲(chǔ)于所述緩存空間中,執(zhí)行所述修改所述數(shù)據(jù)請(qǐng)求以增加所述數(shù)據(jù)請(qǐng)求中請(qǐng)求的數(shù)據(jù)量的步驟。
5.根據(jù)權(quán)利要求4所述的FAT32格式的USB設(shè)備重定向后的文件分配表讀取方法,其特征在于,所述修改所述數(shù)據(jù)請(qǐng)求的步驟還包括:在所述數(shù)據(jù)請(qǐng)求中添加數(shù)據(jù)需緩存的標(biāo)記; 所述方法包括步驟: 判斷USB設(shè)備接入端返回的USB數(shù)據(jù)中是否包含數(shù)據(jù)需緩存的標(biāo)記; 若USB設(shè)備接入端返回的USB數(shù)據(jù)中包含數(shù)據(jù)需緩存的標(biāo)記,將所述USB數(shù)據(jù)保存到所述緩存空間。
6.一種FAT32格式的USB設(shè)備重定向后的數(shù)據(jù)讀取系統(tǒng),其特征在于,包括: 請(qǐng)求接收模塊,用于接收USB設(shè)備驅(qū)動(dòng)的讀取USB設(shè)備的文件分配表的數(shù)據(jù)請(qǐng)求; 請(qǐng)求修改模塊,用于修改所述數(shù)據(jù)請(qǐng)求以增加所述數(shù)據(jù)請(qǐng)求中請(qǐng)求的數(shù)據(jù)量; 請(qǐng)求發(fā)送模塊,用于將修改后的所述數(shù)據(jù)請(qǐng)求發(fā)送給USB設(shè)備接入端; 數(shù)據(jù)接收模塊,用于接收USB設(shè)備接入端返回的文件分配表數(shù)據(jù); 數(shù)據(jù)緩存模塊,用于將文件分配表數(shù)據(jù)進(jìn)行緩存;請(qǐng)求回復(fù)模塊,用于當(dāng)所述USB設(shè)備驅(qū)動(dòng)請(qǐng)求的文件分配表數(shù)據(jù)存儲(chǔ)于緩存中時(shí),從緩存中讀取數(shù)據(jù)并回復(fù)USB設(shè)備驅(qū)動(dòng)。
7.根據(jù)權(quán)利要求6所述的FAT32格式的USB設(shè)備重定向后的數(shù)據(jù)讀取系統(tǒng),其特征在于,所述請(qǐng)求接收模塊用于接收USB設(shè)備驅(qū)動(dòng)的USB數(shù)據(jù)請(qǐng)求; 所述系統(tǒng)還包括請(qǐng)求判斷模塊,用于判斷所述USB數(shù)據(jù)請(qǐng)求是否為讀取USB設(shè)備的文件分配表的數(shù)據(jù)請(qǐng)求; 所述請(qǐng)求修改模塊用于在接收到USB設(shè)備驅(qū)動(dòng)的讀取USB設(shè)備的文件分配表的數(shù)據(jù)請(qǐng)求之后,修改所述數(shù)據(jù)請(qǐng)求以增加所述數(shù)據(jù)請(qǐng)求中請(qǐng)求的數(shù)據(jù)量。
8.根據(jù)權(quán)利要求7所述的FAT32格式的USB設(shè)備重定向后的數(shù)據(jù)讀取系統(tǒng),其特征在于,所述系統(tǒng)還包括緩存開(kāi)啟模塊,用于在第一次接收到USB設(shè)備驅(qū)動(dòng)的讀取USB設(shè)備的文件分配表的數(shù)據(jù)請(qǐng)求之后,申請(qǐng)并開(kāi)啟用于緩存文件分配表的緩存空間; 所述數(shù)據(jù)緩存模塊用于將所述文件分配表數(shù)據(jù)保存到所述緩存空間; 所述系統(tǒng)還包括緩存關(guān)閉模塊,用于在USB設(shè)備驅(qū)動(dòng)將USB設(shè)備的文件分配表讀取完畢之后,關(guān)閉所述緩存空間。
9.根據(jù)權(quán)利要求8所述的FAT32格式的USB設(shè)備重定向后的數(shù)據(jù)讀取系統(tǒng),其特征在于,所述系統(tǒng)還包括已緩存判斷模塊,用于判斷所述USB設(shè)備驅(qū)動(dòng)請(qǐng)求的文件分配表數(shù)據(jù)是否存儲(chǔ)于所述緩存空間中; 所述請(qǐng)求修改模塊用于若所述USB設(shè)備驅(qū)動(dòng)請(qǐng)求的文件分配表數(shù)據(jù)未存儲(chǔ)于所述緩存空間中,修改所述數(shù)據(jù)請(qǐng)求以增加所述數(shù)據(jù)請(qǐng)求中請(qǐng)求的數(shù)據(jù)量。
10.根據(jù)權(quán)利要求9所述的FAT32格式的USB設(shè)備重定向后的數(shù)據(jù)讀取系統(tǒng),其特征在于,所述請(qǐng)求修改模塊修改所述數(shù)據(jù)請(qǐng)求的過(guò)程還包括在所述數(shù)據(jù)請(qǐng)求中添加數(shù)據(jù)需緩存的標(biāo)記; 所述系統(tǒng)還包括需緩存判斷模塊,用于判斷USB設(shè)備接入端返回的USB數(shù)據(jù)中是否包含數(shù)據(jù)需緩存的標(biāo)記; 所述數(shù)據(jù)緩存模塊用于若USB設(shè)備接入端返回的USB數(shù)據(jù)中包含數(shù)據(jù)需緩存的標(biāo)記,將所述USB數(shù)據(jù)保存到所述緩存空間。
【文檔編號(hào)】G06F17/30GK103914525SQ201410114869
【公開(kāi)日】2014年7月9日 申請(qǐng)日期:2014年3月25日 優(yōu)先權(quán)日:2014年3月25日
【發(fā)明者】萬(wàn)齊齊, 姜正文 申請(qǐng)人:深圳市深信服電子科技有限公司