CN103914525B - Fat32格式的usb设备重定向后的数据读取方法和系统 - Google Patents

Fat32格式的usb设备重定向后的数据读取方法和系统 Download PDF

Info

Publication number
CN103914525B
CN103914525B CN201410114869.9A CN201410114869A CN103914525B CN 103914525 B CN103914525 B CN 103914525B CN 201410114869 A CN201410114869 A CN 201410114869A CN 103914525 B CN103914525 B CN 103914525B
Authority
CN
China
Prior art keywords
data
usb device
request
allocation table
file allocation
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201410114869.9A
Other languages
English (en)
Other versions
CN103914525A (zh
Inventor
万齐齐
姜正文
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sangfor Technologies Co Ltd
Original Assignee
Shenzhen Shenxinfu Electronic Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Shenzhen Shenxinfu Electronic Technology Co Ltd filed Critical Shenzhen Shenxinfu Electronic Technology Co Ltd
Priority to CN201410114869.9A priority Critical patent/CN103914525B/zh
Publication of CN103914525A publication Critical patent/CN103914525A/zh
Application granted granted Critical
Publication of CN103914525B publication Critical patent/CN103914525B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0611Improving I/O performance in relation to response time

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

一种FAT32格式的USB设备重定向后的文件分配表读取方法,包括以下步骤:接收USB设备驱动的读取USB设备的文件分配表的数据请求;修改数据请求以增加所述数据请求中请求的数据量;将修改后的所述数据请求发送给USB设备接入端;接收USB设备接入端返回的文件分配表数据;将文件分配表数据进行缓存;当所述USB设备驱动请求的文件分配表数据存储于缓存中时,从缓存中读取数据并回复USB设备驱动。上述方法可减少USB设备重定向端与USB设备接入端之间的通信交互,缩短USB设备重定向端读取到FAT32格式的USB设备的文件分配表的时间。此外,还提供一种FAT32格式的USB设备重定向后的文件分配表读取系统。

Description

FAT32格式的USB设备重定向后的数据读取方法和系统
【技术领域】
本发明涉及网络及计算机技术领域,特别涉及一种FAT32格式的USB设备重定向后的文件分配表读取方法和系统。
【背景技术】
USB重定向技术根据USB规范将接入到一台计算机的USB设备重定向到另一台计算机,由另一台计算机计算USB设备的数据,而第一台计算机只负责界面显示。例如,VDI(Virtual Desktop Infrastructure,虚拟桌面基础架构)环境中,采用“集中计算,分布显示”的原则,通过虚拟化技术,将所有客户端的运算合为一体,在数据处理中心内进行集中处理;而客户端仅负责输入输出与界面显示,不参与任何计算。在VDI环境中,当客户端计算机接入USB设备时,则需要采用USB重定向技术将USB设备重定向到用于数据处理的服务器。
USB设备驱动用于按照USB存储设备传输协议(例如BOT协议,即Bulk OnlyTransport协议)解析USB设备存储的数据(以下简称USB数据)。不同的USB设备对应不同的USB设备驱动。
在USB重定向技术中,接入USB设备的计算机(以下称为USB设备接入端)不需要安装USB设备驱动,而是由负责数据处理的计算机(以下称为USB设备重定向端,也可称为服务端)安装USB设备驱动。USB设备接入端中由USB数据读写收发驱动对USB数据进行读写、将USB数据发送给USB设备重定向端并处理USB设备重定向端的USB数据请求(包括对USB数据的读请求和写请求等)。USB设备重定向端中,文件系统驱动与文件系统协同工作来处理文件I/O操作,将USB数据请求发送给USB设备驱动。USB设备重定向端的USB设备驱动将USB数据请求发送给USB设备重定向端的虚拟USB设备(也称为虚拟总线),由虚拟USB设备将USB数据请求发送给USB设备接入端的USB数据读写收发驱动,当接收到USB设备接入端的USB数据读写收发驱动发送的USB数据时,虚拟USB设备将USB数据传输给USB设备驱动,USB设备驱动解析USB数据后,将USB数据传输给文件系统驱动。
Windows系统的文件系统驱动在读取FAT32格式的USB数据时,一次至多只请求4K数据,而每次数据请求都至少要经历一次USB设备接入端与USB设备重定向端之间的通信交互,若再加上读取数据前测试数据是否有效及读完数据后报告状态这两个过程,则每次数据请求要经历三次USB设备接入端与USB设备重定向端之间的通信交互。
USB设备接入端的FAT32格式的USB设备重定向到USB设备重定向端后,USB设备重定向端需要读取USB设备引导区和文件分配表区的数据以得到USB设备的基本信息。而FAT32格式的USB设备的文件分配表的数据量比较大,其与USB设备的容量有关,一个容量为4G的USB设备的文件分配表的数据量大小为4M。USB设备重定向端向USB设备接入端每次请求的数据量小,导致USB设备重定向端读取USB设备的文件分配表时需要与USB设备接入端之间进行频繁的通信交互,从而延长了USB设备重定向端读取到文件分配表所需的时间。
【发明内容】
基于此,有必要提供一种FAT32格式的USB设备重定向后的数据读取方法和系统,可缩短USB设备重定向端读取到FAT32格式的USB设备的文件分配表的时间。
一种FAT32格式的USB设备重定向后的文件分配表读取方法,包括以下步骤:
接收USB设备驱动的读取USB设备的文件分配表的数据请求;
修改所述数据请求以增加所述数据请求中请求的数据量;
将修改后的所述数据请求发送给USB设备接入端;
接收USB设备接入端返回的文件分配表数据;
将文件分配表数据进行缓存;
当所述USB设备驱动请求的文件分配表数据存储于缓存中时,从缓存中读取数据并回复USB设备驱动。
在其中一个实施例中,所述方法包括以下步骤:
接收USB设备驱动的USB数据请求,判断所述USB数据请求是否为读取USB设备的文件分配表的数据请求;
在接收到USB设备驱动的读取USB设备的文件分配表的数据请求之后,执行所述接收USB设备驱动的读取USB设备的文件分配表的数据请求之后的步骤。
在其中一个实施例中,所述方法包括以下步骤:
在第一次接收到USB设备驱动的读取USB设备的文件分配表的数据请求之后,申请并开启用于缓存文件分配表的缓存空间;
在USB设备驱动将USB设备的文件分配表读取完毕之后,关闭所述缓存空间;
所述将文件分配表数据进行缓存的步骤为:将所述文件分配表数据保存到所述缓存空间。
在其中一个实施例中,所述方法包括以下步骤:
判断所述USB设备驱动请求的文件分配表数据是否存储于所述缓存空间中;
若所述USB设备驱动请求的文件分配表数据未存储于所述缓存空间中,执行所述修改所述数据请求以增加所述数据请求中请求的数据量的步骤。
在其中一个实施例中,所述修改所述数据请求的步骤还包括:在所述数据请求中添加数据需缓存的标记;
所述方法包括步骤:
判断USB设备接入端返回的USB数据中是否包含数据需缓存的标记;
若USB设备接入端返回的USB数据中包含数据需缓存的标记,将所述USB数据保存到所述缓存空间。
一种FAT32格式的USB设备重定向后的数据读取系统,包括:
请求接收模块,用于接收USB设备驱动的读取USB设备的文件分配表的数据请求;
请求修改模块,用于修改所述数据请求以增加所述数据请求中请求的数据量;
请求发送模块,用于将修改后的所述数据请求发送给USB设备接入端;
数据接收模块,用于接收USB设备接入端返回的文件分配表数据;
数据缓存模块,用于将文件分配表数据进行缓存;
请求回复模块,用于当所述USB设备驱动请求的文件分配表数据存储于缓存中时,从缓存中读取数据并回复USB设备驱动。
在其中一个实施例中,所述请求接收模块用于接收USB设备驱动的USB数据请求;
所述系统还包括请求判断模块,用于判断所述USB数据请求是否为读取USB设备的文件分配表的数据请求;
所述请求修改模块用于在接收到USB设备驱动的读取USB设备的文件分配表的数据请求之后,修改所述数据请求以增加所述数据请求中请求的数据量。
在其中一个实施例中,所述系统还包括缓存开启模块,用于在第一次接收到USB设备驱动的读取USB设备的文件分配表的数据请求之后,申请并开启用于缓存文件分配表的缓存空间;
所述数据缓存模块用于将所述文件分配表数据保存到所述缓存空间;
所述系统还包括缓存关闭模块,用于在USB设备驱动将USB设备的文件分配表读取完毕之后,关闭所述缓存空间。
在其中一个实施例中,所述系统还包括已缓存判断模块,用于判断所述USB设备驱动请求的文件分配表数据是否存储于所述缓存空间中;
所述请求修改模块用于若所述USB设备驱动请求的文件分配表数据未存储于所述缓存空间中,修改所述数据请求以增加所述数据请求中请求的数据量。
在其中一个实施例中,所述请求修改模块修改所述数据请求的过程还包括在所述数据请求中添加数据需缓存的标记;
所述系统还包括需缓存判断模块,用于判断USB设备接入端返回的USB数据中是否包含数据需缓存的标记;
所述数据缓存模块用于若USB设备接入端返回的USB数据中包含数据需缓存的标记,将所述USB数据保存到所述缓存空间。
由于USB设备驱动从文件系统驱动接收USB数据请求,而文件系统驱动在读取FAT32格式的USB数据时一次至多只请求4K数据,因此USB设备驱动的读取USB设备的文件分配表的数据请求所请求的数据至多只有4K,上述FAT32格式的USB设备重定向后的文件分配表读取方法和系统,在接收到USB设备驱动的读取USB设备的文件分配表的数据请求之后,增加了数据请求中请求的数据量,在接收到USB设备接入端返回的文件分配表数据后,将文件分配表数据进行缓存,当下一次USB设备驱动请求的文件分配表数据存储于缓存中时,直接从缓存中读取数据回复USB设备驱动即可,由于USB设备重定向后的初始阶段,USB设备驱动对文件分配表数据是顺序读取的,因此缓存命中率极高,从而可减少USB设备重定向端与USB设备接入端之间的通信交互,缩短USB设备重定向端读取到FAT32格式的USB设备的文件分配表的时间。
【附图说明】
图1为一个实施例中的FAT32格式的USB设备重定向后的文件分配表读取方法的流程示意图;
图2A为一个实施例中处理USB设备驱动的USB数据请求的过程的流程示意图;
图2B为一个实施例中处理USB设备接入端返回的USB数据的过程的流程示意图;
图3为一个实施例中的FAT32格式的USB设备重定向后的文件分配表读取系统的结构示意图;
图4为一个实施例中的FAT32格式的USB设备重定向后的文件分配表读取系统的结构示意图;
图5为一个实施例中的FAT32格式的USB设备重定向后的文件分配表读取系统的结构示意图;
图6为一个实施例中的FAT32格式的USB设备重定向后的文件分配表读取系统的结构示意图;
图7为一个实施例中的FAT32格式的USB设备重定向后的文件分配表读取系统的结构示意图;
图8为一个实施例中的FAT32格式的USB设备重定向后的文件分配表读取系统的结构示意图;
图9A为一个实施例中USB请求处理模块的结构示意图;
图9B为一个实施例中USB数据处理模块的结构示意图。
【具体实施方式】
如图1所示,在一个实施例中,一种FAT32格式的USB设备重定向后的文件分配表读取方法,包括以下步骤:
步骤S101,接收USB设备驱动的读取USB设备的文件分配表的数据请求。
在一个实施例中,上述FAT32格式的USB设备重定向后的文件分配表读取方法,包括以下步骤:
接收USB设备驱动的USB数据请求,判断USB数据请求是否为读取USB设备的文件分配表的数据请求;在接收到USB设备驱动的读取USB设备的文件分配表的数据请求之后,执行步骤S101之后的步骤。
可在USB设备的第一个扇区即引导扇区读取USB设备的文件分配表的偏移地址和长度。当接收到USB设备驱动的USB数据请求时,可解析USB数据请求的命令类型及命令请求的数据的偏移地址和长度,根据请求的数据的偏移地址和长度以及文件分配表的偏移地址和长度计算出请求的数据是否为文件分配表数据。若命令类型为读类型,且请求的数据为文件分配表数据,则可判定USB数据请求为读取USB设备的文件分配表的数据请求。
步骤S102,修改数据请求以增加数据请求中请求的数据量。
可增加请求的数据量到万级以上字节。
步骤S103,将修改后的数据请求发送给USB设备接入端。
步骤S104,接收USB设备接入端返回的文件分配表数据。
步骤S105,将文件分配表数据进行缓存。
步骤S106,当USB设备驱动请求的文件分配表数据存储于缓存中时,从缓存中读取数据并回复USB设备驱动。
在一个实施例中,上述FAT32格式的USB设备重定向后的文件分配表读取方法包括以下步骤:
在第一次接收到USB设备驱动的读取USB设备的文件分配表的数据请求之后,申请并开启用于缓存文件分配表的缓存空间。
在USB设备驱动将USB设备的文件分配表读取完毕之后,关闭缓存空间。
本实施例中,步骤S105可将文件分配表数据保存到开启的缓存空间。
在一个实施例中,上述FAT32格式的USB设备重定向后的文件分配表读取方法包括以下步骤:
判断USB设备驱动请求的文件分配表数据是否存储于缓存空间中;
若USB设备驱动请求的文件分配表数据未存储于缓存空间中,再执行步骤S102。
在一个实施例中,上述修改数据请求的步骤还包括:在数据请求中添加数据需缓存的标记;
上述FAT32格式的USB设备重定向后的文件分配表读取方法包括以下步骤:
判断USB设备接入端返回的USB数据中是否包含数据需缓存的标记;
若USB设备接入端返回的USB数据中包含数据需缓存的标记,将USB数据保存到缓存空间。
USB设备接入端回复USB设备重定向端的数据请求的回复数据中,保留有数据请求的部分原字段,简称为保留字段。可将数据需缓存的标记添加到数据请求中的保留字段中;当接收到USB设备接入端返回的USB数据时,可解析USB数据中的保留字段,判断保留字段中是否包含数据需缓存的标记。
在一个实施例中,一种FAT32格式的USB设备重定向后的文件分配表读取方法,包括处理USB设备驱动的USB数据请求的过程、以及处理USB设备接入端返回的USB数据的过程。
如图2A所示,处理USB设备驱动的USB数据请求的过程包括以下步骤:
步骤S201,接收USB设备驱动的USB数据请求。
步骤S202,判断USB数据请求是否为读取USB设备的文件分配表的数据请求,并判断用于缓存文件分配表的缓存空间是否已开启;若USB数据请求为读取USB设备的文件分配表的数据请求,且用于缓存文件分配表的缓存空间未开启,则执行步骤S203;若USB数据请求为读取USB设备的文件分配表的数据请求,且用于缓存文件分配表的缓存空间已开启,则执行步骤S206;若USB数据请求不是读取USB设备的文件分配表的数据请求,且用于缓存文件分配表的缓存空间未开启,则执行步骤S208;若USB数据请求不是读取USB设备的文件分配表的数据请求,且用于缓存文件分配表的缓存空间已开启,则执行步骤S209。
步骤S203,申请并开启用于缓存文件分配表的缓存空间,进入步骤S204。
若接收到的USB数据请求为读取USB设备的文件分配表的数据请求,且用于缓存文件分配表的缓存空间未开启,则说明第一次接收到USB设备驱动的读取USB设备的文件分配表的数据请求,从而此时可申请并开启用于缓存文件分配表的缓存空间。
步骤S204,增加USB数据请求中请求的数据量,并在USB数据请求中添加数据需缓存的标记,进入步骤S205。
步骤S205,将修改后的USB数据请求发送给USB设备接入端。
步骤S206,判断USB数据请求所请求的数据是否存储于缓存空间中,若是,则执行步骤S207,若否,则执行步骤S204。
步骤S207,从缓存空间中读取请求的数据,将请求的数据回复给USB设备驱动。
步骤S208,将USB数据请求转发给USB设备接入端。
步骤S209,关闭用于缓存文件分配表的缓存空间,进入步骤S208。
若USB数据请求不是读取USB设备的文件分配表的数据请求,且用于缓存文件分配表的缓存空间已开启,则说明USB设备驱动已将USB设备的文件分配表读取完毕,从而此时可关闭用于缓存文件分配表的缓存空间。
如图2B所示,处理USB设备接入端返回的USB数据的过程包括以下步骤:
步骤S210,接收USB设备接入端返回的USB数据。
步骤S211,判断用于缓存文件分配表的缓存空间是否已开启,若是,则执行步骤S212,若否,则执行步骤S214。
步骤S212,判断USB数据中是否包含数据需缓存的标记,若是,则执行步骤S213,若否,则执行步骤S214。
步骤S213,将USB数据保存到用于缓存文件分配表的缓存空间,并获取USB设备驱动的数据请求对应的数据返回给USB设备驱动。
步骤S214,将USB数据转发给USB设备驱动。
如图3所示,在一个实施例中,一种FAT32格式的USB设备重定向后的文件分配表读取系统,包括请求接收模块301、请求修改模块302、请求发送模块303、数据接收模块304、数据缓存模块305和请求回复模块306,其中:
请求接收模块301用于接收USB设备驱动的读取USB设备的文件分配表的数据请求。
请求修改模块302用于修改数据请求以增加数据请求中请求的数据量。
请求修改模块302用于修改所述数据请求以增加所述数据请求中请求的数据量,可增加请求的数据量到万级以上字节。
在一个实施例中,请求接收模块301用于接收USB设备驱动的USB数据请求;如图4所示,上述FAT32格式的USB设备重定向后的文件分配表读取系统还包括请求判断模块402,用于判断USB数据请求是否为读取USB设备的文件分配表的数据请求;请求修改模块302在接收到USB设备驱动的读取USB设备的文件分配表的数据请求之后,修改数据请求以增加数据请求中请求的数据量。
本实施例中,如图5所示,上述FAT32格式的USB设备重定向后的文件分配表读取系统还包括文件分配表地址获取模块502,用于在USB设备的第一个扇区即引导扇区读取USB设备的文件分配表的偏移地址和长度。当接收到USB设备驱动的USB数据请求时,请求判断模块402可解析USB数据请求的命令类型及命令请求的数据的偏移地址和长度,根据请求的数据的偏移地址和长度以及文件分配表的偏移地址和长度计算出请求的数据是否为文件分配表数据;若命令类型为读类型,且请求的数据为文件分配表数据,则请求判断模块402可判定USB数据请求为读取USB设备的文件分配表的数据请求。
请求发送模块303用于将修改后的数据请求发送给USB设备接入端。
数据接收模块304用于接收USB设备接入端返回的文件分配表数据。
数据缓存模块305用于将文件分配表数据进行缓存。
请求回复模块306用于当USB设备驱动请求的文件分配表数据存储于缓存中时,从缓存中读取数据并回复USB设备驱动。
如图6所示,在一个实施例中,上述FAT32格式的USB设备重定向后的文件分配表读取系统还包括缓存开启模块602和缓存关闭模块604,其中:缓存开启模块602用于在第一次接收到USB设备驱动的读取USB设备的文件分配表的数据请求之后,申请并开启用于缓存文件分配表的缓存空间。缓存关闭模块604用于在USB设备驱动将USB设备的文件分配表读取完毕之后,关闭缓存空间。
本实施例中,数据缓存模块305可将文件分配表数据保存到开启的缓存空间。
在一个实施例中,如图7所示,上述FAT32格式的USB设备重定向后的文件分配表读取系统还包括已缓存判断模块702,用于判断USB设备驱动请求的文件分配表数据是否存储于缓存空间中,请求修改模块302用于若USB设备驱动请求的文件分配表数据未存储于缓存空间中,修改数据请求以增加数据请求中请求的数据量。
在一个实施例中,请求修改模块302修改数据请求的过程还包括在数据请求中添加数据需缓存的标记;如图8所示,上述FAT32格式的USB设备重定向后的文件分配表读取系统还包括需缓存判断模块802,用于判断USB设备接入端返回的USB数据中是否包含数据需缓存的标记;数据缓存模块305用于若USB设备接入端返回的USB数据中包含数据需缓存的标记,将USB数据保存到缓存空间。
USB设备接入端回复USB设备重定向端的数据请求的回复数据中,保留有数据请求的部分原字段,简称为保留字段。请求修改模块302可将数据需缓存的标记添加到数据请求中的保留字段中;当接收到USB设备接入端返回的USB数据时,需缓存判断模块802可解析USB数据中的保留字段,判断保留字段中是否包含数据需缓存的标记。
在一个实施例中,一种FAT32格式的USB设备重定向后的文件分配表读取系统,包括USB请求处理模块和USB数据处理模块,其中:USB请求处理模块用于处理USB设备驱动的USB数据请求,USB数据处理模块用于处理USB设备接入端返回的USB数据。
如图9A所示,USB请求处理模块包括请求接收模块301、请求判断模块402、缓存开启状态第一判断模块901、缓存开启模块602、请求修改模块302、请求发送模块303、已缓存判断模块702、第一请求回复模块902、请求转发模块903和缓存关闭模块604,其中:
请求接收模块401用于接收USB设备驱动的USB数据请求。
请求判断模块402用于判断USB数据请求是否为读取USB设备的文件分配表的数据请求。
缓存开启状态第一判断模块901用于判断用于缓存文件分配表的缓存空间是否已开启。
缓存开启模块602用于若USB数据请求为读取USB设备的文件分配表的数据请求,且用于缓存文件分配表的缓存空间未开启,则申请并开启用于缓存文件分配表的缓存空间,通知请求修改模块405进行处理。
若接收到的USB数据请求为读取USB设备的文件分配表的数据请求,且用于缓存文件分配表的缓存空间未开启,则说明第一次接收到USB设备驱动的读取USB设备的文件分配表的数据请求,从而此时缓存开启模块602可申请并开启用于缓存文件分配表的缓存空间。
请求修改模块405用于增加USB数据请求中请求的数据量,并在USB数据请求中添加数据需缓存的标记,并通知请求发送模块406进行处理。
请求发送模块406用于将修改后的USB数据请求发送给USB设备接入端。
已缓存判断模块702用于若USB数据请求为读取USB设备的文件分配表的数据请求,且用于缓存文件分配表的缓存空间已开启,则判断USB数据请求所请求的数据是否存储于缓存空间中,若是,则通知第一请求回复模块902进行处理,若否,则通知请求修改模块405进行处理。
第一请求回复模块902用于从缓存空间中读取请求的数据,将请求的数据回复给USB设备驱动。
请求转发模块903用于若USB数据请求不是读取USB设备的文件分配表的数据请求,且用于缓存文件分配表的缓存空间未开启,则将USB数据请求转发给USB设备接入端。
缓存关闭模块604用于若USB数据请求不是读取USB设备的文件分配表的数据请求,且用于缓存文件分配表的缓存空间已开启,则关闭用于缓存文件分配表的缓存空间,通知请求转发模块903进行处理。
若USB数据请求不是读取USB设备的文件分配表的数据请求,且用于缓存文件分配表的缓存空间已开启,则说明USB设备驱动已将USB设备的文件分配表读取完毕,从而此时缓存关闭模块604可关闭用于缓存文件分配表的缓存空间。
如图9B所示,USB数据处理模块包括数据接收模块304、缓存开启状态第二判断模块904、需缓存判断模块802、数据缓存模块305、第二请求回复模块905和数据转发模块906,其中:
数据接收模块304用于接收USB设备接入端返回的USB数据。
缓存开启状态第二判断模块904用于判断用于缓存文件分配表的缓存空间是否已开启,若是,则通知需缓存判断模块802进行处理,若否,则通知数据转发模块906进行处理。
需缓存判断模块802用于判断USB数据中是否包含数据需缓存的标记,若是,则通知数据缓存模块305进行处理,若否,则通知数据转发模块906进行处理。
数据缓存模块305用于将USB数据保存到用于缓存文件分配表的缓存空间,通知第二请求回复模块905进行处理。
第二请求回复模块905用于获取USB设备驱动的数据请求对应的数据返回给USB设备驱动。
数据转发模块906用于将USB数据转发给USB设备驱动。
由于USB设备驱动从文件系统驱动接收USB数据请求,而文件系统驱动在读取FAT32格式的USB数据时一次至多只请求4K数据,因此USB设备驱动的读取USB设备的文件分配表的数据请求所请求的数据至多只有4K,上述FAT32格式的USB设备重定向后的文件分配表读取方法和系统,在接收到USB设备驱动的读取USB设备的文件分配表的数据请求之后,增加了数据请求中请求的数据量,在接收到USB设备接入端返回的文件分配表数据后,将文件分配表数据进行缓存,当下一次USB设备驱动请求的文件分配表数据存储于缓存中时,直接从缓存中读取数据回复USB设备驱动即可,由于USB设备重定向后的初始阶段,USB设备驱动对文件分配表数据是顺序读取的,因此缓存命中率极高,从而可减少USB设备重定向端与USB设备接入端之间的通信交互,缩短USB设备重定向端读取到FAT32格式的USB设备的文件分配表的时间。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。

Claims (10)

1.一种FAT32格式的USB设备重定向后的文件分配表读取方法,其特征在于,包括以下步骤:
接收USB设备驱动的读取USB设备的文件分配表的数据请求;
修改所述数据请求以增加所述数据请求中请求的数据量;
将修改后的所述数据请求发送给USB设备接入端;
接收USB设备接入端返回的文件分配表数据;
将文件分配表数据进行缓存;
当所述USB设备驱动请求的文件分配表数据存储于缓存中时,从缓存中读取数据并回复USB设备驱动。
2.根据权利要求1所述的FAT32格式的USB设备重定向后的文件分配表读取方法,其特征在于,所述方法包括以下步骤:
接收USB设备驱动的USB数据请求,判断所述USB数据请求是否为读取USB设备的文件分配表的数据请求;
在接收到USB设备驱动的读取USB设备的文件分配表的数据请求之后,执行所述接收USB设备驱动的读取USB设备的文件分配表的数据请求之后的步骤。
3.根据权利要求2所述的FAT32格式的USB设备重定向后的文件分配表读取方法,其特征在于,所述方法包括以下步骤:
在第一次接收到USB设备驱动的读取USB设备的文件分配表的数据请求之后,申请并开启用于缓存文件分配表的缓存空间;
在USB设备驱动将USB设备的文件分配表读取完毕之后,关闭所述缓存空间;
所述将文件分配表数据进行缓存的步骤为:将所述文件分配表数据保存到所述缓存空间。
4.根据权利要求3所述的FAT32格式的USB设备重定向后的文件分配表读取方法,其特征在于,所述方法包括以下步骤:
判断所述USB设备驱动请求的文件分配表数据是否存储于所述缓存空间中;
若所述USB设备驱动请求的文件分配表数据未存储于所述缓存空间中,执行所述修改所述数据请求以增加所述数据请求中请求的数据量的步骤。
5.根据权利要求4所述的FAT32格式的USB设备重定向后的文件分配表读取方法,其特征在于,所述修改所述数据请求的步骤还包括:在所述数据请求中添加数据需缓存的标记;
所述方法包括步骤:
判断USB设备接入端返回的USB数据中是否包含数据需缓存的标记;
若USB设备接入端返回的USB数据中包含数据需缓存的标记,将所述USB数据保存到所述缓存空间。
6.一种FAT32格式的USB设备重定向后的数据读取系统,其特征在于,包括:
请求接收模块,用于接收USB设备驱动的读取USB设备的文件分配表的数据请求;
请求修改模块,用于修改所述数据请求以增加所述数据请求中请求的数据量;
请求发送模块,用于将修改后的所述数据请求发送给USB设备接入端;
数据接收模块,用于接收USB设备接入端返回的文件分配表数据;
数据缓存模块,用于将文件分配表数据进行缓存;
请求回复模块,用于当所述USB设备驱动请求的文件分配表数据存储于缓存中时,从缓存中读取数据并回复USB设备驱动。
7.根据权利要求6所述的FAT32格式的USB设备重定向后的数据读取系统,其特征在于,所述请求接收模块用于接收USB设备驱动的USB数据请求;
所述系统还包括请求判断模块,用于判断所述USB数据请求是否为读取USB设备的文件分配表的数据请求;
所述请求修改模块用于在接收到USB设备驱动的读取USB设备的文件分配表的数据请求之后,修改所述数据请求以增加所述数据请求中请求的数据量。
8.根据权利要求7所述的FAT32格式的USB设备重定向后的数据读取系统,其特征在于,所述系统还包括缓存开启模块,用于在第一次接收到USB设备驱动的读取USB设备的文件分配表的数据请求之后,申请并开启用于缓存文件分配表的缓存空间;
所述数据缓存模块用于将所述文件分配表数据保存到所述缓存空间;
所述系统还包括缓存关闭模块,用于在USB设备驱动将USB设备的文件分配表读取完毕之后,关闭所述缓存空间。
9.根据权利要求8所述的FAT32格式的USB设备重定向后的数据读取系统,其特征在于,所述系统还包括已缓存判断模块,用于判断所述USB设备驱动请求的文件分配表数据是否存储于所述缓存空间中;
所述请求修改模块用于若所述USB设备驱动请求的文件分配表数据未存储于所述缓存空间中,修改所述数据请求以增加所述数据请求中请求的数据量。
10.根据权利要求9所述的FAT32格式的USB设备重定向后的数据读取系统,其特征在于,所述请求修改模块修改所述数据请求的过程还包括在所述数据请求中添加数据需缓存的标记;
所述系统还包括需缓存判断模块,用于判断USB设备接入端返回的USB数据中是否包含数据需缓存的标记;
所述数据缓存模块用于若USB设备接入端返回的USB数据中包含数据需缓存的标记,将所述USB数据保存到所述缓存空间。
CN201410114869.9A 2014-03-25 2014-03-25 Fat32格式的usb设备重定向后的数据读取方法和系统 Active CN103914525B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410114869.9A CN103914525B (zh) 2014-03-25 2014-03-25 Fat32格式的usb设备重定向后的数据读取方法和系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410114869.9A CN103914525B (zh) 2014-03-25 2014-03-25 Fat32格式的usb设备重定向后的数据读取方法和系统

Publications (2)

Publication Number Publication Date
CN103914525A CN103914525A (zh) 2014-07-09
CN103914525B true CN103914525B (zh) 2017-02-08

Family

ID=51040205

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410114869.9A Active CN103914525B (zh) 2014-03-25 2014-03-25 Fat32格式的usb设备重定向后的数据读取方法和系统

Country Status (1)

Country Link
CN (1) CN103914525B (zh)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101675423A (zh) * 2007-03-05 2010-03-17 约吉安全系统公司 在外部设备与主机设备间提供数据和设备安全的系统和方法
CN102368231A (zh) * 2011-10-14 2012-03-07 深圳市京华科讯科技有限公司 一种usb设备重定向的方法及系统
CN103503381A (zh) * 2011-11-21 2014-01-08 华为技术有限公司 设备重定向的数据传输的方法、装置及系统

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8424024B2 (en) * 2009-03-26 2013-04-16 Digi International Inc. Application-specific serial port redirector
US8850090B2 (en) * 2011-11-23 2014-09-30 Red Hat, Inc. USB redirection for read transactions

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101675423A (zh) * 2007-03-05 2010-03-17 约吉安全系统公司 在外部设备与主机设备间提供数据和设备安全的系统和方法
CN102368231A (zh) * 2011-10-14 2012-03-07 深圳市京华科讯科技有限公司 一种usb设备重定向的方法及系统
CN103503381A (zh) * 2011-11-21 2014-01-08 华为技术有限公司 设备重定向的数据传输的方法、装置及系统

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
USB/IP-a Peripheral Bus Extension for Device Sharing over IP Network;Takahiro Hirofuchi,et al.;《FREENEX Track:2005USENIX Annual Technical Conference》;20051231;47-60 *
基于Linux的USB设备重定向研究;王璇等;《武汉工业学院学报》;20081231;第27卷(第4期);40-42 *
嵌入式Linux下的USB的大容量数据传输驱动开发与实现;范耀武等;《数字通信》;20111231;53-56 *

Also Published As

Publication number Publication date
CN103914525A (zh) 2014-07-09

Similar Documents

Publication Publication Date Title
US11121928B2 (en) Opportunistic block transmission with time constraints
US20140115251A1 (en) Reducing Memory Overhead of Highly Available, Distributed, In-Memory Key-Value Caches
US20180041565A1 (en) Input devices in high latency networks
CN104320448B (zh) 一种基于大数据的计算设备的缓存与预取加速方法和装置
US20090024916A1 (en) Seamless Asynchronous Updates of Dynamic Content
CN103257958A (zh) 一种基于云存储的翻译方法及系统
CN105589664A (zh) 虚拟存储高速传输方法
US11822811B2 (en) Method, electronic device and computer program product for processing data
CN109117386A (zh) 一种网络远程读写二级存储的系统及方法
CN108694215A (zh) 网页缓存预热的方法、装置、电子设备和计算机可读介质
CN107250995B (zh) 存储器管理设备
CN104679905B (zh) 一种基于云存储的高速存储系统
CN105530221A (zh) 一种网络数据传输的缓存加速方法及系统
US20160210242A1 (en) Virtual disk alignment access
CN106411978A (zh) 一种资源缓存方法及装置
CN103914525B (zh) Fat32格式的usb设备重定向后的数据读取方法和系统
CN103281365B (zh) 分布式虚拟化架构
CN110020373A (zh) 静态页面存储、浏览的方法和装置
US8700852B2 (en) Processing read and write requests in a storage controller
WO2020034080A1 (zh) 一种基于dma的数据处理方法及相关产品
CN105812415B (zh) 实现负载均衡的方法及存储系统
CN104333803B (zh) 防止视频编辑时丢帧的方法、设备及系统
CN107643875A (zh) 一种2+1分布式存储集群系统ssd读缓存加速方法
KR20010102285A (ko) 직접 메모리 접근 촉진 방법 및 장치
Larsen et al. Platform io dma transaction acceleration

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CP03 Change of name, title or address
CP03 Change of name, title or address

Address after: Nanshan District Xueyuan Road in Shenzhen city of Guangdong province 518000 No. 1001 Nanshan Chi Park building A1 layer

Patentee after: SINFOR Polytron Technologies Inc

Address before: 518000 room 410-413, technology innovation service center, 1 Qilin Road, Shenzhen, Guangdong, Nanshan District

Patentee before: Shenxinfu Electronics Science and Technology Co., Ltd., Shenzhen