CN100399310C - 信息处理装置、信息处理方法及随其使用的程序和记录介质 - Google Patents

信息处理装置、信息处理方法及随其使用的程序和记录介质 Download PDF

Info

Publication number
CN100399310C
CN100399310C CNB2005100788275A CN200510078827A CN100399310C CN 100399310 C CN100399310 C CN 100399310C CN B2005100788275 A CNB2005100788275 A CN B2005100788275A CN 200510078827 A CN200510078827 A CN 200510078827A CN 100399310 C CN100399310 C CN 100399310C
Authority
CN
China
Prior art keywords
file
driver
data
irp
request
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.)
Expired - Fee Related
Application number
CNB2005100788275A
Other languages
English (en)
Other versions
CN1690993A (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.)
Sony Corp
Original Assignee
Sony Corp
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 Sony Corp filed Critical Sony Corp
Publication of CN1690993A publication Critical patent/CN1690993A/zh
Application granted granted Critical
Publication of CN100399310C publication Critical patent/CN100399310C/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • 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/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/0643Management of files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • 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/0613Improving I/O performance in relation to throughput
    • 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/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0674Disk device
    • G06F3/0677Optical disk device, e.g. CD-ROM, DVD
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B27/00Editing; Indexing; Addressing; Timing or synchronising; Monitoring; Measuring tape travel
    • G11B27/10Indexing; Addressing; Timing or synchronising; Measuring tape travel
    • G11B27/11Indexing; Addressing; Timing or synchronising; Measuring tape travel by using information not detectable on the record carrier
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B27/00Editing; Indexing; Addressing; Timing or synchronising; Monitoring; Measuring tape travel
    • G11B27/10Indexing; Addressing; Timing or synchronising; Measuring tape travel
    • G11B27/19Indexing; Addressing; Timing or synchronising; Measuring tape travel by using information detectable on the record carrier
    • G11B27/28Indexing; Addressing; Timing or synchronising; Measuring tape travel by using information detectable on the record carrier by using information signals recorded by the same method as the main recording
    • G11B27/32Indexing; Addressing; Timing or synchronising; Measuring tape travel by using information detectable on the record carrier by using information signals recorded by the same method as the main recording on separate auxiliary tracks of the same or an auxiliary record carrier
    • G11B27/327Table of contents
    • G11B27/329Table of contents on a disc [VTOC]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/76Television signal recording
    • H04N5/765Interface circuits between an apparatus for recording and another apparatus
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/76Television signal recording
    • H04N5/84Television signal recording using optical recording
    • H04N5/85Television signal recording using optical recording on discs or drums

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Signal Processing (AREA)
  • Multimedia (AREA)
  • Software Systems (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Management Or Editing Of Information On Record Carriers (AREA)
  • Communication Control (AREA)
  • Computer And Data Communications (AREA)

Abstract

一种信息处理装置被连接到具有文件系统的记录或回放装置。该信息处理装置包括:接收器,用于接收由操作系统响应来自应用程序的文件操作请求而提供的命令;以及转换器,用于将由操作系统提供的命令转换为请求,其中要将该请求转换为基于能够通过与所述记录或回放装置进行通信而控制文件系统的通信协议的命令。

Description

信息处理装置、信息处理方法及随其使用的程序和记录介质
相关申请的交叉引用
本发明包含于2004年4月15日向日本专利局提交的日本专利申请JP2004-119851相关的主题内容,通过引用而将其全部内容合并于此。
技术领域
本发明涉及信息处理装置、信息处理方法及随其使用的程序和记录介质。特别地,本发明涉及一种用于通过使用通用计算机而简单操作记录或回放装置(例如其中具有文件系统的盘驱动器)的信息处理装置和信息处理方法、以及随其使用的程序和记录介质。
背景技术
在近些年,已经出现了对记录和回放例如光盘上的高比特率视听(AV)数据的需求。
因此,本发明的受让人已提出了一种盘驱动器(例如,参见日本未审查专利申请公开第2004-005895号),其将诸如视频数据和与其相关联的音频数据的多个数据序列周期性地记录在光盘上,以使所述数据序列的边界与光盘的边界(如扇区)相符。
根据此盘驱动器,在某种程度上,将视频数据和音频数据共同记录在光盘上的连续记录区域中。因此,可以在不搜寻(seek)的情况下读取和记录所述共同的数据。
另外,视频数据和音频数据之间的边界与光盘上的扇区之间的边界相符。因此,一个扇区不具有视频数据和音频数据的任何混合。因此,例如,可仅读取视频数据或音频数据。换句话说,例如,当仅需要视频数据时,可仅从光盘读取视频数据。与一个扇区具有视频数据和音频数据的混合的情况相比,可更有效率地(以高速)仅读取视频数据。这也可适用于音频数据。
发明内容
本发明的受让人已经提出了一种盘驱动器,其中在光盘记录区域的具有预定或更大大小的连续空闲区域之中,例如,保留与其中最新记录了数据的记录区域最近的空闲区域,并将数据记录在所保留的记录区域中。
在这种情况下,理想地,将数据串以一种所谓的“单行”形式而记录在光盘上的连续记录区域中。因此,在数据记录或回放模式中,可抑制搜寻的发生,可将高比特率AV数据实时地记录在光盘上,并且可实时地回放来自光盘的高比特率AV数据。
在本说明书中,在下文中,必要将通过在光盘记录区域中的具有预定或更大大小的连续空闲区域之中、保留与其中最新记录了数据的记录区域最近的空闲区域、并将数据记录在所保留的记录区域中而减少在数据记录或读取模式下进行寻道的盘驱动器称为“专用盘驱动器”。
必要时,通过该专用盘驱动器而在其上记录了数据的光盘在下文中称为“专用盘”。必要时,专用盘在下文中也被简称为“PD”。另外,必要时,在下文中将以单行的形式而在光盘上的连续记录区域记录数据的、对这种数据的记录称为“单行记录”。
PD驱动器采用例如通用盘格式作为文件系统,并且控制记录,以便以UDF形式执行AV数据的单行记录。另外,pD驱动器执行文件分配管理、对PD上的故障处理、空闲区域管理等。
PD驱动器的文件系统具有如上所述的控制单行记录、以及执行文件分配管理、故障处理、空闲空间管理等功能。必要时,文件系统中执行这些功能的部分在下文中被称为“PD分配管理器”。
近来,随着中央处理单元的速度的增加、大容量存储器的价格下降等,完善而便宜的计算机已成为现实。在这些计算机中,执行大量AV数据的编辑和其它类型的处理的应用程序(程序)(必要时,在下文中称为“AV应用程序”)也已成为现实。
日益需要的是:通过例如以内置或外部连接形式将PD驱动器连接到计算机而在PD上读取和记录AV数据、以及由AV应用程序访问PD驱动器。
为了使计算机的AV应用程序在PD驱动器(中的PD)上记录或回放AV数据,PD驱动器需要被安装在操作系统(OS)上,其中该操作系统被安装在计算机中。
关于PD驱动器的安装,存在通过使用例如由安装在计算机中的OS提供的诸如UDF文件系统、新技术文件系统(NTFS)和文件分配表(FAT)文件系统的通用文件系统来安装PD驱动器的方法。
然而,在通过使用OS提供的通用文件系统来安装PD驱动器的情况下,不在PD驱动器中执行单行记录控制等。由此,不保证AV数据的读取和记录。换句话说,当不执行单行的记录控制时,以所谓的“散列状态”而将AV数据项记录在离散的位置。这导致了搜寻的频繁出现,由此使得难以实时地读取和记录高比特率AV数据。
另外,如上所述,当采用UDF文件系统作为PD驱动器的内部文件系统时,如果通过使用UDF驱动程序而将PD驱动器安装在计算机中,则可以未处理过的形式而由计算机上的应用程序检测PD驱动器中的UDF文件。
因此,当PD中的AV数据文件为例如MXF(资料交换格式)OP-Atom形式时,相同内容的AV数据被分为视频数据和音频数据文件,并将音频数据分为通道单元形式的不同的文件,由计算机上的应用程序将特定内容的AV数据检测为视频数据文件和通道单元形式的音频数据文件,使得处理这些文件是不方便的。
如上所述,PD驱动器的内部文件系统具有PD分配管理器,用于控制单行记录和执行文件分配管理、故障处理、空闲区域管理等。因此,如果直接使用PD驱动器的文件系统,则可由计算机(的应用程序)来容易地控制PD驱动器。
已考虑到上述情况而作出了本发明。期望能够易于控制具有内部文件系统的记录或回放装置,如盘驱动器。
根据本发明的实施例,提供了一种信息处理装置,其包括将由操作系统提供的命令转换为请求的转换装置,其中要将该请求转换为基于能够通过与记录或回放装置进行通信而控制文件系统的通信协议的命令。
当记录或回放装置仅使用一个文件句柄时,信息处理装置还可包括独占控制器,用于专门控制所述一个文件句柄的存取。
信息处理装置可以是一个文件系统驱动器(driver),该文件系统驱动器不执行由记录或回放装置进行的文件管理。
从记录或回放装置中的文件读取或记录在该文件中的数据可至少包括视听数据。
在记录或回放装置中,在记录介质的记录区域中的具有预定或更大大小的连续空闲区域之中,可保留存有最新记录了数据的空闲区域,并且可将数据记录在该保留的区域中。
根据本发明的实施例,提供了一种信息处理方法,其包括将由操作系统提供的命令转换为请求的步骤,其中要将该请求转换为基于能够通过与记录或回放装置进行通信而控制文件系统的通信协议的命令。
根据本发明的实施例,提供了一种程序,其包括将由操作系统提供的命令转换为请求的步骤,其中要将该请求转换为基于能够通过与记录或回放装置进行通信而控制文件系统的通信协议的命令。
根据本发明实施例,提供了一种包含程序的记录介质,该程序包括将由操作系统提供的命令转换为请求的步骤,其中要将该请求转换为基于能够通过与记录或回放装置进行通信而控制文件系统的通信协议的命令。
附图说明
图1为示出应用了本发明实施例的信息处理系统的配置的示例的方框图;
图2为示出图1中示出PC的配置的示例的方框图;
图3为示出由图2中示出的CPU执行的程序的方框图;
图4为示出图3中示出的OS的内部配置的示例的方框图;
图5为图解由图3中示出的OS执行的过程的概要的流程图;
图6为示出图1中示出的驱动器中的文件系统和该驱动器所采用的协议的方框图;
图7为图6中示出的虚拟文件系统的图解;
图8为SCSI命令块ORB的格式的图解;
图9为SBP2状态块的格式的图解;
图10为扩展命令的图解;
图11为图解基于PD-SBP2的文件读取顺序的流程图;
图12为图解基于PD-SBP2的文件记录顺序的流程图;
图13为用户定义的分组IOCTL的图解;
图14为图解图4和图6中的每个中示出的PD_FS的流程图;
图15为图解多个文件同时打开函数的方框图;以及
图16为图解图15中图解的多个文件同时打开函数的流程图。
具体实施方式
下面通过参考附图来描述本发明的实施例。
图1示出了应用了本发明的实施例的信息处理系统的配置的例子。
如图1所示,该信息处理系统包括个人计算机(PC)1和驱动器2。
PC1存储操作系统(OS)和应用程序(程序),并且通过在OS的控制下运行应用程序来执行各种类型的处理。
例如,驱动器2是上述PD驱动器,并通过IEEE(电气和电子工程师协会)1394线缆4而被连接到PC 1。在驱动器2中,可以加载和卸载作为PD的光盘3。驱动器2通过根据IEEE 1394标准与PC 1通信,而在光盘3上读取和记录AV数据和其它类型的数据。
驱动器2不需要是PD驱动器,并且光盘3不需要是PD。另外,PC 1和驱动器2可以根据除IEEE 1394标准以外的其它标准而相互通信。
接下来,图2示出了图1中示出的PC 1的硬件的配置的例子。
PC 1具有内置中央处理单元(CPU)12。CPU 12通过总线11而连接到输入/输出接口20。当通过操作包括键盘、鼠标、以及麦克风的输入单元17而经由输入/输出接口20向CPU 12输入指令时,CPU 12运行存储在只读存储器(ROM)13中的程序。可替换地,在将存储在硬盘15中的程序、在从卫星或网络传送并且由通信单元18接收之后安装到硬盘15中的程序、以及在从被加载到驱动器19中的可拆卸记录介质21读取之后在硬盘15中安装的程序中的一个程序加载到随机存取存储器(RAM)14中后,CPU 12运行所加载的程序。这允许CPU 12执行根据流程图(以后描述)的处理、或基于方框图配置(以后描述)的处理。如果需要,则通过输入/输出接口20,CPU 12控制包括液晶显示器和扬声器的输出单元16来输出处理的结果,控制通信单元18来传送处理的结果,并执行将处理的结果记录在硬盘15中。
在PC 1中,根据IEEE 1394标准控制通信的IEEE 1394接口22被连接到输入/输出接口20。驱动器2通过IEEE 1394线缆4而被连接到IEEE 1394接口22。通过经由总线11、输入/输出接口20、IEEE 1394接口22、和IEEE1394线缆4来访问驱动器2,CPU 12可在被加载到驱动器2中的光盘3上读取和记录数据。
CPU 12运行OS的程序和各种应用程序。这些程序可被记录在作为PC 1中的内置记录介质的硬盘15上或ROM 13中。
可替换地,程序可以被临时或者永久地存储(记录)在可拆卸记录介质21中,如软盘、CD-ROM(致密盘只读存储器)、磁光盘、DVD(数字多用盘)、磁盘、或半导体存储器。可以作为所谓的“软件包”而提供此可拆卸记录介质21。
可从可拆卸记录介质21将每个程序安装到PC 1中,并且,另外,可通过用于数字卫星广播的卫星而将该程序从下载站点传送到PC 1,并且,也可通过线缆、经由例如因特网的网络而将该程序传送到PC 1。在PC 1中,可通过通信单元18而接收如上所述被传送的程序,并可将其安装在硬盘15中。
接下来,图3示出了由图2中示出的CPU 12运行的程序。
例如,在OS 30和应用程序(程序)31至少被安装在图2中示出的硬盘15中的状态下,当对PC 1供电时,将OS 30从硬盘15装入到RAM 14中,并由CPU 12来运行。另外,例如,当用户通过执行例如操作输入单元17的操作来请求激活应用程序31时,在OS 30的控制下,CPU 12将应用程序31从硬盘15中加载到RAM 14中并运行所加载的应用程序。
当应用程序31发出涉及例如被加载到驱动器2中的光盘3上的文件操作的访问请求时,OS 30处理该访问请求。这允许驱动器2将其记录已被来自应用程序31的访问请求所请求的数据记录在光盘3上。可替换地,从光盘3读取其回放(读取)已被来自应用程序31的访问请求所请求的数据,并将该数据传递到发出访问请求的应用程序31。
安装到图2中示出的硬盘15中的应用程序不限于一个应用程序31,而应用程序的数目可以是两个或者更多。
应用程序31应当是这种AV应用程序,其执行例如来自外部的AV数据的获取、以及AV数据的编辑、记录、和回放。然而,应用程序31不需要是AV应用程序。换句话说,例如,应用程序31可以是用于执行文本数据编辑等的应用程序、或者文件显示应用程序(例如,诸如“资源管理器(Explorer)”或“文件管理器”之类的文件实用程序)。
接下来,例如,可以采用Unix、Linux、Microsoft Windows或者其它任意OS来作为OS 30。在本实施例中,例如,采用Windows NT OS作为OS 30。目前,Windows NT操作系统包括“Windows NT”、“Windows 2000”和“Windows XP”。
图4示出了当采用Windows NT OS作为OS 30时、OS 30中关于驱动器2(或光盘3)的访问的部分的配置的示例。
在图4中示出了OS 30中的设备驱动程序的分层结构,以便阐明其与应用程序31的关系。
在OS 30,即Windows NT OS中,服务与内核58相分离,内核58被提供有执行最小必要处理(例如取决于硬件的处理)的部分,而由子系统来实现分离的服务。
Win32子系统51是子系统中的一种。Win32子系统51提供具有各种API(函数)的应用程序31,并执行例如内存管理,进程管理,图形管理等。
换句话说,例如,当由应用程序31调用与输入/输出相关的API(应用程序接口)函数时,Win32子系统51响应于API函数而向NT I/O管理器52输出I/O请求。
由Win32子系统51提供的API函数包括:“CreateFile()”,用于创建文件;“ReadFile()”,用于读取文件(记录在文件中的数据);“WriteFile()”,用于记录到文件(在文件中记录数据);“CloseFile()”,用于关闭文件;以及“DeviceIoControl()”,用于执行各类其它处理。
NT I/O管理器52提供具有用于传递I/O请求包(IRP)的服务的分层设备驱动程序。
IRP具有由设备驱动程序请求的处理信息。例如,IRP包括用于对请求内容进行分类的代码、用于请求数据(文件)的读取(回放)的“IRP_MJ_READ”、用于请求数据的写入(记录)的“IRP_MJ_WRITE”、用于请求文件的打开的“IRP_MJ_CREATE”、用于请求文件的关闭的IRP_MJ_CLOSE、用于请求各种类型的其它处理的“IRP_MJ_DEVICE_CONTROL”。在IRP_MJ_DEVICE_CONTROL的IRP中,IOCTL(I/O控制)代码被指定为子代码。这个IOCTL可以由用户来定义。
例如,NT I/O管理器52将与CreateFile()相对应的、Win32子系统51的I/O请求转换成IRP_MJ_CREATE的IRP。另外,例如,ReadFile()和WriteFile()被分别转换成IRP_MJ_READ和IRP_MJ_WRITE的IRP,而DeviceIoControl()被转换成IRP_MJ_DEVICE_CONTROL的IRP。
在Windows NT OS中,IRP用于与存储类驱动程序层的层相等或更高的层。
在图4中,存在层级别等于或高于存储类驱动程序层的三个设备驱动程序,即:PD存储器55,即存储类驱动程序;PD_FS 54,即位于比存储类驱动程序高的上一层中的文件系统驱动程序;位于比存储类驱动程序高的上一层中的FS(文件系统)过滤器驱动程序53。
因此,在本实施例中,NT I/O管理器52提供用于将IRP传递到FS过滤器驱动程序53、PD_FS 54和PD存储器55的服务。
特别地,NT I/O管理器52将来自Win32子系统51的I/O请求转换成IRP,并将IRP输出到例如FS过滤器驱动程序53。例如,FS过滤器驱动程序53响应于来自NT I/O管理器52的IRP,而向NT I/O管理器52输出请求。NT I/O管理器52将来自FS过滤器驱动程序53的请求转换成IRP,并将IRP输出到位于下一较低层的PD_FS 54。例如,PD_FS 54响应于来自NT I/O管理器52的IRP,而向NT I/O管理器52输出请求。NT I/O管理器52将来自PD_FS 54的请求转换成IRP,并将IRP输出到位于下一较低层的PD存储器55。
FS过滤器驱动程序53是级别比PD_FS 54高的文件系统驱动程序(以后描述)。经由Win32子系统51和NT I/O管理程序52而从应用程序31提供FS过滤器驱动程序53。FS过滤器驱动程序53执行过滤出与文件系统有关的文件系统请求和其它请求,作为过滤的结果而得到要传递到PD_FS 54的请求,并执行例如通过NT I/O管理器52而向PD_FS 54输出该请求的处理。例如,可以将作为OS 30使用的Windows NT中的标准文件系统驱动程序用作FS过滤器驱动程序53。
PD_FS 54是用于作为PD驱动器的驱动器2的文件管理的文件系统驱动程序,通过NT I/O管理器52而向PD存储器55输出例如由FS过滤器驱动程序53通过NT I/O管理器52请求的文件记录和读取的请求。
在驱动器2的文件系统中,执行诸如逻辑块单元中数据的读取和记录控制、文件分配管理、故障处理、以及空闲区域管理的文件管理。因此,PD_FS54不执行上述文件管理(由驱动器2中的文件系统执行的文件管理)。然而,看上去应用程序31就好像是被PD_FS 54执行的驱动器2的文件系统中的文件管理一样。因此,可以说是PD_FS 54伪装了驱动器2中的文件系统,并且,从这点上说,PD_FS 54是隐蔽文件系统。
通常,文件系统驱动程序具有高速缓冲存储文件流(将要记录在文件中的数据(记录数据)的文件)和文件元信息(meta-information)的高速缓冲存储功能。例如,根据这种高速缓冲存储功能,可以迅速得到被高速缓冲存储的文件流和文件信息,而无需实际访问光盘3。
在Windows NT OS中,NT高速缓冲存储管理器59具有高速缓冲存储功能,并且PD_FS 54使用NT高速缓冲存储管理器59来提供高速缓冲存储功能。
PD_FS 54包括文件句柄资源管理器54A,文件句柄资源管理器54A执行排他控制(以后描述)。
PD存储器55是存储类驱动程序,其对应于作为PD驱动器的驱动器2的实际设备驱动程序。PD存储器55将作为从PD_FS 54(在较高层中的盘驱动器)通过NT I/O管理器52提供的请求的IRP转换为SCSI(小型计算机系统接口)码,并且将SCSI码输出到SBP2(串行总线协议2)驱动程序56中。
由PD存储器55将IRP转换为SCSI码的原因是:在后续阶段中,SCSI码相对于由SBP2驱动程序56处理的SBP2具有所谓的好的相似性(affinity)。
SBP2驱动程序56根据SBP2而将来自PD存储器55的SCSI码转换为SBP2数据,并将SBP2数据提供给IEEE 1394总线驱动程序57。
在本实施例中,采用SBP2作为能够在通信中处理文件系统的协议,该通信是根据IEEE 1394标准并通过IEEE 1394总线驱动程序57控制的,IEEE1394总线驱动程序57是SBP2驱动程序56的后续阶段。然而,除SBP2之外的其它协议也是可以使用的。
通过对IEEE 1394接口22(图2)的控制,IEEE 1394总线驱动程序57从SBP2驱动程序56中将SBP2数据等传送到驱动器2,并接收从光盘3读取的数据。
虽然在本实施例中,在PC 1和驱动器2之间执行根据IEEE 1394标准的通信,但在其间也可以执行其它类型的通信。在这种情况下,取代IEEE 1394总线驱动程序57,可以使用与PC 1与驱动器2之间的通信相匹配的总线驱动程序。
作为AV应用程序的应用程序31可以记录在例如可拆卸存储介质21(图2)的形式,连同对于使用驱动器2作为PD驱动器来说是必需的PD_FS 54和PD存储器55一起销售。
记录有应用程序31、PD_FS 54和PD存储器55的可拆卸存储介质21不仅可作为单独产品、而且可作为以包括在驱动器2的程序包中的形式的驱动器2的附件而销售。
在图4中,应用程序31和Win32子系统51在用户模式下工作,而NT I/O管理器52、FS过滤器驱动程序53、PD_FS 54、PD存储器55、SBP2驱动程序56、IEEE 1394总线驱动程序57、内核58和NT高速缓冲存储管理器59在核心模式下工作。
在图4情况中,通过将IRP传递到作为文件系统过滤器驱动程序的FS过滤器驱动程序53、以及作为文件系统驱动程序的PD_FS 54,NT I/O管理器52请求来自文件系统过滤器驱动程序和文件系统驱动程序的处理。然而,作为Windows NT OS的NT I/O管理器52可以通过不仅将IRP、还将FastIO传递到文件系统过滤器驱动程序和文件系统驱动程序来请求处理。
换句话说,NT I/O管理器52向文件系统过滤器驱动程序和文件系统驱动程序提供除IRP之外还传递FastIO的服务,借此从文件系统过滤器驱动程序和文件系统驱动程序请求处理。
因此,一般而言,Windows NT OS中的文件系统过滤器驱动程序和文件系统驱动程序支持IRP和FastIO两者。
例如,根据FastIO,NT高速缓冲存储管理器59直接执行文件读取和写入。
在接下来的描述中,在IRP和FastIO之间,例如,使用IRP。然而,下列功能也可以由FastIO来实现。
接下来,下面参考图5中示出的流程图来说明当应用程序31请求访问光盘3时所执行的在FS过滤器驱动程序53、PD_FS 54、PD存储器55、SBP2驱动程序56和IEEE 1394总线驱动程序57中的进程的概述。
在下面的描述、以及图5和随后的图中,如果需要,Win32子系统51和NT I/O管理器52的描述和说明将被省略。
例如,当应用程序31调用用于请求访问光盘3的API函数时,从Win32子系统51将响应于该API函数的请求提供给NT I/O管理器52,NT I/O管理器52向FS过滤器驱动程序53提供遵循从Win32子系统51发出的请求的IRP。
在步骤S1,FS过滤器驱动程序53从NT I/O管理器52接收IRP并前进到步骤S2。在步骤2,FS过滤器驱动程序53过滤出来自NT I/O管理器52的IRP。在步骤S3,FS过滤器驱动程序53对将要提供给PD_FS 54的IRP进行排队。换句话说,FS过滤器驱动程序53在队列(未示出)中提供并存储来自NT I/O管理器52的IRP。
FS过滤器驱动程序53还读取存储在该队列中的IRP,并通过NT I/O管理器52而向PD_FS 54提供所读取的IRP。该过程前进到步骤S4。
FS过滤器驱动程序53的处理取决于过滤器的属性而不同。因此,本实施例示出了处理的一个示例,并且FS过滤器驱动程序53的处理不限于该示例。
在步骤S4,PD_FS 54对来自FS过滤器驱动程序53的IRP所请求的数据执行高速缓冲存储,其需要使用NT高速缓冲存储管理器59的高速缓冲存储功能。前进到步骤S5,例如,PD_FS 54确定是否在NT高速缓冲存储管理器59中对由来自FS过滤器驱动程序53的IRP所请求的数据进行高速缓冲存储。
如果在步骤S5确定在NT高速缓冲存储管理器59中对由来自FS过滤器驱动程序53的IRP所请求的数据进行了高速缓冲存储,则该过程前进到步骤S6。在步骤S6中,PD_FS 54从NT高速缓冲存储管理器59接收来自FS过滤器驱动程序53的IRP所请求的数据,并将对该IRP的响应通过Win32子系统51而发回到应用程序31,应用程序31调用与该IRP相对应的API函数。
可替换地,如果在步骤S5确定未在NT高速缓冲存储管理器59中对来自FS过滤器驱动程序53的IRP所请求的数据进行高速缓冲存储,则该过程前进到步骤S7。在步骤S7,PD_FS 54将来自FS过滤器驱动程序53的IRP转换为命令(如后所述),并将该命令通过NT I/O管理器52而提供给PD存储器55。该过程前进到步骤S8。
在步骤S8,PD存储器55将来自PD_FS 54的IRP转换为对应的SCSI码,并将该SCSI码提供给SBP2驱动程序56。该过程前进到步骤S9。在步骤S9,SBP2驱动程序56将来自PD存储器55的SCSI码转换成SBP2数据,并将该SBP2数据提供给IEEE 1394总线驱动程序57。该过程前进到步骤S10。
在步骤S10,通过控制IEEE 1394接口22(图2),IEEE 1394总线驱动程序57将SBP2数据从SBP2驱动程序56传送到驱动器2。
IEEE 1394总线驱动程序57等待要从驱动器2传送的、对在步骤S10中传送的SBP2数据的响应。在步骤S11,IEEE 1394总线驱动程序57接收该响应,并通过PD存储器55、PD_FS 54、PD存储器55和Win32子系统51而将该响应发回到应用程序31,其中应用程序31传送在步骤S1中接收的IRP。
接下来,将参照图6来描述包括在驱动器2中的专用文件系统和在驱动器2中所采用的协议。
如上所述,驱动器2是能够实时记录或回放高比特率AV数据的PD驱动器,并具有真实文件系统61和虚拟文件系统62作为专用文件系统。虽然驱动器2可以是仅执行记录或者仅执行读取的驱动器,但在本实施例中,它是能够记录和读取的驱动器。
真实文件系统61依照例如UDF来管理光盘3中的真实(实际的)文件,并以逻辑块单元的方式控制对光盘3上的数据的记录和读取。真实文件系统61具有PD文件分配管理器(未示出)。PD文件分配管理器控制单行的(unicursal)记录,并对光盘3上的文件执行分配管理、故障处理、空闲区域管理等。
虚拟文件系统62执行例如对真实文件系统61上的真实文件进行过滤这样的处理,并将所得到的文件(虚拟文件)提供到驱动器2的外部。因此,在驱动器2的外部提供虚拟文件系统62。相应地,驱动器2具有基于一种协议的通信功能,该协议可以向所述外部提供由真实文件系统61管理的真实文件,作为由虚拟文件系统62管理的虚拟文件。
在本实施例中,在驱动器2中,AV数据、文本数据和其它任意的数据均可以通过虚拟文件系统62而被读取和记录。
在驱动器2中,例如,采用通过扩展SBP2的命令而得到的协议(IEEE 1394SBP2协议)作为能够将虚拟文件系统62(所管理的虚拟文件)提供给外部的协议,其中所述协议是能够在IEEE 1394通信(基于IEEE 1394标准的通信)中控制外设的协议。
当通过扩展SBP2的命令而得到的协议被称为PD-SBP2时,PD-SBP2在PC 1的应用程序层中的应用程序31等访问文件时提供与由OS 30的Win32子系统51(图4)所提供的接口(API)的功能相似的功能。因此,根据PD-SBP2,例如,通过指定文件名,可以对具有该文件名的文件执行文件流读取和写入,并基于该文件名和文件的路径名而获取文件的元信息。
如上所述,由于PD-SBP2是通过扩展SBP2的命令而得到、并在IEEE 1394通信中使用的协议(IEEE 1394 SBP2协议),所以将采用这种协议的驱动器2连接到IEEE 1394总线驱动程序57来控制IEEE 1394通信,并且,另外,IEEE1394总线驱动程序57被连接到实现SBP2的SBP2驱动程序56。
当OS 30为Windows NT OS时,包含在OS中的那些驱动程序可以被用作SBP2驱动程序56和IEEE 1394总线驱动程序57两者。
接下来,下面将通过参照图7来描述图6中的虚拟文件系统62的处理。
参照图7,在右边示出了由真实文件系统61管理的真实文件,并且,在左边示出了从虚拟文件系统62提供到驱动器2的外部的虚拟文件。
首先,下面描述在图7的右边示出的虚拟文件系统62的真实文件。
在以下描述中,跟随“目录”的字母数字字符代表目录的目录名。类似地,跟随“文件”的字母数字字符代表文件的文件名。另外,在每个文件名中,跟随句点的字母数字字符代表扩展名。例如,扩展名“XML”代表XML(可扩展的置标语言)文件。例如,扩展名“MXF”代表MXF文件。
真实文件的根目录(由“ROOT”表示)具有目录“PROAV”和通用目录(用“General”表示),其中“PROAV”目录具有存储关于诸如视频数据和音频数据的资料数据的信息和代表资料数据的编辑结果的编辑列表的目录、以及与其它AV数据相关的文件(目录),通用目录存储除了与AV数据相关的文件之外的任意数据文件,例如,“file Document.txt”、“Information.doc”和“EditData.xls”。
例如,可以采用MXF文件作为与AV数据相关的文件。另外,作为由真实文件系统61管理的真实文件的MXF文件用作其中视频数据和音频数据是作为独立文件来处理的MXF OP-Atom文件、并由虚拟文件系统62管理,在MXF OP-Atom文件中。将提供给外部的虚拟文件用作MXF OP-1a文件,其中视频数据和音频数据被交错地存取到一个文件中。
目录PROAV具有索引文件INDEX.XML和INDEX.BUP、盘信息文件DISINFO.XML和DISKINFO.BUP、盘元文件DISCMETA.XML。
索引文件INDEX.XML和INDEX.BUP包含用于管理记录在光盘3上的所有片段和编辑列表的管理信息。
例如,片段是一组一定量的数据的集合,例如通过同时记录而被记录在光盘3上的视频数据、以及与视频数据相对应的音频数据。编辑列表是对于执行所谓的“非线性编辑”的情况的编辑过程列表。例如,当文件的AV数据在非线性编辑中被剪切时,诸如识别文件的文件名、切入(cut-in)点、切出(cut-out)点的信息被记录在该编辑列表中。
盘信息文件DISCINFO.XML和DISKINFO.BUP是记录在光盘3上的全部数据的元数据。例如,它们是包括盘属性和回放开始位置的文件。
盘信息文件DISKINFO.BUP是盘信息文件DISCINFO.XML的备份文件(副本)。类似地,上面的索引文件INDEX.BUP是索引文件INDEX.XML的备份文件。
盘元文件DISCMETA.XML包括记录在光盘3上的所有资料数据的标题和注释、以及诸如到与代表性图像相对应的视频数据的路径的信息,其中该代表性的图像是用作被记录在光盘3上的所有视频数据的代表的帧。
目录PROAV具有:下级目录具有片段数据的片段根目录CLPR、以及下级目录具有编辑列表数据的编辑列表根目录EDTR。
在片段根目录CLPR中,记录在光盘中3上的片段数据是通过将其以片段单元方式而分成不同的目录来管理的。例如,在图7的右边,三个片段的数据是通过以被分成三个片段目录C0001、C0002和C0003的形式来管理的。
换句话说,记录在光盘3上的第一片段#1的数据项是作为片段目录C0001中的文件而被管理的,记录在光盘3上的第二片段#2的数据项是作为片段目录C0002中的文件而被管理的,而记录在光盘3上的第三片段#3的数据项是作为片段目录C0003中的文件而被管理的。
在片段目录C0001中,放置记录在光盘3上的第一片段#1的文件。
在图7的右边,片段目录C0001具有:用于管理片段#1的片段信息文件C0001C01.SMI、包括片段#1的视频数据的视频数据文件C0001V01.MXF、与片段#1的八个音频数据通道相对应的八个音频数据文件C0001A01.MXF至C0001A08.MXF、包括片段#1的低比特率视频数据的低分辨率数据文件C0001S01.MXF、包括与片段#1的资料数据相对应并且是不要求实时属性的元数据的片段元数据(例如在纵向时间码(LTC)和帧编号之间对应的转换表)的片段元数据文件C0001M01.XML、以及包括与片段#1的资料数据相对应并且是要求实时属性的元数据的帧元数据(例如LTC)的帧元数据文件C0001R01.BIM。
在图7右边的其它片段目录C0002和C0003具有关于片段#2和#3的类似于在片段目录C0001中的文件的文件。
在位于目录PROAV下的编辑列表根目录EDTR中,在编辑处理单元的不同目录中管理记录在光盘3上的编辑列表。在图7的右边,在四个不同的目录E0001、E0002、E0003、以及E0004下管理四个编辑列表。换句话说,显示第一次编辑记录在光盘3上的片段的结果的编辑列表#1作为在编辑列表E0001中的文件而被管理。显示第二次编辑记录在光盘3上的片段的结果的编辑列表#2作为在编辑列表E0002中的文件而被管理。显示第三次编辑记录在光盘3上的片段的结果的编辑列表#3作为在编辑列表E0003中的文管而理件。显示第四次编辑记录在光盘3上的片段的结果的编辑列表#4作为在编辑列表E0004中的文件而被管理。
在图7的右边,在编辑列表目录E0001中,具有作为编辑列表#1的文件的编辑列表文件E0001E01.SMI、以及包括与在根据编辑列表#1编辑之后得到的资料数据(在所有用于编辑的片段的资料数据中部分提取作为被编辑的数据)相对应的片段元数据或基于片段元数据而创建的新片段元数据的编辑列表片段元数据文件E0001M01.XML。
在图7中,编辑列表片段元数据文件E0001M01.XML包括基于在编辑中使用的片段的片段元数据(在片段根目录CLPR下的目录中的片段元数据文件(图7右边中,例如,目录C0001中的片段元数据文件C0001M01.XML))而创建的新片段元数据。例如,当对片段#1执行编辑时,从片段元数据文件C0001M01.XML中包括的片段元数据中提取与被编辑的资料数据相对应的部分。所述部分用于重建使用编辑过的资料数据作为片段的新片段元数据,并作为编辑列表片段元数据文件而被管理。换句话说,将使用编辑过的资料数据作为片段的新片段元数据加入被编辑的资料数据,并且片段元数据作为编辑列表片段元数据文件而被管理。因此,在每次执行编辑时创建编辑列表片段元数据文件。
在图7的右边,其它编辑列表目录E0002至E0004具有与片段列表目录E0001中的文件相类似的、关于编辑列表#2至#4的文件。
将由真实文件系统61管理的、在图7的右边示出的上述真实文件以图7的左边示出的虚拟文件系统62的形式而提供到驱动器2的外部。
换句话说,在虚拟文件系统62中,在根目录(ROOT)下,放置了索引文件INDEX.XML和盘元文件DISCMETA.XML,并提供目录Clip、Edit、Sub和General。
在虚拟文件系统62中,放置在根目录(ROOT)下的索引文件INDEX.XML和盘元文件DISCMETA.XML分别为由真实文件系统61管理的索引文件INDEX.XML和盘元文件DISCMETA.XML。
另外,在虚拟文件系统62中,在目录Clip中,放置由真实文件系统61管理的位于CLPR目录下的目录中的片段的数据文件。
换句话说,在图7的左边,在目录Clip中,提供文件C0001.MXF、C0002.MXF和C0003.MXF,分别作为图7右边的目录C0001、C0002和C0003中的片段的数据文件。
在真实文件系统61中,如上所述,片段数据作为MXF OP-Atom文件而被处理,其中视频数据和音频数据是作为独立文件而被处理的。
换句话说,在图7右边的目录C0001中,片段#1的数据被分成包括片段#1中视频数据的视频数据文件C0001V01.MXF、以及与片段#1中的八个音频数据通道相对应的音频数据文件C0001A01.MXF至C0001A08.MXF。
另外,在虚拟文件系统62中,如上所述,片段数据用作MXF OP-1a文件,其中将视频数据和音频数据交错记录到一个文件中。
在图7左边的目录Clip中的C0001.MXF文件为其中交错记录了图7右边的目录C0001中的片段#1的视频数据和音频数据的文件。
换句话说,文件C0001.MXF是其中交错记录了目录C0001中的视频数据文件C0001V01.MXF的视频数据和音频数据文件C0001A01.MXF至C0001A08.MXF的八个音频数据通道的文件。
类似地,目录Clip中的文件C0002.MXF是其中交错记录了目录C0002中的片段#2中的视频数据和音频数据的文件,而文件C0003.MXF是其中交错记录了目录C0003中的片段#3中的视频数据和音频数据的文件。
在图7左边的目录Clip中,还放置了每个片段中的片段元数据。
在图7左边的目录Clip中,放置了片段元数据文件C0001M01.XML、C0002M01.XML、以及C0003M01.XML。目录Clip中的片段元数据文件C0001M01.XML是片段#1中的片段元数据文件,并且是图7右边的目录C0001中的片段元数据文件C0001M01.XML。
类似地,目录Clip中的片段元数据文件C0002M01.XML是片段#2中的片段元数据文件,并且是图7右边的目录C0002中的片段元数据文件。类似地,目录Clip中的片段元数据文件C0003M01.XML是片段#3中的片段元数据文件,并且是图7右边的目录C0003中的片段元数据文件。
在图7左边的根目录(ROOT)中的目录Edit中,放置位于图7右边EDTR目录之下的目录中的文件。
在目录Edit中,放置文件E0001E01.SMI、E0001M01.XML、E0002E01.SMI、E0002M01.XML、E0003E01.SMI、E0003M01.XML、E0004E01.SMI、以及E0004M01.XML。
图7左边的目录Edit中的文件E0001E01.SMI和E0001M01.XML分别是图7右边编辑列表#1的目录E0001中的文件E0001E01.SMI和E0001M01.XML。
类似地,目录Edit中的文件E0002E01.SMI和E0002M01.XML是编辑列表#2的E0002目录中的文件。目录Edit中的文件E0003E01.SMI和E0003M01.XML是编辑列表#3的E0003目录中的文件。目录Edit中的文件E0004E01.SMI和E0004M01.XML是编辑列表#4的E0004目录中的文件。
在图7左边的目录Sub中,放置有片段的低分辨率数据文件。
特别地,在图7左边的目录Sub中,放置低分辨率数据文件C0001S01.MXF、C0002S01.MXF和C0003S01.MXF。目录Sub中的低分辨率数据文件C0001S01.MXF是片段#1的低分辨率数据文件,并且是图7右边的目录C0001中的低分辨率数据文件C0001S01.MXF。
类似地,目录Sub中的低分辨率数据文件C0002S01.MXF是片段#2的低分辨率数据文件,并且是图7右边的目录C0002中的低分辨率数据文件。另外,类似地,目录Sub中的低分辨率数据文件C0003S01.MXF是片段#3的低分辨率数据文件,并且是图7右边的目录C0003中的低分辨率数据文件。
在图7左边的目录General中,放置图7右边的目录GeneralSub中的文件Document.txt、Information.doc和EditData.xls。
虚拟文件系统62(图6)以单个文件(虚拟文件)的形式向外部提供由真实文件系统61管理的不同文件中的片段的视频数据和音频数据。
在虚拟文件系统62中,在由真实文件系统61管理的文件当中,过滤出不需要提供到外部(应用程序或用户)的文件,例如在驱动器2内使用的文件,由此这些文件是不向外部显示的。
在本实施例中,在图7中,通过在虚拟文件系统62中执行过滤,可以防止从外部检测到备份文件INDEX.BUP和DISCINFOBLOCK-UNITPROCESSING、盘信息文件DISCINFO.XML、片段信息文件C0001C01.SMI、帧元数据文件C0001R01.BIM等。
如上所述,根据虚拟文件系统62,可将由真实文件系统61管理的MXFOP-Atom中的不同视频数据和音频数据文件以一个MXF OP-1a文件的形式而提供到外部,在该MXF OP-1a文件中将视频数据和音频数据交错记录在一个文件中。因此,有利于由用户和应用程序31处理文件。
换句话说,在将由真实文件系统61管理的MXF OP-Atom中的不同视频数据和音频数据文件提供到外部时,例如,为了使用户指定用于回放的片段#1、以及使用应用程序31来回放片段#1,用户需要例如指定片段#1的视频数据文件C0001V01.MXF和片段#1的八个音频数据通道的文件C0001A01.MXF至C0001A08.MXF。应用程序31需要执行打开所有由用户指定的九个文件C0001V01.MXF和C0001A01.MXF至C0001A08.MXF,取得它们的句柄,并从所述文件读取视频数据和音频数据。
反之,根据虚拟文件系统62,片段#1中的文件C0001V01.MXF中的视频数据和片段#1中的文件C0001A01.MXF至C0001A08.MXF的八个通道的音频数据可以作为一个文件C0001.MXF而提供。因此,用户只需指定一个文件C0001.MXF,并且,另外,应用程序只需取得指定的文件C0001.MXF的文件句柄来读取数据。
根据虚拟文件系统62,由于对由真实文件系统61管理的文件执行过滤,所以,可以说在驱动器2内部使用的文件等,如盘信息文件DISCINFO.XML,对外部是隐藏的。
因此,可防止在驱动器2内部使用的文件等由于用户的误操作而被删除或重写。此外,可以防止用户在搜索需要的文件时、由于看到用户不需要的文件的这种状态而产生妨碍。
如参考图6所描述的,在驱动器2中,采用作为通过扩展用于IEEE 1394通信的SBP2的指令而获得的协议(IEEE 1394 SBP2协议)的PD-SBP2,作为用于将虚拟文件系统62提供到外部的协议。
在SBP2中,被称为“启动器”的设备将指令传送到被称为“目标”的设备,并且所述目标发回对来自启动器的命令的响应。
图8示出了在将指令从启动器传送到目标的情况下,作为SBP2数据的SCSI命令块ORB(操作请求块)的格式。在SBP2中,SCSI命令块ORB用于数据传送和设备控制。
图8中,在“next_ORB”字段中,设置下一个ORB的地址、或空(null)。
当“data_size”字段不为0时,“data_descriptor”字段是有效的,并且在其中设置数据缓冲器或者页表(page table)的地址。
在“n(通知位)”字段中,设置指示是否需要目标完成的通知的信息。
在“rq_fmt”字段中,设置ORB格式信息。
“r(保留)”字段为所谓的保留区域。
在“d(方向位)”字段中,设置数据传送的方向。换句话说,当“d”字段为0时,代表从目标读取数据(目标读取事务(transaction)),而当其为1时,代表将数据写入目标(目标写入事务)。
在“spd(速度)”字段中,设置目标的数据传送过程速度。
在“max_payload”字段中,设置传送的最大量(长度)。传送的最大量可以是2到(max_payload+2)的幂。
在“p(page_table_present位)”字段中,设置0或1。换句话说,当在data_descriptor字段中设置数据缓冲器的地址时,在“p”字段中设置0。另外,当在data_descriptor字段中设置页表的地址时,则在“p”字段中设置1。
当“p”字段为1时,在“page_size”字段中,设置作为数据缓冲器的存储器的页面大小。页面大小可以是2到(page_size+8)的幂。
当“p”字段为0时,在“page_size”字段中,设置数据缓冲器的大小。
在“cdb(SCSI命令描述符块)”字段中,也就是在“cdb[0]”到“cdb[11]”十二个字段中设置SCSI命令(码)。
在SBP2中,在可以在CDB[0]字段中设置的值中,C0h到FFh(h指示在h前的文字数字字目)代表厂商专用区域。
因此,在PD_SBP2中,厂商专用区域的值用于命令扩展(新命令定义)。
换句话说,在PD_SBP2中,在CDB[0]字段中设置命令(的操作码)。此外,如果需要,在PD_SBP2中,可以在CDB[1]到CDB[11]字段中设置命令(扩展命令)的参数(操作数)。
接下来,图9示出了SBP2状态块的格式,其中SBP2状态块是作为目标根据从启动器发出的命令而发发回的响应的SBP2数据。在SBP2中,SBP2状态块是SCSI检测数据的状态块,并在目标发发回状态的请求或更改的完成时被使用。
在图9中,在“src”字段中,设置代表SBP2状态块的来源的标记。
在“resp(响应状态)”字段中,设置代表响应状态的信息。
在“d(无用位(dead bit))”字段中,设置指示提取代理(fetch agent)因为设置了错误而变为无用状态的标志。
在“len”字段,设置SBP2状态块的大小。SBP2状态块的大小是通过将一个四字节(quadlet)(32比特)加到在“len”字段中设置的值而得到的值。
在“sbp_status”字段中,设置和“resp”字段相关联的附加信息。
在“ORB_offset_hi”字段和“ORB offset_lo”字段中,设置产生SBP2状态块的ORB信息。
“r(保留)”字段是保留区域。
在“sfmt”字段中,设置SBP2状态块的格式信息。
在状态字段中,设置SCSI状态。
在“v(有效位)”字段中,设置代表信息字段(以后描述)的内容有效或者无效的标志。
在“m”字段中,例如,设置SCSI标记位,并且在“e”字段中,设置SCSI信息结束(eom)位。在“i”字段中,设置SCSI非法长度指示符位,并且,在sense_key字段中,设置SCSI检测键位。在sense_code字段中,设置SCSI附加检测码,并且在sense_qualifier字段中,设置SCSI附加检测码限定符。
在information字段、CDB-dependent字段、“fru”字段、sense_key_dependent字段、以及vender-dependent字段中的每个中,设置取决于设备类型、命令等的信息。
在PD-SBP2中,在information字段中,设置扩展命令的返回值。
接下来,图10为PD-SBP2中的命令(扩展命令)的列表。
在图10中,命令“文件打开(FILE OPEN)”使用文件名和文件打开模式作为参数,并且打开由作为参数的文件打开模式中的文件名参数指定的文件。对于命令“文件打开”,发回打开的文件的文件句柄。
命令“文件关闭(FILE CLOSE)”使用文件句柄作为参数,并关闭由文件句柄指定的文件。
命令“文件读取(FILE READ)”使用文件句柄和读取大小作为参数,并读取由作为参数的文件句柄和作为参数的读取大小指定的文件的数据(文件流数据)。
命令“文件写入(FILE WRITE)”使用文件句柄和写入大小作为参数,并将数据(文件流数据)写入到由作为参数的文件句柄和作为参数的写入大小指定的文件中。
命令“文件逻辑搜寻(FILELOGICAL SEEK)”使用文件句柄和逻辑位置作为参数,并将由作为参数的文件句柄指定的文件的文件指针(当前文件指针)位置改变为作为参数的逻辑位置。
命令“设置EOF(SET EOF)”使用文件句柄作为参数,并且将EOF(文件结束)的位置改变为由作为参数的文件句柄指定的文件指针所表示的位置。
命令“删除(DELETE)”使用文件名作为参数,并且删除具有该文件名的文件。
命令“重命名(RENAME)”使用未改变的文件名(或目录名)和改变后的文件名(或目录名)作为参数,并且将未改变的文件名改变为改变后的文件名。
命令“创建目录(MAKE DIRECTORY)”使用目录名作为参数,并生成(创建)具有该目录名的目录。
命令“删除目录(REMOVE DIRECTORY)”使用目录名作为参数,并删除具有该目录名的目录。
命令“列表打开(LIST OPEN)”使用文件名(或目录名)作为参数,并发回用于得到具有该文件名和文件元信息的文件列表的句柄。
命令“列表读取(LIST READ)”使用命令“列表打开”所发回的句柄作为参数,并读取由该句柄指定的文件列表和文件元信息。
命令“格式化(FORMAT)”对装入驱动器2中的光盘3进行格式化。
命令“弹出(EJECT)”弹出装入驱动器2中的光盘3。
命令“盘信息(DISC INFO)”发回与装入驱动器2中的光盘3有关的信息,也就是说,例如光盘3的空闲区域。
命令“系统(SYSTEM)”发回关于驱动器2的信息(系统信息)。
命令“设置(SETUP)”使驱动器2能够接收PD-SBP2命令。换句话说,通过接收命令“设置”,驱动器2变得能够接收图10中的其它命令。
接下来,下面将通过参照图11来说明PD-SBP2协议文件读取顺序。
在PC 1中的应用程序31(图4)中,当从驱动器2中的光盘3读取数据时,SBP2驱动程序56用作启动器,而驱动器2用作目标。
在步骤S21,作为启动器的PC 1(中的SBP2驱动程序56)将文件打开命令传送到作为目标的驱动器2。在步骤S41,驱动器2接收到命令“文件打开”并开始进行步骤S42。
在步骤S42,驱动器2打开来自PC 1的命令“文件打开”中指定的文件,并将其文件句柄发回PC 1中。在这种情况下,由命令“文件打开”指定的文件是驱动器2通过虚拟文件系统62而提供到外部的文件。并且,由驱动器2发送的文件句柄是驱动器2通过虚拟文件系统62而提供到外部的文件的文件句柄。
在步骤S22,PC 1从驱动器2中接收文件句柄并前进到步骤S23。在步骤S23,PC 1将命令“文件逻辑搜寻”传送到驱动器2,该命令请求由文件句柄指定的文件的文件指针,该指针将被移动到将要读取的数据的开始位置。
在步骤S43,驱动器2接收命令“文件逻辑搜寻”。驱动器2将在步骤S42中打开的文件的文件指针移动到由来自PC 1的命令“文件逻辑搜寻”所指定的位置。
从步骤S43前进到步骤S44,如果驱动器2已成功移动了文件指针,则驱动器2将成功响应“良好(GOOD)”发回PC 1。如果驱动器2移动文件指针失败,则其将失败响应“错误(ERROR)”发回PC 1。
在步骤S24,PC 1从驱动器2中接收响应。如果来自驱动器2的响应为指示驱动器2移动文件指针失败的“错误”,则PC 1执行例如结束进程。
如果来自驱动器2的响应为指示驱动器2成功移动文件指针的“良好”,则PC 1从步骤S24前进到步骤S25,并将命令“文件读取”传送到驱动器2,以便请求数据的读取。
在步骤S45,驱动器2从PC 1接收命令“文件读取”,并从在步骤S43中移动的文件指针的位置读取数据。
依次前进到步骤461到46N,驱动器2将在步骤S45中读取的数据传送到PC 1。
一次可以从驱动器2传送到PC 1的数据的最大大小是有限的。因此,当由来自PC 1的命令“文件读取”请求读取的数据的大小大于驱动器2一次可以传送的最大数据大小时,驱动器2将由来自PC 1的命令“文件读取”请求读取的数据分成多个部分,例如每个部分具有一次可以传送的最大数据大小,并传送每个部分。在图11中示出的实施例中,从步骤461至S46N,将数据从驱动器2传送到PC 1中N次。
在步骤S261至S26N,PC 1接收在步骤461至S46N传送的数据。在步骤S261至S26N后完成了命令“文件读取”请求的所有数据的接收时,PC 1前进到步骤S27,并将命令“文件关闭”传送到驱动器2,以便请求关闭由在步骤S21传送的命令“文件打开”请求打开的文件。
在步骤S47,驱动器2从PC 1接收命令“文件关闭”,并关闭由接收到的命令“文件关闭”指定的文件。
进一步从步骤S47前进到步骤S48,如果驱动器2已成功关闭文件,则驱动器2将成功响应“良好”发回到PC 1,而如果驱动器2关闭文件失败,则驱动器2发回失败响应“错误”。
接下来,下面将通过参照图12中示出的流程图来描述PD-SBP2协议文件写顺序。
在PC 1的应用程序31(图4)中,当数据被记录在驱动器2的光盘3上时,PC 1中的SBP2驱动程序56用作启动器,而驱动器2用作目标。
在步骤S61中,作为启动器的PC 1(的SBP2驱动程序56)将命令“文件打开”传送到作为目标的驱动器2。在步骤S81,驱动器2接收所传送的命令“文件打开”,并前进到步骤S82。
在步骤S82,驱动器2打开来自PC 1的命令“文件打开”所指定的文件,并将其文件句柄发回到PC 1。
在步骤S62,PC 1从驱动器2中接收文件句柄。前进到步骤S63,PC 1将命令“文件逻辑搜寻”传送到驱动器2,其中该命令请求将由文件句柄指定的文件的文件指针移动到数据记录的开始位置。
在步骤S83,驱动器2从PC 1接收命令“文件逻辑搜寻”。驱动器2还将在步骤S82中打开的文件的文件指针移动到由来自PC 1的命令“文件逻辑搜寻”所指定的位置。
从步骤S83前进到步骤S84,如果驱动器2移动文件指针成功,则其将成功响应“良好”发回PC 1。如果驱动器2移动文件指针失败,则驱动器2将失败响应“错误”发回PC 1。
在步骤S64,PC 1从驱动器2中接收响应。如果来自驱动器2的响应为指示驱动器2移动文件指针失败的“错误”,则其执行例如结束该进程。
如果来自驱动器2的响应为指示驱动器2移动文件指针成功的“良好”,则PC 1从步骤S64前进到步骤S65,并将用于请求数据记录的命令“文件写入”传送到驱动器2。
此外,依次前进到一组步骤S661到S66N,PC 1将要被记录的数据传送到驱动器2。
一次可以从PC 1到驱动器2传送的数据的最大大小是有限的。因此,当PC 1要记录的数据大小大于一次可以传送的最大数据大小时,PC 1将要被记录的数据分成多个部分,例如每个部分具有一次可以传送的最大数据大小,并传送每个部分。在图13中示出的实施例中,从步骤661至S66N,将数据从PC 1传送到驱动器2中N次。
在步骤85,驱动器2接收从PC 1传送的命令“文件写入”并依次前进到步骤S861至S86N。在步骤S661到S66N中,驱动器2接收从PC 1传送的数据,并从在步骤S83移动的文件指针的位置依次记录数据。
之后,前进到步骤S67,PC 1将用于请求关闭由在步骤S61传送的命令“文件打开”所请求打开的文件的命令“文件关闭”传送到驱动器2。
在步骤S87,驱动器2从PC 1接收命令“文件关闭”,并关闭命令“文件关闭”所指定的文件。
进一步从步骤S87前进到步骤S88,如果驱动器2关闭文件成功,则其将成功响应“良好”发回到PC 1。而如果驱动器2关闭文件失败,则其将失败响应“错误”发回到PC 1。
如上描述,SBP2驱动程序56(图4、图6)将来自PD存储器55的SCSI码(SCSI命令)转换为图8中示出的SCSI命令块ORB(SBP2数据),其中在cbd[0]字段中放置如图10所示的PD-SBP2命令(扩展命令)。
另外,如上所述,将通过作为位于PD_FS 54之上的层的设备驱动程序的NT I/O管理器52而从PD_FS 54中提供的IRP转换成SCSI码,并由PD存储器55将其输出到SBP2驱动程序56。
因此,将由PD_FS 54输出的IRP转换为SCSI码并由PD存储器55将其输出到SBP2驱动程序56。另外,由SBP2驱动程序56将来自PD存储器55的SCSI码转换为SBP2数据(SCSI命令块ORB)。
换句话说,SBP2驱动程序56将由PD存储器55输出的SCSI码转换为SBP2数据,该SBP2数据被放置在图8中示出的SCSI命令块ORB中的cbd[0]字段中。
在PD-SBP2中,在图8中示出的SCSI命令块ORB中的cbd[0]字段中,放置如图10所示的扩展命令。因此,由PD存储器55输出的SCSI码为图10中示出的扩展命令之一,并且可以说是特殊的SCSI码。因此,PD_FS 54通过NT I/O管理器52输出的IRP需要是特殊的IRP,要由PD存储器55将该特殊的IRP转换为特殊的SCSI码。
此外,当调用由Win32子系统51(图4)向应用程序31提供的用于文件操作的API函数时,预先确定由Win32子系统51通过NT I/O管理器52、FS过滤器驱动程序53以及NT I/O管理器52而向PD_FS 54提供的IRP。
换句话说,Win32子系统51给应用程序31提供例如用于打开文件的API函数CreateFile()、用于从文件读取数据的API函数ReadFile(),用于将数据记录在文件中的API函数WriteFile()等。
例如,当应用程序31调用API函数CreateFile()时,将API函数CreateFile()的IRP_MJ_CREATE预定的IRP从NT I/O管理器52提供给PD_FS 54。
类似地,例如,当应用程序31调用API函数ReadFile()或WriteFile()时,将API函数ReadFile()的IRP_MJ_Read的预定的IRP和IRP_MJ_Write的预定的IRP从NT I/O管理器52提供给PD_FS 54。
在这种情况下,如果PD_FS 54使用NT I/O管理器52来向PD存储器55提供要通过NT I/O管理器52提供的IRP,则预先确定要通过NT I/O管理器52提供的IRP,即,例如,被称为“标准IRP”的诸如IRP_MJ_CREATE、IRP_MJ_READ和IRP_MJ_WRITE的IRP。因此,在PD存储器55中,IRP被转换成与IRP相对应的SCSI码、以及不是扩展命令的SCSI码(不是特殊的SCSI码)。
因此,PD_FS 54转换通过NT I/O管理器52而提供的IRP,借此将特殊的IRP通过NT I/O管理器52而提供给PD_FS 54,其中所述特殊的IRP要被转换为作为扩展命令的SCSI码(特殊的SCSI码)。
作为特殊的IRP,使用指定了用户定义的IOCTL码的IRP_MJ_DEVICE_CONTROL的IRP。
图13示出了由用作特殊的IRP的IRP_MJ_DEVICE_CONTROL的IRP所指定的用户定义的IOCTL码,其中由PD_FS 54通过NT I/O管理器52将所述特殊的IRP输出到PD存储器55。
除了命令“设置”之外,图13示出的IOCTL码与图10中示出的PD-SBP2命令(扩展命令)一一对应。
具体地,在图13中,IOCTL_PD_FILE_OPEN、IOCTL_PD_FILE_CLOSE、IOCTL_PD_FILE_READ、IOCTL_PD_FILE_WRITE、IOCTL_PD_FILE_LOGICAL_SEEK、IOCTL_PD_SET_EOF、IOCTL_PD_DELETE、IOCTL_PD_RENAME、IOCTL_PD_MAKE_DIRECTORY、IOCTL_REMOVE_DIRECTORY、IOCTL_PD_LIST_OPEN、IOCTL_PD_LIST_READ、IOCTL_PD_FORMAT、IOCTL_PD_EJECT,、IOCTL_PD_DISC_INFO和IOCTL_PD_SYSTEM分另对应于图10中的命令,即,“文件打开”、“文件关闭”、“文件读取”、“文件写入”、“文件逻辑搜寻”、“设置EOF”、“删除”、“重命名”、“创建目录”、“删除目录”、“列表打开”、“列表读取”、“格式化”、“弹出”、“盘信息”和“系统”。
当由PD_FS 54通过NT I/O管理器52提供的IRP是指定了如图13所示的IOCTL码的IRP、即IRP_MJ_DEVICE_CONTROL的IRP时,PD存储器55将对应于IOCTL的扩展命令(特殊的SCSI码)输出到SBP2驱动程序56。
SBP2驱动程序56将来自PD存储器55的对应于IOCTL码的扩展命令转换为如图8所示的SCSI命令块ORB(SBP2数据),在SCSI命令块ORB中,将该扩展命令放置在cbd[0]字段中。
接下来,通过参照图14中示出的流程图来进一步说明图6(图4)中的PD_FS 54所执行的IRP处理。为了描述简练起见,假设不使用由NT高速缓冲存储管理器59提供的高速缓冲存储功能。
例如,应用程序31调用由Win32子系统51提供的关于文件操作的API函数,当将对应于API函数的IRP通过Win32子系统51、NT I/O管理器52、FS过滤器驱动程序53和NT I/O管理器52传送到PD_FS 54时,在步骤S101,PD_FS 54接收所传送的IRP,并前进到步骤S102。
在步骤S102,PD_FS 54将在步骤S101接收的IRP转换为函数IoCallDriver(),函数IoCallDriver()发出要被转换成能够在IEEE 1394通信中处理文件系统的SBP2命令的、如图13所示的IOCTL码。
函数IoCallDriver()在工作于用户模式时具有与由Win32子系统51提供的API函数DeviceIoControl()相类似的功能。在核心模式中使用此函数。
之后,在步骤S103,PD_FS 54调用在步骤S102中得到的函数IoCallDriver(),在等待要传送的下一个IRP之后返回到步骤S101,并重复执行类似的处理。
如上所述,在步骤S103,当PD_FS 54调用函数IoCallDriver()时,NT I/O管理器52将由调用的函数IoCallDriver()所发出的IOCTL码指定的IRP(IRP_MJ_DEVICE_CONTROL的IRP)输出到PD存储器55。PD存储器55将作为与IRP所指定的IOCTL码(图13)相对应的特殊SCSI码的扩展命令(图10)输出到SBP2驱动程序56。
SBP2驱动程序56将与来自PD存储器55的IOCTL码相对应的扩展命令转换为SCSI命令块ORB(SBP2数据)(图8),其中在cbd[0]字段放置扩展命令,并通过IEEE 1394总线驱动程序57而将SCSI命令块ORB传送到驱动器2。
如上所述,在PD_FS 54中,被提供使得应用程序31调用关于文件操作的API函数的IRP被转换为函数IoCallDriver(),其中IoCallDriver()发出要被转换成能够在IEEE 1394通信中处理文件系统的PD-SBP2命令(图10中的扩展命令)的、如图13所示的IOCTL码。因此,通过在驱动器2中直接使用真实文件系统61和虚拟文件系统62,可容易地控制驱动器2。
换句话说,即使OS 30或应用程序31不控制单行记录,驱动器2也控制单行记录。因此,可以实时地执行AV数据的记录和回放。
此外,由于应用程序31可以将驱动器2中的虚拟文件系统62视为安装在PC 1上,所以,由虚拟文件系统62管理的文件可类似于由诸如NTFS或FAT的普通文件系统管理的文件而被处理。
作为PD驱动器的驱动器2主要试图实时地读取和记录高比特率AV数据。对于此应用,要被读取和记录的通常仅为一个流。
换句话说,虽然PD驱动器可以同时读取和记录多个数据流,但当同时地(时分地)读取和记录数据流时,单行记录的属性使得在改变要被读取或记录的数据流时发生搜寻,并且,搜寻妨碍了实时特性。因此,为了确保实时特性,需要降低AV数据(流)的比特率。
另外,在要读取和记录的仅被设置为一个流的情况下,假设可以高比特率实时地读取和记录AV数据,如果要被读取和记录的被设置为M个流,则简单地说,与仅一个流被读取和记录的情况相比,实时读取和记录是困难的,除非流具有等于或低于1/M的比特率。因此,能够被读取和记录的流是低图像质量或低声音质量的AV数据。
根据前述描述,为了执行实时的高比特率AV数据的读取和记录,优选地是,将要从驱动器2读取或记录在驱动器2上的AV数据流的数目限制为1。可以通过例如控制驱动器2仅处理单个文件句柄来实现该限制。
另外,根据计算机的通用OS,通常,可以打开多个文件。
因此,当驱动器2连接到PC 1时,应用程序31优选地打开装入驱动器2中的光盘3上的多个文件,并优选地,可以操作所打开的文件。
因此,当驱动器2仅使用一个文件句柄时,PD_FS 54可被提供有使应用程序31能够貌似打开多个文件的函数(如果需要,在下文中称为“多个文件同时打开函数”)。
图15为图解多个文件同时打开函数的方框图。
特别地,图15是在应用程序31多次打开文件时的内核58的状态的示意图解。
当应用程序31打开多个文件时,在内核58中,创建与文件的打开相对应的文件对象。
在图15中,在内核58中创建三个文件对象81、82、83。
创建文件对象81,从而应用程序31调用API函数CreateFile(),并打开例如由虚拟文件系统62管理的文件C0001.MXF(如图7的左边所示)。
类似于文件对象81,创建文件对象82,从而应用程序31调用API函数CreateFile(),并打开例如由虚拟文件系统62管理的文件C0001.MXF(如图7的左边所示)。
创建文件对象83,从而应用程序31调用API函数CreateFile(),并打开例如由虚拟文件系统62管理的文件C0002.MXF(如图7的左边所示)。
因此,在图15中,应用程序31调用API函数CreateFile()两次以便打开文件C0001.MXF,并调用API函数CreateFile()一次以便打开文件C0002.MXF,借此在内核58中创建三个文件对象81至83。
文件对象81至83中的每个具有文件名、文件句柄(文件系统文件句柄),和对应文件的文件指针。
由PD_FS 54中的文件句柄资源管理器54A提供多个文件同时打开函数。
换句话说,从驱动器2发回的文件句柄具有资源特征,即难以使多个文件句柄有效的属性(多个文件句柄不能使用)。
因此,文件句柄资源管理器54A通过在文件对象81中创建的文件对象来专门地控制从驱动器2发回的文件句柄的访问。可由任意方法,如信号机(semaphore)方法,来执行该专门控制。
换句话说,文件句柄资源管理器54A存储从驱动器2发回的PD-SBP2中的文件句柄(在下文中称为“PD-SBP2文件句柄”)、以及指向文件对象的指针,该文件对象使用SBP2文件句柄。
当应用程序31调用请求打开与由目前存储的SBP2文件句柄所指定的文件不同的文件的API函数FileCreate()、请求读取数据的API函数ReadFile()、以及请求记录数据的API函数WriteFile()之一时,文件句柄资源管理器54A关闭由目前存储的PD-SBP2文件句柄所指定的文件。
此外,通过使用应用程序31来调用API函数,文件句柄资源管理器54A请求驱动器2打开请求数据的读取或记录的文件。文件句柄资源管理器54A响应该请求而重新存储由驱动器2发回的PD-SBP2文件句柄,来代替已存储的PD-SBP2文件句柄。文件句柄资源管理器54A还存储使用重新存储的PD-SBP2文件句柄的、指向文件对象的指针,来代替已存储的指针。
通过使用PD_FS 54的上述多个文件同时打开函数(的文件句柄资源管理器54A),应用程序31可以(貌似)同时打开多个文件。
接下来,下面将通过参照图16中示出的流程图进一步说明多个文件同时打开函数。为了描述的简洁起见,假设不使用由NT高速缓冲存储管理器59(图4)所提供的高速缓冲存储功能。
例如,当在步骤S111应用程序31调用请求打开文件A的API函数CreateFile()时,Win32子系统51(图4)将响应该调用的请求输出到NT I/O管理器52,并且NT I/O管理器52响应来自Win32子系统51的请求,而将请求打开文件A的API函数CreateFile()输出到PD_FS 54。
在步骤S131,PD_FS 54(的文件句柄资源管理器54A)接收请求打开文件A的“IRP-MJ-CREATE”,其中提供“IRP-MJ-CREATE”使得应用程序31在步骤S111调用API函数,并前进到步骤S132。在步骤S132,PD_FS 54(的文件句柄资源管理器54A)调用函数IoCallDriver()来发出作为请求打开文件A的IOCTL码的IOCTL_PD_FILE_OPEN(图13)。
响应由PD_FS 54在步骤S132中调用的函数IoCallDriver(),NT I/O管理器52将IRP_MJ_DEVICE_CONTROL(的IRP)提供给PD存储器55,在IRP_MJ_DEVICE_CONTROL中指定了IOCTL_PD_FILE_OPEN。
在步骤S171,PD存储器55接收IRP_MJ_DEVICE_CONTROL,其中指定了IOCTL_PD_FILE_OPEN,并且将IRP_MJ_DEVICE_CONTROL提供给PD存储器55使得PD_FS 54在步骤S132调用函数IoCallDriver(),并且,PD存储器55通过SBP2驱动程序56和IEEE 1394总线驱动程序57将与IRP_MJ_DEVICE_CONTROL相对应的扩展命令“文件打开”(图10)输出到驱动器2。
这允许驱动器2打开光盘3上的文件A(通过虚拟文件系统62而显示给外部的文件A)。
在此之后,例如,在步骤S112,当应用程序31调用请求从文件A读取数据的API函数ReadFile()时,Win32子系统51将响应该调用的请求输出到NT I/O管理器52,并且,响应来自Win32子系统51的请求,NT I/O管理器52将与请求从文件A中读取数据的API函数ReadFile()相对应的IRP_MJ_READ(的IRP)输出到PD_FS 54。
在步骤S133,PD_FS 54接收请求从文件A读取数据的IRP-MJ-READ,其中提供该IRP-MJ-READ使得应用程序31在步骤S112调用API函数,并前进到步骤S134。在步骤S134,响应IRP_MJ_READ,PD_FS 54调用发出作为请求从文件A读取数据的IOCTL码的IOCTL_PD_FILE_READ(图13)的函数IoCallDriver()。
响应由PD_FS 54在步骤S134调用函数IoCallDriver(),NT I/O管理器52将IRP_MJ_DEVICE_CONTROL(的IRP)提供给PD存储器55,在IRP_MJ_DEVICE_CONTROL中指定了IOCTL_PD_FILE_READ。
在步骤S172,PD存储器55接收IRP_MJ_DEVICE_CONTROL,其中提供给了IOCTL_PD_FILE_READ,并且,提供IRP_MJ_DEVICE_CONTROL使得PD_FS 54在步骤S134调用函数IoCallDriver(),并且,PD存储器55通过SBP2驱动程序56和IEEE 1394总线驱动程序57将与IRP_MJ_DEVICE_CONTROL相对应的扩展命令“文件读取”(图10)输出到驱动器2中。
这允许驱动器2从光盘3上的文件A读取数据。通过IEEE 1394总线驱动程序57、SBP2驱动程序56、PD_FS 54、FS过滤器驱动程序53而将在驱动器2中读取的数据提供到应用程序31。
PD存储器55包括用于读取和记录数据的读取/写入缓冲器(未示出)。例如,读取/写入缓冲器的大小与分页的页面大小(例如,4千字节)相等,并且一次读取或记录的数据的最大大小受到读取/写入缓冲器的大小的限制。
因此,当由来自应用程序31的IRP_MJ_READ(提供IRP_MJ_READ使得应用程序31调用API函数ReadFile())请求读取的数据的大小超过了读取/写入缓冲器的大小时,PD_FS 54将来自应用程序31的IRP_MJ_READ分成请求读取大小不超过读取/写入缓冲器的大小的数据的多个IRP“IRP_MJ_DEVICE_CONTROL”,并将划分后的IRP输出到PD存储器55。换句话说,PD_FS 54多次调用发出IOCTL_PD_FILE_READ来请求读取大小不大于读取/写入缓冲器的大小的数据的函数IoCallDriver()。这向PD存储器55提供多个IRP_MJ_DEVICE_CONTROL的IRP,在每个IRP_MJ_DEVICE_CONTROL中指定了IOCTL_PD_FILE_READ。
这也适用于来自应用程序31的请求将数据记录在一个文件中的IRP_MJ_WRITE。
在图16中,响应在步骤S133中的PD_FS 54的IRP_MJ_READ,在步骤S134至S136中的每个,将IRP_MJ_DEVICE_CONTROL输出到PD存储器55,其中在IRP_MJ_DEVICE_CONTROL中指定了请求从文件A中读取数据的IOCTL_PD_FILE_READ。换句话说,将IOCTL_PD_FILE_READ从PD_FS54输出到PD存储器55三次。
在步骤S172到S174中的每个,通过接收在步骤S134到S136中的每个由PD_FS 54输出、并且其中指定了IOCTL_PD_FILE_READ的IRP_MJ_DEVICE_CONTROL、以及通过SBP2驱动程序56和IEEE 1394总线驱动程序57而向驱动器2输出与IRP_MJ_DEVICE_CONTROL相对应的扩展命令“文件读取”,PD存储器55从文件A读取数据三次。
之后,当在步骤S113应用程序31调用请求打开不同于目前在驱动器2中打开的文件A的文件B的API函数时,与步骤S111中的情况相似,将与请求打开文件B的API函数CreateFile()相对应的IRP_MJ_CREATE提供到PD_FS 54。
在步骤S137,PD_FS 54从应用程序31接收IRP_MJ_CREATE(请求打开文件B并被提供使得应用程序31调用API函数CreateFile()的IRP_MJ_CREATE),并前进到步骤S138,并且调用发出IOCTL_PD_FILE_CLOSE(图13)的函数IoCallDriver(),其中IOCTL_PD_FILE_CLOSE是用于请求关闭文件A的IOCTL码。
换句话说,如上所述,驱动器2可以使用的文件句柄的数目仅为一个。因此,在请求打开文件B之前,PD_FS 54请求关闭目前打开的文件A。
响应在步骤S138由PD_FS 54调用函数IoCallDriver(),NT I/O管理器52将其中指定了IOCTL_PD_FILE_CLOSE的IRP_MJ_DEVICE_CONTROL提供到PD存储器55。
在步骤S175,PD存储器55接收其中指定了IOCTL_PD_FILE_CLOSE、被提供使得PD_FS 54在步骤S138调用函数IoCallDriver()的IRP_MJ_DEVICE_CONTROL,并且通过SBP2驱动程序56和IEEE 1394总线驱动程序57而将与IRP_MJ_DEVICE_CONTROL相对应的扩展命令“文件关闭”输出到驱动器2。
这允许驱动器2关闭光盘3上的文件A。
通过响应在步骤S137接收到的请求打开文件B的IRP_MJ_CREATE,而在执行步骤S138之后前进到步骤S139、并调用请求作为用于请求打开文件B的IOCTL码的IOCTL_PD_FILE_OPEN(图13)的函数IoCallDriver(),PD_FS 54将其中指定了IOCTL_PD_FILE_OPEN的IRP_MJ_DEVICE_CONTROL提供到PD存储器55。
在步骤S176中,PD存储器55从PD_FS 54接收IRP_MJ_DEVICE_CONTROL(即其中指定了IOCTL_PD_FILE_OPEN、并被提供使得PD_FS 54调用函数IoCallDriver()的IRP_MJ_DEVICE_CONTROL),并通过SBP2驱动程序56和IEEE 1394总线驱动程序57将与IRP_MJ_DEVICE_CONTROL相对应的扩展命令“文件打开”(图10)输出到驱动器2。
这允许驱动器2打开光盘3上的文件B(通过虚拟文件系统62显示给外部的文件B)。
在此之后,例如,当在步骤S114应用程序31调用请求将数据记录在文件B中的API函数WriteFile()时,Win32子系统51将响应该调用的请求输出到NT I/O管理器52,并且,响应来自Win32子系统51的请求,NT I/O管理器52将与请将求数据记录在文件B中的API函数WriteFile()相对应的IRP_MJ_WRITE输出到PD_FS 54。
在步骤S140,PD_FS 54接收请求将数据记录在文件B中的IRP_MJ_WRITE,其中提供IRP_MJ_WRITE使得应用程序31在步骤S114中调用API函数,并前进到步骤S141。在步骤S141,响应IRP_MJ_WRITE,PD_FS 54调用函数IoCallDriver()来发出作为是请求将数据记录在文件B中的IOCTL码的IOCTL_PD_FILE_WRITE(图13)。
响应由PD_FS 54在步骤S141调用函数IoCallDriver(),NT I/O管理器52将其中指定了IOCTL_PD_FILE_WRITE的IRP_MJ_DEVICE_CONTROL提供到PD存储器55。
在步骤S177,PD存储器55接收其中指定了IOCTL_PD_FILE_WRITE、并被提供使得PD_FS 54在步骤S141调用函数IoCallDriver()的IRPMJ_DEVICE_CONTROL,并通过SBP2驱动程序56和IEEE 1394总线驱动程序57将与IRPMJ_DEVICE_CONTROL相对应的扩展命令“文件打开”输出到驱动器2。
这允许驱动器2将数据记录到光盘3上的文件B中。
如上所述,数据可以一次被读取或记录的最大大小受PD存储器55中的读取/写入缓冲器的大小的限制。
因此,当通过由来自应用程序31的IRP_MJ_WRITE(IRP_MJ_WRITE被提供从而使应用程序31调用API函数)请求记录的数据量超过了读取/写入缓冲器的大小时,PD FS 54将来自应用程序31的IRP_MJ_WRITE分成请求读取大小不超过读取/写入缓冲器的大小的数据的多个IRP“IRP_MJ_DEVICE_CONTROL”,并将划分后的IRPs输出到PD存储器55。换句话说,响应来自应用程序31的IRP_MJ_WRITE,PD_FS 54多次调用发出用于请求大小不大于读取/写入缓冲器的大小的数据的记录的IOCTL_PD_FILE_WRITE的函数IoCallDriver(),由此向PD存储器55提供多个IRP“IRP_MJ_DEVICE_CONTROL”,在每个IRP_MJ_DEVICE_CONTROL中指定了IOCTL_PD_FILE_WRITE。
在图16中,响应在步骤S140由PD_FS 54接收的IRP_MJ_WRITE,在步骤S141至S143中的每个,将其中指定了请求将数据记录在文件B中的IOCTL_PD_FILE_WRITE的IRP_MJ_DEVICE_CONTROL输出到PD存储器55。换句话说,将IOCTL_PD_FILE_WRITE从PD_FS 54输出到PD存储器55三次。
在步骤S177到S179中的每个,通过接收其中指定了IOCTL_PD_FILE_WRITE并在步骤S141到S143中的每个由PD_FS 54输出的IRP_MJ_DEVICE_CONTROL、以及通过SBP2驱动程序56和IEEE 1394总线驱动程序57向驱动器2三次输出与IRP_MJ_DEVICE_CONTROL相对应的扩展命令“文件读取”,PD存储器55将数据记录在文件B中三次。
在此之后,当在步骤S115应用程序31调用请求读取不同于目前在驱动器2中打开的文件B的文件A的API函数ReadFile()时,与步骤S112中的情况类似,将与请求从文件A读取数据的API函数ReadFile()相对应的IRP_MJ_READ提供到PD_FS 54。
在步骤S144,PD_FS 54从应用程序31接收IRP_MJ_READ(请求从文件A读取数据、并被提供使得应用程序31调用分配标记ReadFile()的IRP_MJ_READ),并前进到步骤S145。在步骤145,响应接收到的IRP_MJ_READ,PD_FS 54调用函数IoCallDriver()来发出作为用于请求关闭文件B的IOCTL码的IOCTL_PD_FILE_CLOSE(图13)。
换句话说,如上所述,驱动器2可以使用的文件句柄的数目仅仅为一个。因此,在请求从文件A读取数据之前,PD_FS 54请求关闭目前打开的文件B。
响应在步骤S145中由PD_FS 54调用的函数IoCallDriver(),NT I/O管理器52将其中指定了请求关闭文件B的IOCTL_PD_FILE_CLOSE的IRP_MJ_DEVICE_CONTROL提供到PD存储器55。
在步骤S180,PD存储器55接收其中指定了IOCTL_PD_FILE_CLOSE、并被提供使得PD_FS 54在步骤S145调用函数IoCallDriver()的IRP_MJ_DEVICE_CONTROL,并通过SBP2驱动程序56和IEEE 1394总线驱动程序57将与IRP_MJ_DEVICE_CONTROL相对应的扩展命令“文件关闭”(图10)输出到驱动器2中。
这允许驱动器2关闭光盘3上的文件B。
响应在步骤S144接收的、请求从文件A读取数据的IRP_MJ_READ而在执行步骤S145之后前进到步骤S146,PD_FS 54调用发出作为请求打开文件A的IOCTL码的IOCTL_PD_FILE_OPEN(图13)的函数IoCallDriver()。
换句话说,由于文件A目前是关闭的,使得在步骤S175中PD存储器55将用于请求关闭文件A的扩展命令“文件关闭”(图10)输出到驱动器2,所以,为了从文件A读取数据,PD_FS 54调用发出作为请求打开文件A的IOCTL码的IOCTL_PD_FILE_OPEN的函数IoCallDriver()。
响应在步骤S146由PD_FS 54调用函数IoCallDriver(),NT I/O管理器52将其中指定了请求打开文件A的IOCTL_PD_FILE_OPEN的IRP_MJ_DEVICE_CONTROL提供到PD存储器55。
在步骤S181中,PD存储器55接收其中指定了IOCTL_PD_FILE_OPEN、并被提供使得PD_FS 54调用函数IoCallDriver()的IRP_MJ_DEVICE_CONTROL,并通过SBP2驱动程序56和IEEE 1394总线驱动程序57将与IRP_MJ_DEVICE_CONTROL相对应的扩展命令“文件打开”(图10)输出到驱动器2。
这允许驱动器2打开光盘3上的文件A。
通过响应在步骤S144接收到的从文件A中读取数据的IRP_MJ_READ、并调用发出作为请求从文件A中读取数据的IOCTL码的IOCTL_PD_FILE_READ(图13)的IoCallDriver(),而在执行步骤S146后前进到步骤S147,PD_FS 54将其中指定了发出的IOCTL_PD_FILE_READ的IRP_MJ_DEVICE_CONTROL提供到PD存储器55。
在步骤S182,PD存储器55接收由PD_FS 54提供的、其中指定了IOCTL_PD_FILE_READ的IRP_MJ_DEVICE_CONTROL,并通过SBP2驱动程序56和IEEE 1394总线驱动程序57而将与接收的IRP_MJ_DEVICE_CONTROL相对应的扩展命令“文件读取”(图10)输出到驱动器2。
这允许驱动器2从光盘3上的文件A中读取数据。将从驱动器2读取的数据通过IEEE 1394总线驱动程序57、SBP2驱动程序56、PD存储器55、以及FS过滤器驱动程序53而提供给应用程序31。
基于由于上面的PD存储器55中的读取/写入缓冲器的大小的、在读取和写入中的限制,在图16中,响应在步骤S144中由PD_FS 54接收的IRP_MJ_READ,在步骤S147至S149的每个中,将其中指定了请求从文件A中读取数据的IOCTL_PD_FILE_READ的IRP_MJ_DEVICE_CONTROL输出到PD存储器55。换句话说,将IOCTL_PD_FILE_READ从PD_FS 54输出到PD存储器55三次。
通过在步骤S182到S184中的每个中接收在步骤S147到S149中的每个由PD_FS 54输出的其中指定了IOCTL_PD_FILE_READ的IRP_MJ_DEVICE_CONTROL、以及通过SBP2驱动程序56和IEEE 1394总线驱动程序57将与IRP_MJ_DEVICE_CONTROL相对应的扩展命令“文件读取”输出到驱动器2中,PD存储器55从文件A读取数据三次。
之后,当在步骤S116应用程序31调用请求将数据记录到不同于目前在驱动器2中的打开文件A的文件B的API函数WriteFile()时,与步骤S114中的情况相似,将与请求将数据记录在文件B中的API函数WriteFile()相对应的IRP_MJ_WRITE提供到PD_FS 54。
在步骤S150,PD_FS 54从应用程序31接收IRP-MJ-WRITE(请求将数据记录在文件B中、并被提供使得应用程序31调用API函数WriteFile()的IRP_MJ_WRITE),并前进到步骤S151。在步骤S151,响应接收到的IRP_MJ_WRJTE,PD_FS 54调用发出作为请求关闭文件A的IOCTL码的IOCTL_PD_FILE_CLOSE(图13)的函数IoCallDriver()。
换句话说,如上所述,驱动器2可以使用的文件句柄的数目仅为一个。因此,在请求将数据记录在文件B中之前,PD_FS 54请求关闭目前打开的文件A。
响应在步骤S151由PD_FS 54调用函数IoCallDriver(),NT I/O管理器52将其中指定了用于请求关闭文件A的IOCTL_PD_FILE_CLOSE的IRP_MJ_DEVICE_CONTROL提供到PD存储器55。
在步骤S185,PD存储器55接收其中指定了IOCTL_PD_FILE_CLOSE、并被提供使得PD_FS 54在步骤S151调用函数IoCallDriver()的IRP_MJ_DEVICE_CONTRoL,并通过SBP2驱动程序56和IEEE 1394总线驱动程序57将与IRP_MJ_DEVICE_CONTROL相对应的扩展命令“文件关闭”(图10)输出到驱动器2中。
这允许驱动器2关闭光盘3上的文件A。
响应在步骤S150接收的请求将数据记录在文件B中的IRP_MJ_WRITE而在步骤S151之后进入步骤S152,PD_FS 54调用发出作为请求打开文件B的IOCTL码的IOCTL_PD_FILE_OPEN(图13)的函数IoCallDriver()。
换句话说,在上述步骤S180,PD存储器55将请求关闭文件B的扩展命令“文件关闭”(图10)输出到驱动器2,由此文件B目前是关闭的。因此,为了将数据记录在文件B中,PD_FS 54调用发出作为请求打开文件B的IOCTL码的IOCTL_PD_FILE_OPEN的函数IoCallDriver()。
响应在步骤S152中由PD_FS 54调用函数IoCallDriver(),NT I/O管理器52将其中指定了IOCTL_PD_FILE_OPEN的IRP_MJ_DEVICE_CONTROL提供到PD存储器55。
在步骤S186中,PD存储器55接收其中指定了IOCTL_PD_FILE_OPEN、并被提供使得PD_FS 54在步骤152调用函数IoCallDriver()的IRP_MJ_DEVICE_CONTROL,并通过SBp2驱动程序56和IEEE 1394总线驱动程序57将与IRP_MJ_DEVICE_CONTROL相对应的扩展命令“文件打开”(图10)输出到驱动器2。
这允许驱动器2打开光盘3上的文件B。
响应在步骤S151接收的、请求将数据记录在文件B中的IRP_MJ_WRITE而在步骤S152之后进入步骤S153,PD_FS 54调用发出作为请求将数据记录在文件B中的IOCTL码的IOCTL_PD_FILE_WRITE(图13)的函数IoCallDriver(),由此向PD存储器55提供其中指定了IOCTL_PD_FILE_WRITE的IRP_MJ_DEVICE_CONTROL。
在步骤S187中,PD存储器55接收由PD_FS 54提供的、其中指定了IOCTL_PD_FILE_WRITE的IRP_MJ_DEVICE_CONTROL,并通过SBP2驱动程序56和IEEE 1394总线驱动程序57将与IRP_MJ_DEVICE_CONTROL相对应的扩展命令“文件写入”(图10)输出到驱动器2。
这允许驱动器2将数据记录在光盘3上的文件B中。
基于由于PD存储器55中的读取/写入缓冲器的大小的、在读取和写入中的限制,在图16中,响应在步骤S150中由PD_FS 54接收的IRP_MJ_READ,在步骤S153至S155中的每个,将其中指定了请求将数据记录在文件B中的IOCTL_PD_FILE_WRITE的IRP_MJ_DEVICE_CONTROL输出到PD存储器55。换句话说,将IOCTL_PD_FILE_WRITE从PD_FS 54输出到PD存储器55三次。
通过在步骤S187到S189中的每个接收在步骤S153到S155中的每个由PD_FS 54输出的其中指定了IOCTL_PD_FILE_WRITE的IRP_MJ_DEVICE_CONTROL、以及通过SBP2驱动程序56和IEEE 1394总线驱动程序57输出与IRP_MJ_DEVICE_CONTROL相对应的扩展命令“文件写入”,PD存储器55将数据记录在文件B中三次。
之后,当在步骤S117应用程序31调用请求关闭文件A的API函数CreateFile()时,Win32子系统51(图4)将响应该调用的请求输出到NT I/O管理器52,并且NT I/O管理器52响应来自Win32子系统51的请求,将请求清空文件A的IRP_MJ_CLEANUP和与请求关闭文件A的API函数CreateFile()相对应的IRP_MJ_CLOSE输出到PD_FS 54。
在步骤S156到S157,PD_FS 54分别接收请求清空文件A、并且被提供使得应用程序31调用API函数的IRP_MJ_CLEANUP、以及请求关闭文件A的IRP_MJ_CLOSE。
响应请求清空文件A的IRP_MJ_CLEANUP,PD_FD 54执行清空处理,如清除由NT高速缓冲存储管理器59(图4)提供的高速缓冲存储功能所高速缓冲存储的数据。此外,PD_FS 54确定由IRP_MJ_CLOSE请求关闭的文件A是否被打开。例如,确定使用如参照图15而描述的PD-SBP2文件句柄的文件对象是否用作文件A的文件对象。
由于在图16中,文件A目前是关闭的,使得在步骤S185,PD存储器55将请求关闭文件A的扩展命令“文件关闭”输出到驱动器2,所以,PD_FS54确定由IRP_MJ_CLOSE请求关闭的文件A已被关闭。在这种情况下,PD_FS 54不特别地执行对请求关闭文件A的IRP_MJ_CLOSE的处理。
当在步骤S118应用程序31调用请求关闭文件B的分配标志CloseFile()时,Win32子系统51(图4)将响应该调用的请求输出到PD_FS 54,并且NT I/O管理器52响应来自Win32子系统51的请求,而将请求清空文件B的IRP_MJ_CLEANUP、和与请求关闭文件B的API函数CloseFile()相对应的IRP_MJ_CLOSE输出到PD_FS 54。
在步骤S158至S159,PD_FS 54分别接收请求清空文件B并且被提供使得应用程序31在步骤S118调用API函数的IRP_MJ_CLEANUP、以及请求关闭文件B的IRP_MJ_CLOSE。
响应请求清空文件B的IRP_MJ_CLEANUP,例如,PD_FS 54执行如上所述的清空处理。PD_FS 54确定由IRP_MJ_CLOSE请求关闭的文件B是否是打开的。
在图16中,文件B目前是打开的,使得在步骤S186,PD存储器55将请求打开文件B的扩展命令“文件打开”(图10)输出到驱动器2。因此,PD_FS54确定是由IRP_MJ_CLOSE请求关闭的文件B目前是打开的。
在这种情况下,响应在步骤S159接收到的、请求关闭文件B的IRP_MJ_CLOSE,而前进到步骤S160,响应IRP_MJ_CLOSE,PD_FS 54调用发出作为请求关闭文件B的IOCTL码的IOCTL_PD_FILE_CLOSE(图13)的函数IoCallDriver()。
响应在步骤S160由PD_FS 54调用的函数IoCallDriver(),NT I/O管理器52将其中指定了请求关闭文件B的IOCTL_PD_FILE_CLOSE的IRP_MJ_DEVICE_CONTROL提供到PD存储器55。
在步骤S190,PD存储器55接收其中指定了IOCTL_PD_FILE_CLOSE、并被提供使得PD_FS 54在步骤S160调用函数IoCallDriver()的IRP_MJ_DEVICE_CONTROL,并通过SBP2驱动程序56和IEEE 1394总线驱动程序57将与IRP_MJ_DEVICE_CONTROL相对应的扩展命令“文件关闭”输出到驱动器2。
这允许驱动器2关闭光盘3上的文件B。
如上所述,根据多个文件同时打开函数,当请求访问不同于当前在驱动器2中打开的文件的文件时,通过使用PD-FS 54(的文件句柄资源管理器54A)来关闭当前打开的文件和打开请求访问的文件,专门地控制在驱动器2中使用的一个文件句柄的访问。因此,应用程序31可以对多个文件执行操作,而无需专门考虑驱动器2仅可以使用一个文件句柄。
虽然,在本实施例中,光盘被用作记录和回放数据的记录介质,但本发明可应用于例如在诸如硬盘的记录介质上记录和回放数据的情况。
在本说明书中,控制PC 1执行各类处理的程序步骤不需要按照以流程图形式描述的顺序执行,并且包括并行或分别运行的步骤(例如,并行处理或基于对象的处理)。
本领域的技术人员应当理解,在不脱离附加权利要求或其等价物的范围内,可以根据设计需要和其它因素而产生各种修改、组合、子组合和交替。

Claims (6)

1.一种信息处理装置,其连接到具有文件系统的记录或回放装置,该信息处理装置包括:
接收部件,用于接收由操作系统响应来自应用程序的文件操作请求而提供的命令;以及
转换部件,用于将由操作系统提供的命令转换为请求,其中要将该请求转换为基于能够通过与所述记录或回放装置进行通信而控制文件系统的通信协议的命令。
2.如权利要求1所述的信息处理装置,还包括独占控制部件,当所述记录或回放装置仅使用一个文件句柄时,该独占控制部件专门地控制对在所述记录或回放装置中使用的所述一个文件句柄的访问。
3.如权利要求1所送的信息处理装置,其中,该信息处理装置是不执行在所述记录或回放设备的文件系统中执行的文件管理的文件系统驱动器。
4.如权利要求1所述的信息处理装置,其中,从所述记录或回放装置中的文件中读取的数据或记录在所述记录或回放装置中的文件中的数据至少包括视听数据。
5.如权利要求1所述的信息处理装置,其中,在所述记录或回放装置中,在记录介质的记录区域中的具有预定或更大大小的连续空闲区域之中,保留具有最新记录的数据的空闲区域,并将数据记录在所保留的区域中。
6.一种用于连接到具有文件系统的记录或回放装置的信息处理装置的信息处理方法,该信息处理方法包括以下步骤:
接收由操作系统响应来自应用程序的文件操作请求而提供的命令;以及
将由操作系统提供的命令转换为请求,其中要将该请求转换为基于能够通过与所述记录或回放装置进行通信而控制文件系统的通信协议的命令。
CNB2005100788275A 2004-04-15 2005-04-15 信息处理装置、信息处理方法及随其使用的程序和记录介质 Expired - Fee Related CN100399310C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP119851/04 2004-04-15
JP2004119851A JP4241485B2 (ja) 2004-04-15 2004-04-15 情報処理装置および情報処理方法、並びにプログラムおよび記録媒体

Publications (2)

Publication Number Publication Date
CN1690993A CN1690993A (zh) 2005-11-02
CN100399310C true CN100399310C (zh) 2008-07-02

Family

ID=34940794

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2005100788275A Expired - Fee Related CN100399310C (zh) 2004-04-15 2005-04-15 信息处理装置、信息处理方法及随其使用的程序和记录介质

Country Status (5)

Country Link
US (1) US7769920B2 (zh)
EP (1) EP1586988A3 (zh)
JP (1) JP4241485B2 (zh)
KR (1) KR101116433B1 (zh)
CN (1) CN100399310C (zh)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7647455B2 (en) 2004-04-15 2010-01-12 Sony Corporation Information processing apparatus and method, program, and program recording medium
US20080133564A1 (en) 2004-11-09 2008-06-05 Thomson Licensing Bonding Contents On Separate Storage Media
EP1669855A1 (en) * 2004-12-02 2006-06-14 Deutsche Thomson-Brandt Gmbh Method for generating multi-language menus
JP2007257494A (ja) * 2006-03-24 2007-10-04 Sony Corp データ記録装置、接続装置、情報処理システム、及び情報処理方法
JP2008107965A (ja) * 2006-10-24 2008-05-08 Sony Corp 情報処理装置、情報処理方法、プログラム、プログラム記録媒体
JP4349441B2 (ja) * 2007-06-12 2009-10-21 ソニー株式会社 情報処理装置、および情報処理方法、並びにコンピュータ・プログラム
JP5034921B2 (ja) * 2007-12-14 2012-09-26 ソニー株式会社 情報処理装置、ディスク、および情報処理方法、並びにプログラム
US8166067B2 (en) 2008-12-26 2012-04-24 Sandisk Il Ltd. Method and apparatus for providing access to files based on user identity
US8239395B2 (en) 2008-12-26 2012-08-07 Sandisk Il Ltd. Storage device presenting to hosts only files compatible with a defined host capability
US20100169395A1 (en) * 2008-12-26 2010-07-01 Sandisk Il Ltd. Device and method for filtering a file system
US8943409B2 (en) 2008-12-26 2015-01-27 Sandisk Il Ltd. Storage device managing playable content
US9092597B2 (en) 2009-12-09 2015-07-28 Sandisk Technologies Inc. Storage device and method for using a virtual file in a public memory area to access a plurality of protected files in a private memory area
JP2011203977A (ja) * 2010-03-25 2011-10-13 Hitachi-Lg Data Storage Inc ストレージ装置、及びストレージ装置におけるファイルシステムの生成方法
US9424271B2 (en) 2012-08-30 2016-08-23 International Business Machines Corporation Atomic incremental load for map-reduce systems on append-only file systems
CN104750605B (zh) * 2013-12-30 2018-08-14 伊姆西公司 将内核对象信息包括在用户转储中
KR101996266B1 (ko) * 2014-09-18 2019-10-01 삼성전자주식회사 호스트 및 이를 포함하는 컴퓨터 시스템
JP6767319B2 (ja) * 2017-07-31 2020-10-14 株式会社ソニー・インタラクティブエンタテインメント 情報処理装置およびファイルコピー方法
US11513691B2 (en) * 2021-01-09 2022-11-29 Western Digital Technologies, Inc. Systems and methods for power and performance improvement through dynamic parallel data transfer between device and host

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1168182A (zh) * 1995-11-10 1997-12-17 索尼公司 信息处理装置及信息处理方法
CN1209899A (zh) * 1996-09-30 1999-03-03 松下电器产业株式会社 适用于在/从盘上记录/再生av数据的记录/再生方法,用于该方法的记录器和再生器,信息记录盘和信息处理系统
CN1304101A (zh) * 2000-01-07 2001-07-18 索尼公司 信息处理系统、便携电子装置及其存取装置和存储空间
CN1329407A (zh) * 2000-06-14 2002-01-02 索尼公司 信息处理设备和方法、信息管理系统及程序储存介质
US20030215212A1 (en) * 2002-04-05 2003-11-20 Takashi Furukawa Recording control apparatus and method, and program and recording medium used therewith

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH025150A (ja) 1988-06-24 1990-01-10 Nec Corp 磁気ディスクボリューム空き領域管理方式
US5463772A (en) * 1993-04-23 1995-10-31 Hewlett-Packard Company Transparent peripheral file systems with on-board compression, decompression, and space management
US5961582A (en) * 1994-10-25 1999-10-05 Acorn Technologies, Inc. Distributed and portable execution environment
JP2000148651A (ja) 1998-11-10 2000-05-30 Hitachi Ltd 共有ディスク装置
JP3511935B2 (ja) 1999-03-05 2004-03-29 日本電気株式会社 マルチスレッド・プログラムにおけるファイル書込方式
US6823398B1 (en) * 2000-03-31 2004-11-23 Dphi Acquisitions, Inc. File system management embedded in a storage device
JP2002175286A (ja) 2000-12-05 2002-06-21 Hitachi Ltd 記憶装置、情報処理システムおよび排他制御方法
JP3629216B2 (ja) 2001-03-08 2005-03-16 株式会社東芝 デフラグメンテーション機能を有するディスク記憶システム、及び同システムにおけるデフラグメンテーション方法
US7266538B1 (en) * 2002-03-29 2007-09-04 Emc Corporation Methods and apparatus for controlling access to data in a data storage system
US7493404B2 (en) * 2002-05-30 2009-02-17 Lsi Corporation Apparatus and method for providing transparent sharing of channel resources by multiple host machines utilizing mixed mode block and file protocols
JP2004030254A (ja) 2002-06-26 2004-01-29 Hitachi Ltd リモートsi制御方式

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1168182A (zh) * 1995-11-10 1997-12-17 索尼公司 信息处理装置及信息处理方法
CN1209899A (zh) * 1996-09-30 1999-03-03 松下电器产业株式会社 适用于在/从盘上记录/再生av数据的记录/再生方法,用于该方法的记录器和再生器,信息记录盘和信息处理系统
CN1304101A (zh) * 2000-01-07 2001-07-18 索尼公司 信息处理系统、便携电子装置及其存取装置和存储空间
CN1329407A (zh) * 2000-06-14 2002-01-02 索尼公司 信息处理设备和方法、信息管理系统及程序储存介质
US20030215212A1 (en) * 2002-04-05 2003-11-20 Takashi Furukawa Recording control apparatus and method, and program and recording medium used therewith

Also Published As

Publication number Publication date
JP2005301853A (ja) 2005-10-27
JP4241485B2 (ja) 2009-03-18
CN1690993A (zh) 2005-11-02
US20050232589A1 (en) 2005-10-20
KR101116433B1 (ko) 2012-03-07
US7769920B2 (en) 2010-08-03
EP1586988A2 (en) 2005-10-19
EP1586988A3 (en) 2008-12-24
KR20060045646A (ko) 2006-05-17

Similar Documents

Publication Publication Date Title
CN100399310C (zh) 信息处理装置、信息处理方法及随其使用的程序和记录介质
US7860907B2 (en) Data processing
CA2099399C (en) Method and apparatus for accessing the same computer file using different file name formats
US7979478B2 (en) Data management method
US7308463B2 (en) Providing requested file mapping information for a file on a storage device
US7353242B2 (en) File server for long term data archive
US7073036B2 (en) Backup system and method for tape recording medium
CN100504873C (zh) 管理归档文件系统的方法和装置
CN101169795B (zh) 信息处理装置、信息处理方法、程序和程序记录介质
US20080215836A1 (en) Method of managing time-based differential snapshot
EP2191375B1 (en) Converting backup copies of objects created using a first backup program to backup copies created using a second backup program
KR20060094458A (ko) 파일 시스템 항목(들) 및 연관된 엔티티(들)를 직렬화하는시스템 및 방법
CN106649467B (zh) 一种蓝光光盘库归档管理方法及系统
TW200419346A (en) Method and system for managing image files
US20080016107A1 (en) Data processing
JPH0812628B2 (ja) ファイルシステム装置およびその操作方法
US8090925B2 (en) Storing data streams in memory based on upper and lower stream size thresholds
JP2002055995A (ja) 情報処理方法及び装置
CN107451138A (zh) 一种分布式文件系统存储方法和系统
US8176087B2 (en) Data processing
US7415480B2 (en) System and method for providing programming-language-independent access to file system content
US20020019822A1 (en) Database management system, method and program
US20120005162A1 (en) Managing Copies of Data Structures in File Systems
JP2001312422A (ja) 文書一括管理方法、文書一括管理装置および記録媒体
JP2830826B2 (ja) 分散ファイルの同期システムと方法

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
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20080702

Termination date: 20150415

EXPY Termination of patent right or utility model