欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

信息處理裝置、信息處理方法及隨其使用的程序和記錄介質(zhì)的制作方法

文檔序號:6624960閱讀:264來源:國知局

專利名稱::信息處理裝置、信息處理方法及隨其使用的程序和記錄介質(zhì)的制作方法
技術(shù)領(lǐng)域
:本發(fā)明涉及信息處理裝置、信息處理方法及隨其使用的程序和記錄介質(zhì)。特別地,本發(fā)明涉及一種用于通過使用通用計算機而簡單操作記錄或回放裝置(例如其中具有文件系統(tǒng)的盤驅(qū)動器)的信息處理裝置和信息處理方法、以及隨其使用的程序和記錄介質(zhì)。
背景技術(shù)
:在近些年,已經(jīng)出現(xiàn)了對記錄和回放例如光盤上的高比特率視聽(AV)數(shù)據(jù)的需求。因此,本發(fā)明的受讓人已提出了一種盤驅(qū)動器(例如,參見日本未審查專利申請公開第2004-005895號),其將諸如視頻數(shù)據(jù)和與其相關(guān)聯(lián)的音頻數(shù)據(jù)的多個數(shù)據(jù)序列周期性地記錄在光盤上,以使所述數(shù)據(jù)序列的邊界與光盤的邊界(如扇區(qū))相符。根據(jù)此盤驅(qū)動器,在某種程度上,將視頻數(shù)據(jù)和音頻數(shù)據(jù)共同記錄在光盤上的連續(xù)記錄區(qū)域中。因此,可以在不搜尋(seek)的情況下讀取和記錄所述共同的數(shù)據(jù)。另外,視頻數(shù)據(jù)和音頻數(shù)據(jù)之間的邊界與光盤上的扇區(qū)之間的邊界相符。因此,一個扇區(qū)不具有視頻數(shù)據(jù)和音頻數(shù)據(jù)的任何混合。因此,例如,可僅讀取視頻數(shù)據(jù)或音頻數(shù)據(jù)。換句話說,例如,當僅需要視頻數(shù)據(jù)時,可僅從光盤讀取視頻數(shù)據(jù)。與一個扇區(qū)具有視頻數(shù)據(jù)和音頻數(shù)據(jù)的混合的情況相比,可更有效率地(以高速)僅讀取視頻數(shù)據(jù)。這也可適用于音頻數(shù)據(jù)。
發(fā)明內(nèi)容本發(fā)明的受讓人已經(jīng)提出了一種盤驅(qū)動器,其中在光盤記錄區(qū)域的具有預定或更大大小的連續(xù)空閑區(qū)域之中,例如,保留與其中最新記錄了數(shù)據(jù)的記錄區(qū)域最近的空閑區(qū)域,并將數(shù)據(jù)記錄在所保留的記錄區(qū)域中。在這種情況下,理想地,將數(shù)據(jù)串以一種所謂的“單行”形式而記錄在光盤上的連續(xù)記錄區(qū)域中。因此,在數(shù)據(jù)記錄或回放模式中,可抑制搜尋的發(fā)生,可將高比特率AV數(shù)據(jù)實時地記錄在光盤上,并且可實時地回放來自光盤的高比特率AV數(shù)據(jù)。在本說明書中,在下文中,必要將通過在光盤記錄區(qū)域中的具有預定或更大大小的連續(xù)空閑區(qū)域之中、保留與其中最新記錄了數(shù)據(jù)的記錄區(qū)域最近的空閑區(qū)域、并將數(shù)據(jù)記錄在所保留的記錄區(qū)域中而減少在數(shù)據(jù)記錄或讀取模式下進行尋道的盤驅(qū)動器稱為“專用盤驅(qū)動器”。必要時,通過該專用盤驅(qū)動器而在其上記錄了數(shù)據(jù)的光盤在下文中稱為“專用盤”。必要時,專用盤在下文中也被簡稱為“PD”。另外,必要時,在下文中將以單行的形式而在光盤上的連續(xù)記錄區(qū)域記錄數(shù)據(jù)的、對這種數(shù)據(jù)的記錄稱為“單行記錄”。PD驅(qū)動器采用例如通用盤格式作為文件系統(tǒng),并且控制記錄,以便以UDF形式執(zhí)行AV數(shù)據(jù)的單行記錄。另外,PD驅(qū)動器執(zhí)行文件分配管理、對PD上的故障處理、空閑區(qū)域管理等。PD驅(qū)動器的文件系統(tǒng)具有如上所述的控制單行記錄、以及執(zhí)行文件分配管理、故障處理、空閑空間管理等功能。必要時,文件系統(tǒng)中執(zhí)行這些功能的部分在下文中被稱為“PD分配管理器”。近來,隨著中央處理單元的速度的增加、大容量存儲器的價格下降等,完善而便宜的計算機已成為現(xiàn)實。在這些計算機中,執(zhí)行大量AV數(shù)據(jù)的編輯和其它類型的處理的應(yīng)用程序(程序)(必要時,在下文中稱為“AV應(yīng)用程序”)也已成為現(xiàn)實。日益需要的是通過例如以內(nèi)置或外部連接形式將PD驅(qū)動器連接到計算機而在PD上讀取和記錄AV數(shù)據(jù)、以及由AV應(yīng)用程序訪問PD驅(qū)動器。為了使計算機的AV應(yīng)用程序在PD驅(qū)動器(中的PD)上記錄或回放AV數(shù)據(jù),PD驅(qū)動器需要被安裝在操作系統(tǒng)(OS)上,其中該操作系統(tǒng)被安裝在計算機中。關(guān)于PD驅(qū)動器的安裝,存在通過使用例如由安裝在計算機中的OS提供的諸如UDF文件系統(tǒng)、新技術(shù)文件系統(tǒng)(NTFS)和文件分配表(FAT)文件系統(tǒng)的通用文件系統(tǒng)來安裝PD驅(qū)動器的方法。然而,在通過使用OS提供的通用文件系統(tǒng)來安裝PD驅(qū)動器的情況下,不在PD驅(qū)動器中執(zhí)行單行記錄控制等。由此,不保證AV數(shù)據(jù)的讀取和記錄。換句話說,當不執(zhí)行單行的記錄控制時,以所謂的“散列狀態(tài)”而將AV數(shù)據(jù)項記錄在離散的位置。這導致了搜尋的頻繁出現(xiàn),由此使得難以實時地讀取和記錄高比特率AV數(shù)據(jù)。另外,如上所述,當采用UDF文件系統(tǒng)作為PD驅(qū)動器的內(nèi)部文件系統(tǒng)時,如果通過使用UDF驅(qū)動程序而將PD驅(qū)動器安裝在計算機中,則可以未處理過的形式而由計算機上的應(yīng)用程序檢測PD驅(qū)動器中的UDF文件。因此,當PD中的AV數(shù)據(jù)文件為例如MXF(資料交換格式)OP-Atom形式時,相同內(nèi)容的AV數(shù)據(jù)被分為視頻數(shù)據(jù)和音頻數(shù)據(jù)文件,并將音頻數(shù)據(jù)分為通道單元形式的不同的文件,由計算機上的應(yīng)用程序?qū)⑻囟▋?nèi)容的AV數(shù)據(jù)檢測為視頻數(shù)據(jù)文件和通道單元形式的音頻數(shù)據(jù)文件,使得處理這些文件是不方便的。如上所述,PD驅(qū)動器的內(nèi)部文件系統(tǒng)具有PD分配管理器,用于控制單行記錄和執(zhí)行文件分配管理、故障處理、空閑區(qū)域管理等。因此,如果直接使用PD驅(qū)動器的文件系統(tǒng),則可由計算機(的應(yīng)用程序)來容易地控制PD驅(qū)動器。已考慮到上述情況而作出了本發(fā)明。期望能夠易于控制具有內(nèi)部文件系統(tǒng)的記錄或回放裝置,如盤驅(qū)動器。根據(jù)本發(fā)明的實施例,提供了一種信息處理裝置,其包括將由操作系統(tǒng)提供的命令轉(zhuǎn)換為請求的轉(zhuǎn)換裝置,其中要將該請求轉(zhuǎn)換為基于能夠通過與記錄或回放裝置進行通信而控制文件系統(tǒng)的通信協(xié)議的命令。當記錄或回放裝置僅使用一個文件句柄時,信息處理裝置還可包括獨占控制器,用于專門控制所述一個文件句柄的存取。信息處理裝置可以是一個文件系統(tǒng)驅(qū)動器(driver),該文件系統(tǒng)驅(qū)動器不執(zhí)行由記錄或回放裝置進行的文件管理。從記錄或回放裝置中的文件讀取或記錄在該文件中的數(shù)據(jù)可至少包括視聽數(shù)據(jù)。在記錄或回放裝置中,在記錄介質(zhì)的記錄區(qū)域中的具有預定或更大大小的連續(xù)空閑區(qū)域之中,可保留存有最新記錄了數(shù)據(jù)的空閑區(qū)域,并且可將數(shù)據(jù)記錄在該保留的區(qū)域中。根據(jù)本發(fā)明的實施例,提供了一種信息處理方法,其包括將由操作系統(tǒng)提供的命令轉(zhuǎn)換為請求的步驟,其中要將該請求轉(zhuǎn)換為基于能夠通過與記錄或回放裝置進行通信而控制文件系統(tǒng)的通信協(xié)議的命令。根據(jù)本發(fā)明的實施例,提供了一種程序,其包括將由操作系統(tǒng)提供的命令轉(zhuǎn)換為請求的步驟,其中要將該請求轉(zhuǎn)換為基于能夠通過與記錄或回放裝置進行通信而控制文件系統(tǒng)的通信協(xié)議的命令。根據(jù)本發(fā)明實施例,提供了一種包含程序的記錄介質(zhì),該程序包括將由操作系統(tǒng)提供的命令轉(zhuǎn)換為請求的步驟,其中要將該請求轉(zhuǎn)換為基于能夠通過與記錄或回放裝置進行通信而控制文件系統(tǒng)的通信協(xié)議的命令。圖1為示出應(yīng)用了本發(fā)明實施例的信息處理系統(tǒng)的配置的示例的方框圖;圖2為示出圖1中示出PC的配置的示例的方框圖;圖3為示出由圖2中示出的CPU執(zhí)行的程序的方框圖;圖4為示出圖3中示出的OS的內(nèi)部配置的示例的方框圖;圖5為圖解由圖3中示出的OS執(zhí)行的過程的概要的流程圖;圖6為示出圖1中示出的驅(qū)動器中的文件系統(tǒng)和該驅(qū)動器所采用的協(xié)議的方框圖;圖7為圖6中示出的虛擬文件系統(tǒng)的圖解;圖8為SCSI命令塊ORB的格式的圖解;圖9為SBP2狀態(tài)塊的格式的圖解;圖10為擴展命令的圖解;圖11為圖解基于PD-SBP2的文件讀取順序的流程圖;圖12為圖解基于PD-SBP2的文件記錄順序的流程圖;圖13為用戶定義的分組IOCTL的圖解;圖14為圖解圖4和圖6中的每個中示出的PDFS的流程圖;圖15為圖解多個文件同時打開函數(shù)的方框圖;以及圖16為圖解圖15中圖解的多個文件同時打開函數(shù)的流程圖。具體實施例方式下面通過參考附圖來描述本發(fā)明的實施例。圖1示出了應(yīng)用了本發(fā)明的實施例的信息處理系統(tǒng)的配置的例子。如圖1所示,該信息處理系統(tǒng)包括個人計算機(PC)1和驅(qū)動器2。PC1存儲操作系統(tǒng)(OS)和應(yīng)用程序(程序),并且通過在OS的控制下運行應(yīng)用程序來執(zhí)行各種類型的處理。例如,驅(qū)動器2是上述PD驅(qū)動器,并通過IEEE(電氣和電子工程師協(xié)會)1394線纜4而被連接到PC1。在驅(qū)動器2中,可以加載和卸載作為PD的光盤3。驅(qū)動器2通過根據(jù)IEEE1394標準與PC1通信,而在光盤3上讀取和記錄AV數(shù)據(jù)和其它類型的數(shù)據(jù)。驅(qū)動器2不需要是PD驅(qū)動器,并且光盤3不需要是PD。另外,PC1和驅(qū)動器2可以根據(jù)除IEEE1394標準以外的其它標準而相互通信。接下來,圖2示出了圖1中示出的PC1的硬件的配置的例子。PC1具有內(nèi)置中央處理單元(CPU)12。CPU12通過總線11而連接到輸入/輸出接口20。當通過操作包括鍵盤、鼠標、以及麥克風的輸入單元17而經(jīng)由輸入/輸出接口20向CPU12輸入指令時,CPU12運行存儲在只讀存儲器(ROM)13中的程序??商鎿Q地,在將存儲在硬盤15中的程序、在從衛(wèi)星或網(wǎng)絡(luò)傳送并且由通信單元18接收之后安裝到硬盤15中的程序、以及在從被加載到驅(qū)動器19中的可拆卸記錄介質(zhì)21讀取之后在硬盤15中安裝的程序中的一個程序加載到隨機存取存儲器(RAM)14中后,CPU12運行所加載的程序。這允許CPU12執(zhí)行根據(jù)流程圖(以后描述)的處理、或基于方框圖配置(以后描述)的處理。如果需要,則通過輸入/輸出接口20,CPU12控制包括液晶顯示器和揚聲器的輸出單元16來輸出處理的結(jié)果,控制通信單元18來傳送處理的結(jié)果,并執(zhí)行將處理的結(jié)果記錄在硬盤15中。在PC1中,根據(jù)IEEE1394標準控制通信的IEEE1394接口22被連接到輸入/輸出接口20。驅(qū)動器2通過IEEE1394線纜4而被連接到IEEE1394接口22。通過經(jīng)由總線11、輸入/輸出接口20、IEEE1394接口22、和IEEE1394線纜4來訪問驅(qū)動器2,CPU12可在被加載到驅(qū)動器2中的光盤3上讀取和記錄數(shù)據(jù)。CPU12運行OS的程序和各種應(yīng)用程序。這些程序可被記錄在作為PC1中的內(nèi)置記錄介質(zhì)的硬盤15上或ROM13中??商鎿Q地,程序可以被臨時或者永久地存儲(記錄)在可拆卸記錄介質(zhì)21中,如軟盤、CD-ROM(致密盤只讀存儲器)、磁光盤、DVD(數(shù)字多用盤)、磁盤、或半導體存儲器??梢宰鳛樗^的“軟件包”而提供此可拆卸記錄介質(zhì)21??蓮目刹鹦队涗浗橘|(zhì)21將每個程序安裝到PC1中,并且,另外,可通過用于數(shù)字衛(wèi)星廣播的衛(wèi)星而將該程序從下載站點傳送到PC1,并且,也可通過線纜、經(jīng)由例如因特網(wǎng)的網(wǎng)絡(luò)而將該程序傳送到PC1。在PC1中,可通過通信單元18而接收如上所述被傳送的程序,并可將其安裝在硬盤15中。接下來,圖3示出了由圖2中示出的CPU12運行的程序。例如,在OS30和應(yīng)用程序(程序)31至少被安裝在圖2中示出的硬盤15中的狀態(tài)下,當對PC1供電時,將OS30從硬盤15裝入到RAM14中,并由CPU12來運行。另外,例如,當用戶通過執(zhí)行例如操作輸入單元17的操作來請求激活應(yīng)用程序31時,在OS30的控制下,CPU12將應(yīng)用程序31從硬盤15中加載到RAM14中并運行所加載的應(yīng)用程序。當應(yīng)用程序31發(fā)出涉及例如被加載到驅(qū)動器2中的光盤3上的文件操作的訪問請求時,OS30處理該訪問請求。這允許驅(qū)動器2將其記錄已被來自應(yīng)用程序31的訪問請求所請求的數(shù)據(jù)記錄在光盤3上??商鎿Q地,從光盤3讀取其回放(讀取)已被來自應(yīng)用程序31的訪問請求所請求的數(shù)據(jù),并將該數(shù)據(jù)傳遞到發(fā)出訪問請求的應(yīng)用程序31。安裝到圖2中示出的硬盤15中的應(yīng)用程序不限于一個應(yīng)用程序31,而應(yīng)用程序的數(shù)目可以是兩個或者更多。應(yīng)用程序31應(yīng)當是這種AV應(yīng)用程序,其執(zhí)行例如來自外部的AV數(shù)據(jù)的獲取、以及AV數(shù)據(jù)的編輯、記錄、和回放。然而,應(yīng)用程序31不需要是AV應(yīng)用程序。換句話說,例如,應(yīng)用程序31可以是用于執(zhí)行文本數(shù)據(jù)編輯等的應(yīng)用程序、或者文件顯示應(yīng)用程序(例如,諸如“資源管理器(Explorer)”或“文件管理器”之類的文件實用程序)。接下來,例如,可以采用Unix、Linux、MicrosoftWindows或者其它任意OS來作為OS30。在本實施例中,例如,采用WindowsNTOS作為OS30。目前,WindowsNT操作系統(tǒng)包括“WindowsNT”、“Windows2000”和“WindowsXP”。圖4示出了當采用WindowsNTOS作為OS30時、OS30中關(guān)于驅(qū)動器2(或光盤3)的訪問的部分的配置的示例。在圖4中示出了OS30中的設(shè)備驅(qū)動程序的分層結(jié)構(gòu),以便闡明其與應(yīng)用程序31的關(guān)系。在OS30,即WindowsNTOS中,服務(wù)與內(nèi)核58相分離,內(nèi)核58被提供有執(zhí)行最小必要處理(例如取決于硬件的處理)的部分,而由子系統(tǒng)來實現(xiàn)分離的服務(wù)。Win32子系統(tǒng)51是子系統(tǒng)中的一種。Win32子系統(tǒng)51提供具有各種API(函數(shù))的應(yīng)用程序31,并執(zhí)行例如內(nèi)存管理,進程管理,圖形管理等。換句話說,例如,當由應(yīng)用程序31調(diào)用與輸入/輸出相關(guān)的API(應(yīng)用程序接口)函數(shù)時,Win32子系統(tǒng)51響應(yīng)于API函數(shù)而向NTI/O管理器52輸出I/O請求。由Win32子系統(tǒng)51提供的API函數(shù)包括“CreateFile()”,用于創(chuàng)建文件;“ReadFile()”,用于讀取文件(記錄在文件中的數(shù)據(jù));“WriteFile()”,用于記錄到文件(在文件中記錄數(shù)據(jù));“CloseFile()”,用于關(guān)閉文件;以及“DeviceIoControl()”,用于執(zhí)行各類其它處理。NTI/O管理器52提供具有用于傳遞I/O請求包(IRP)的服務(wù)的分層設(shè)備驅(qū)動程序。IRP具有由設(shè)備驅(qū)動程序請求的處理信息。例如,IRP包括用于對請求內(nèi)容進行分類的代碼、用于請求數(shù)據(jù)(文件)的讀取(回放)的“IRPMJREAD”、用于請求數(shù)據(jù)的寫入(記錄)的“IRP_MJ_WRITE”、用于請求文件的打開的“IRP_MJ_CREATE”、用于請求文件的關(guān)閉的IRP_MJ_CLOSE、用于請求各種類型的其它處理的“IRP_MJ_DEVICE_CONTROL”。在IRP_MJ_DEVICE_CONTROL的IRP中,IOCTL(I/O控制)代碼被指定為子代碼。這個IOCTL可以由用戶來定義。例如,NTI/O管理器52將與CreateFile()相對應(yīng)的、Win32子系統(tǒng)51的I/O請求轉(zhuǎn)換成IRP_MJ_CREATE的IRP。另外,例如,ReadFile()和WriteFile()被分別轉(zhuǎn)換成IRP_MJ_READ和IRP_MJ_WRITE的IRP,而DeviceIoControl()被轉(zhuǎn)換成IRP_MJ_DEVICE_CONTROL的IRP。在WindowsNTOS中,IRP用于與存儲類驅(qū)動程序?qū)拥膶酉嗟然蚋叩膶?。在圖4中,存在層級別等于或高于存儲類驅(qū)動程序?qū)拥娜齻€設(shè)備驅(qū)動程序,即PD存儲器55,即存儲類驅(qū)動程序;PD_FS54,即位于比存儲類驅(qū)動程序高的上一層中的文件系統(tǒng)驅(qū)動程序;位于比存儲類驅(qū)動程序高的上一層中的FS(文件系統(tǒng))過濾器驅(qū)動程序53。因此,在本實施例中,NTI/O管理器52提供用于將IRP傳遞到FS過濾器驅(qū)動程序53、PD_FS54和PD存儲器55的服務(wù)。特別地,NTI/O管理器52將來自Win32子系統(tǒng)51的I/O請求轉(zhuǎn)換成IRP,并將IRP輸出到例如FS過濾器驅(qū)動程序53。例如,F(xiàn)S過濾器驅(qū)動程序53響應(yīng)于來自NTI/O管理器52的IRP,而向NTI/O管理器52輸出請求。NTI/O管理器52將來自FS過濾器驅(qū)動程序53的請求轉(zhuǎn)換成IRP,并將IRP輸出到位于下一較低層的PD_FS54。例如,PD_FS54響應(yīng)于來自NTI/O管理器52的IRP,而向NTI/O管理器52輸出請求。NTI/O管理器52將來自PD_FS54的請求轉(zhuǎn)換成IRP,并將IRP輸出到位于下一較低層的PD存儲器55。FS過濾器驅(qū)動程序53是級別比PD_FS54高的文件系統(tǒng)驅(qū)動程序(以后描述)。經(jīng)由Win32子系統(tǒng)51和NTI/O管理程序52而從應(yīng)用程序31提供FS過濾器驅(qū)動程序53。FS過濾器驅(qū)動程序53執(zhí)行過濾出與文件系統(tǒng)有關(guān)的文件系統(tǒng)請求和其它請求,作為過濾的結(jié)果而得到要傳遞到PDFS54的請求,并執(zhí)行例如通過NTI/O管理器52而向PD_FS54輸出該請求的處理。例如,可以將作為OS30使用的WindowsNT中的標準文件系統(tǒng)驅(qū)動程序用作FS過濾器驅(qū)動程序53。PD_FS54是用于作為PD驅(qū)動器的驅(qū)動器2的文件管理的文件系統(tǒng)驅(qū)動程序,通過NTI/O管理器52而向PD存儲器55輸出例如由FS過濾器驅(qū)動程序53通過NTI/O管理器52請求的文件記錄和讀取的請求。在驅(qū)動器2的文件系統(tǒng)中,執(zhí)行諸如邏輯塊單元中數(shù)據(jù)的讀取和記錄控制、文件分配管理、故障處理、以及空閑區(qū)域管理的文件管理。因此,PD_FS54不執(zhí)行上述文件管理(由驅(qū)動器2中的文件系統(tǒng)執(zhí)行的文件管理)。然而,看上去應(yīng)用程序31就好像是被PD_FS54執(zhí)行的驅(qū)動器2的文件系統(tǒng)中的文件管理一樣。因此,可以說是PD_FS54偽裝了驅(qū)動器2中的文件系統(tǒng),并且,從這點上說,PD_FS54是隱蔽文件系統(tǒng)。通常,文件系統(tǒng)驅(qū)動程序具有高速緩沖存儲文件流(將要記錄在文件中的數(shù)據(jù)(記錄數(shù)據(jù))的文件)和文件元信息(meta-information)的高速緩沖存儲功能。例如,根據(jù)這種高速緩沖存儲功能,可以迅速得到被高速緩沖存儲的文件流和文件信息,而無需實際訪問光盤3。在WindowsNTOS中,NT高速緩沖存儲管理器59具有高速緩沖存儲功能,并且PD_FS54使用NT高速緩沖存儲管理器59來提供高速緩沖存儲功能。PD_FS54包括文件句柄資源管理器54A,文件句柄資源管理器54A執(zhí)行排他控制(以后描述)。PD存儲器55是存儲類驅(qū)動程序,其對應(yīng)于作為PD驅(qū)動器的驅(qū)動器2的實際設(shè)備驅(qū)動程序。PD存儲器55將作為從PD_FS54(在較高層中的盤驅(qū)動器)通過NTI/O管理器52提供的請求的IRP轉(zhuǎn)換為SCSI(小型計算機系統(tǒng)接口)碼,并且將SCSI碼輸出到SBP2(串行總線協(xié)議2)驅(qū)動程序56中。由PD存儲器55將IRP轉(zhuǎn)換為SCSI碼的原因是在后續(xù)階段中,SCSI碼相對于由SBP2驅(qū)動程序56處理的SBP2具有所謂的好的相似性(affinity)。SBP2驅(qū)動程序56根據(jù)SBP2而將來自PD存儲器55的SCSI碼轉(zhuǎn)換為SBP2數(shù)據(jù),并將SBP2數(shù)據(jù)提供給IEEE1394總線驅(qū)動程序57。在本實施例中,采用SBP2作為能夠在通信中處理文件系統(tǒng)的協(xié)議,該通信是根據(jù)IEEE1394標準并通過IEEE1394總線驅(qū)動程序57控制的,IEEE1394總線驅(qū)動程序57是SBP2驅(qū)動程序56的后續(xù)階段。然而,除SBP2之外的其它協(xié)議也是可以使用的。通過對IEEE1394接口22(圖2)的控制,IEEE1394總線驅(qū)動程序57從SBP2驅(qū)動程序56中將SBP2數(shù)據(jù)等傳送到驅(qū)動器2,并接收從光盤3讀取的數(shù)據(jù)。雖然在本實施例中,在PC1和驅(qū)動器2之間執(zhí)行根據(jù)IEEE1394標準的通信,但在其間也可以執(zhí)行其它類型的通信。在這種情況下,取代IEEE1394總線驅(qū)動程序57,可以使用與PC1與驅(qū)動器2之間的通信相匹配的總線驅(qū)動程序。作為AV應(yīng)用程序的應(yīng)用程序31可以記錄在例如可拆卸存儲介質(zhì)21(圖2)的形式,連同對于使用驅(qū)動器2作為PD驅(qū)動器來說是必需的PD_FS54和PD存儲器55一起銷售。記錄有應(yīng)用程序31、PD_FS54和PD存儲器55的可拆卸存儲介質(zhì)21不僅可作為單獨產(chǎn)品、而且可作為以包括在驅(qū)動器2的程序包中的形式的驅(qū)動器2的附件而銷售。在圖4中,應(yīng)用程序31和Win32子系統(tǒng)51在用戶模式下工作,而NTI/O管理器52、FS過濾器驅(qū)動程序53、PD_FS54、PD存儲器55、SBP2驅(qū)動程序56、IEEE1394總線驅(qū)動程序57、內(nèi)核58和NT高速緩沖存儲管理器59在核心模式下工作。在圖4情況中,通過將IRP傳遞到作為文件系統(tǒng)過濾器驅(qū)動程序的FS過濾器驅(qū)動程序53、以及作為文件系統(tǒng)驅(qū)動程序的PD_FS54,NTI/O管理器52請求來自文件系統(tǒng)過濾器驅(qū)動程序和文件系統(tǒng)驅(qū)動程序的處理。然而,作為WindowsNTOS的NTI/O管理器52可以通過不僅將IRP、還將FastIO傳遞到文件系統(tǒng)過濾器驅(qū)動程序和文件系統(tǒng)驅(qū)動程序來請求處理。換句話說,NTI/O管理器52向文件系統(tǒng)過濾器驅(qū)動程序和文件系統(tǒng)驅(qū)動程序提供除IRP之外還傳遞FastIO的服務(wù),借此從文件系統(tǒng)過濾器驅(qū)動程序和文件系統(tǒng)驅(qū)動程序請求處理。因此,一般而言,WindowsNTOS中的文件系統(tǒng)過濾器驅(qū)動程序和文件系統(tǒng)驅(qū)動程序支持IRP和FastIO兩者。例如,根據(jù)FastIO,NT高速緩沖存儲管理器59直接執(zhí)行文件讀取和寫入。在接下來的描述中,在IRP和FastIO之間,例如,使用IRP。然而,下列功能也可以由FastIO來實現(xiàn)。接下來,下面參考圖5中示出的流程圖來說明當應(yīng)用程序31請求訪問光盤3時所執(zhí)行的在FS過濾器驅(qū)動程序53、PD_FS54、PD存儲器55、SBP2驅(qū)動程序56和IEEE1394總線驅(qū)動程序57中的進程的概述。在下面的描述、以及圖5和隨后的圖中,如果需要,Win32子系統(tǒng)51和NTI/O管理器52的描述和說明將被省略。例如,當應(yīng)用程序31調(diào)用用于請求訪問光盤3的API函數(shù)時,從Win32子系統(tǒng)51將響應(yīng)于該API函數(shù)的請求提供給NTI/O管理器52,NTI/O管理器52向FS過濾器驅(qū)動程序53提供遵循從Win32子系統(tǒng)51發(fā)出的請求的IRP。在步驟S1,F(xiàn)S過濾器驅(qū)動程序53從NTI/O管理器52接收IRP并前進到步驟S2。在步驟2,F(xiàn)S過濾器驅(qū)動程序53過濾出來自NTI/O管理器52的IRP。在步驟S3,F(xiàn)S過濾器驅(qū)動程序53對將要提供給PDFS54的IRP進行排隊。換句話說,F(xiàn)S過濾器驅(qū)動程序53在隊列(未示出)中提供并存儲來自NTI/O管理器52的IRP。FS過濾器驅(qū)動程序53還讀取存儲在該隊列中的IRP,并通過NTI/O管理器52而向PD_FS54提供所讀取的IRP。該過程前進到步驟S4。FS過濾器驅(qū)動程序53的處理取決于過濾器的屬性而不同。因此,本實施例示出了處理的一個示例,并且FS過濾器驅(qū)動程序53的處理不限于該示例。在步驟S4,PD_FS54對來自FS過濾器驅(qū)動程序53的IRP所請求的數(shù)據(jù)執(zhí)行高速緩沖存儲,其需要使用NT高速緩沖存儲管理器59的高速緩沖存儲功能。前進到步驟S5,例如,PD_FS54確定是否在NT高速緩沖存儲管理器59中對由來自FS過濾器驅(qū)動程序53的IRP所請求的數(shù)據(jù)進行高速緩沖存儲。如果在步驟S5確定在NT高速緩沖存儲管理器59中對由來自FS過濾器驅(qū)動程序53的IRP所請求的數(shù)據(jù)進行了高速緩沖存儲,則該過程前進到步驟S6。在步驟S6中,PD_FS54從NT高速緩沖存儲管理器59接收來自FS過濾器驅(qū)動程序53的IRP所請求的數(shù)據(jù),并將對該IRP的響應(yīng)通過Win32子系統(tǒng)51而發(fā)回到應(yīng)用程序31,應(yīng)用程序31調(diào)用與該IRP相對應(yīng)的API函數(shù)??商鎿Q地,如果在步驟S5確定未在NT高速緩沖存儲管理器59中對來自FS過濾器驅(qū)動程序53的IRP所請求的數(shù)據(jù)進行高速緩沖存儲,則該過程前進到步驟S7。在步驟S7,PD_FS54將來自FS過濾器驅(qū)動程序53的IRP轉(zhuǎn)換為命令(如后所述),并將該命令通過NTI/O管理器52而提供給PD存儲器55。該過程前進到步驟S8。在步驟S8,PD存儲器55將來自PD_FS54的IRP轉(zhuǎn)換為對應(yīng)的SCSI碼,并將該SCSI碼提供給SBP2驅(qū)動程序56。該過程前進到步驟S9。在步驟S9,SBP2驅(qū)動程序56將來自PD存儲器55的SCSI碼轉(zhuǎn)換成SBP2數(shù)據(jù),并將該SBP2數(shù)據(jù)提供給IEEE1394總線驅(qū)動程序57。該過程前進到步驟S10。在步驟S10,通過控制IEEE1394接口22(圖2),IEEE1394總線驅(qū)動程序57將SBP2數(shù)據(jù)從SBP2驅(qū)動程序56傳送到驅(qū)動器2。IEEE1394總線驅(qū)動程序57等待要從驅(qū)動器2傳送的、對在步驟S10中傳送的SBP2數(shù)據(jù)的響應(yīng)。在步驟S11,IEEE1394總線驅(qū)動程序57接收該響應(yīng),并通過PD存儲器55、PD_FS54、PD存儲器55和Win32子系統(tǒng)51而將該響應(yīng)發(fā)回到應(yīng)用程序31,其中應(yīng)用程序31傳送在步驟S1中接收的IRP。接下來,將參照圖6來描述包括在驅(qū)動器2中的專用文件系統(tǒng)和在驅(qū)動器2中所采用的協(xié)議。如上所述,驅(qū)動器2是能夠?qū)崟r記錄或回放高比特率AV數(shù)據(jù)的PD驅(qū)動器,并具有真實文件系統(tǒng)61和虛擬文件系統(tǒng)62作為專用文件系統(tǒng)。雖然驅(qū)動器2可以是僅執(zhí)行記錄或者僅執(zhí)行讀取的驅(qū)動器,但在本實施例中,它是能夠記錄和讀取的驅(qū)動器。真實文件系統(tǒng)61依照例如UDF來管理光盤3中的真實(實際的)文件,并以邏輯塊單元的方式控制對光盤3上的數(shù)據(jù)的記錄和讀取。真實文件系統(tǒng)61具有PD文件分配管理器(未示出)。PD文件分配管理器控制單行的(unicursal)記錄,并對光盤3上的文件執(zhí)行分配管理、故障處理、空閑區(qū)域管理等。虛擬文件系統(tǒng)62執(zhí)行例如對真實文件系統(tǒng)61上的真實文件進行過濾這樣的處理,并將所得到的文件(虛擬文件)提供到驅(qū)動器2的外部。因此,在驅(qū)動器2的外部提供虛擬文件系統(tǒng)62。相應(yīng)地,驅(qū)動器2具有基于一種協(xié)議的通信功能,該協(xié)議可以向所述外部提供由真實文件系統(tǒng)61管理的真實文件,作為由虛擬文件系統(tǒng)62管理的虛擬文件。在本實施例中,在驅(qū)動器2中,AV數(shù)據(jù)、文本數(shù)據(jù)和其它任意的數(shù)據(jù)均可以通過虛擬文件系統(tǒng)62而被讀取和記錄。在驅(qū)動器2中,例如,采用通過擴展SBP2的命令而得到的協(xié)議(IEEE1394SBP2協(xié)議)作為能夠?qū)⑻摂M文件系統(tǒng)62(所管理的虛擬文件)提供給外部的協(xié)議,其中所述協(xié)議是能夠在IEEE1394通信(基于IEEE1394標準的通信)中控制外設(shè)的協(xié)議。當通過擴展SBP2的命令而得到的協(xié)議被稱為PD-SBP2時,PD-SBP2在PC1的應(yīng)用程序?qū)又械膽?yīng)用程序31等訪問文件時提供與由OS30的Win32子系統(tǒng)51(圖4)所提供的接口(API)的功能相似的功能。因此,根據(jù)PD-SBP2,例如,通過指定文件名,可以對具有該文件名的文件執(zhí)行文件流讀取和寫入,并基于該文件名和文件的路徑名而獲取文件的元信息。如上所述,由于PD-SBP2是通過擴展SBP2的命令而得到、并在IEEE1394通信中使用的協(xié)議(IEEE1394SBP2協(xié)議),所以將采用這種協(xié)議的驅(qū)動器2連接到IEEE1394總線驅(qū)動程序57來控制IEEE1394通信,并且,另外,IEEE1394總線驅(qū)動程序57被連接到實現(xiàn)SBP2的SBP2驅(qū)動程序56。當OS30為WindowsNTOS時,包含在OS中的那些驅(qū)動程序可以被用作SBP2驅(qū)動程序56和IEEE1394總線驅(qū)動程序57兩者。接下來,下面將通過參照圖7來描述圖6中的虛擬文件系統(tǒng)62的處理。參照圖7,在右邊示出了由真實文件系統(tǒng)61管理的真實文件,并且,在左邊示出了從虛擬文件系統(tǒng)62提供到驅(qū)動器2的外部的虛擬文件。首先,下面描述在圖7的右邊示出的虛擬文件系統(tǒng)62的真實文件。在以下描述中,跟隨“目錄”的字母數(shù)字字符代表目錄的目錄名。類似地,跟隨“文件”的字母數(shù)字字符代表文件的文件名。另外,在每個文件名中,跟隨句點的字母數(shù)字字符代表擴展名。例如,擴展名“XML”代表XML(可擴展的置標語言)文件。例如,擴展名“MXF”代表MXF文件。真實文件的根目錄(由“ROOT”表示)具有目錄“PROAV”和通用目錄(用“General”表示),其中“PROAV”目錄具有存儲關(guān)于諸如視頻數(shù)據(jù)和音頻數(shù)據(jù)的資料數(shù)據(jù)的信息和代表資料數(shù)據(jù)的編輯結(jié)果的編輯列表的目錄、以及與其它AV數(shù)據(jù)相關(guān)的文件(目錄),通用目錄存儲除了與AV數(shù)據(jù)相關(guān)的文件之外的任意數(shù)據(jù)文件,例如,“fileDocument.txt”、“Information.doc”和“EditData.xls”。例如,可以采用MXF文件作為與AV數(shù)據(jù)相關(guān)的文件。另外,作為由真實文件系統(tǒng)61管理的真實文件的MXF文件用作其中視頻數(shù)據(jù)和音頻數(shù)據(jù)是作為獨立文件來處理的MXFOP-Atom文件、并由虛擬文件系統(tǒng)62管理,在MXFOP-Atom文件中。將提供給外部的虛擬文件用作MXFOP-1a文件,其中視頻數(shù)據(jù)和音頻數(shù)據(jù)被交錯地存取到一個文件中。目錄PROAV具有索引文件INDEX.XML和INDEX.BUP、盤信息文件DISINFO.XML和DISKINFO.BUP、盤元文件DISCMETA.XML。索引文件INDEX.XML和INDEX.BUP包含用于管理記錄在光盤3上的所有片段和編輯列表的管理信息。例如,片段是一組一定量的數(shù)據(jù)的集合,例如通過同時記錄而被記錄在光盤3上的視頻數(shù)據(jù)、以及與視頻數(shù)據(jù)相對應(yīng)的音頻數(shù)據(jù)。編輯列表是對于執(zhí)行所謂的“非線性編輯”的情況的編輯過程列表。例如,當文件的AV數(shù)據(jù)在非線性編輯中被剪切時,諸如識別文件的文件名、切入(cut-in)點、切出(cut-out)點的信息被記錄在該編輯列表中。盤信息文件DISCINFO.XML和DISKINFO.BUP是記錄在光盤3上的全部數(shù)據(jù)的元數(shù)據(jù)。例如,它們是包括盤屬性和回放開始位置的文件。盤信息文件DISKINFO.BUP是盤信息文件DISCINFO.XML的備份文件(副本)。類似地,上面的索引文件INDEX.BUP是索引文件INDEX.XML的備份文件。盤元文件DISCMETA.XML包括記錄在光盤3上的所有資料數(shù)據(jù)的標題和注釋、以及諸如到與代表性圖像相對應(yīng)的視頻數(shù)據(jù)的路徑的信息,其中該代表性的圖像是用作被記錄在光盤3上的所有視頻數(shù)據(jù)的代表的幀。目錄PROAV具有下級目錄具有片段數(shù)據(jù)的片段根目錄CLPR、以及下級目錄具有編輯列表數(shù)據(jù)的編輯列表根目錄EDTR。在片段根目錄CLPR中,記錄在光盤中3上的片段數(shù)據(jù)是通過將其以片段單元方式而分成不同的目錄來管理的。例如,在圖7的右邊,三個片段的數(shù)據(jù)是通過以被分成三個片段目錄C0001、C0002和C0003的形式來管理的。換句話說,記錄在光盤3上的第一片段#1的數(shù)據(jù)項是作為片段目錄C0001中的文件而被管理的,記錄在光盤3上的第二片段#2的數(shù)據(jù)項是作為片段目錄C0002中的文件而被管理的,而記錄在光盤3上的第三片段#3的數(shù)據(jù)項是作為片段目錄C0003中的文件而被管理的。在片段目錄C0001中,放置記錄在光盤3上的第一片段#1的文件。在圖7的右邊,片段目錄C0001具有用于管理片段#1的片段信息文件C0001C01.SMI、包括片段#1的視頻數(shù)據(jù)的視頻數(shù)據(jù)文件C0001V01.MXF、與片段#1的八個音頻數(shù)據(jù)通道相對應(yīng)的八個音頻數(shù)據(jù)文件C0001A01.MXF至C0001A08.MXF、包括片段#1的低比特率視頻數(shù)據(jù)的低分辨率數(shù)據(jù)文件C0001S01.MXF、包括與片段#1的資料數(shù)據(jù)相對應(yīng)并且是不要求實時屬性的元數(shù)據(jù)的片段元數(shù)據(jù)(例如在縱向時間碼(LTC)和幀編號之間對應(yīng)的轉(zhuǎn)換表)的片段元數(shù)據(jù)文件C0001M01.XML、以及包括與片段#1的資料數(shù)據(jù)相對應(yīng)并且是要求實時屬性的元數(shù)據(jù)的幀元數(shù)據(jù)(例如LTC)的幀元數(shù)據(jù)文件C0001R01.BIM。在圖7右邊的其它片段目錄C0002和C0003具有關(guān)于片段#2和#3的類似于在片段目錄C0001中的文件的文件。在位于目錄PROAV下的編輯列表根目錄EDTR中,在編輯處理單元的不同目錄中管理記錄在光盤3上的編輯列表。在圖7的右邊,在四個不同的目錄E0001、E0002、E0003、以及E0004下管理四個編輯列表。換句話說,顯示第一次編輯記錄在光盤3上的片段的結(jié)果的編輯列表#1作為在編輯列表E0001中的文件而被管理。顯示第二次編輯記錄在光盤3上的片段的結(jié)果的編輯列表#2作為在編輯列表E0002中的文件而被管理。顯示第三次編輯記錄在光盤3上的片段的結(jié)果的編輯列表#3作為在編輯列表E0003中的文管而理件。顯示第四次編輯記錄在光盤3上的片段的結(jié)果的編輯列表#4作為在編輯列表E0004中的文件而被管理。在圖7的右邊,在編輯列表目錄E0001中,具有作為編輯列表#1的文件的編輯列表文件E0001E01.SMI、以及包括與在根據(jù)編輯列表#1編輯之后得到的資料數(shù)據(jù)(在所有用于編輯的片段的資料數(shù)據(jù)中部分提取作為被編輯的數(shù)據(jù))相對應(yīng)的片段元數(shù)據(jù)或基于片段元數(shù)據(jù)而創(chuàng)建的新片段元數(shù)據(jù)的編輯列表片段元數(shù)據(jù)文件E0001M01.XML。在圖7中,編輯列表片段元數(shù)據(jù)文件E0001M01.XML包括基于在編輯中使用的片段的片段元數(shù)據(jù)(在片段根目錄CLPR下的目錄中的片段元數(shù)據(jù)文件(圖7右邊中,例如,目錄C0001中的片段元數(shù)據(jù)文件C0001M01.XML))而創(chuàng)建的新片段元數(shù)據(jù)。例如,當對片段#1執(zhí)行編輯時,從片段元數(shù)據(jù)文件C0001M01.XML中包括的片段元數(shù)據(jù)中提取與被編輯的資料數(shù)據(jù)相對應(yīng)的部分。所述部分用于重建使用編輯過的資料數(shù)據(jù)作為片段的新片段元數(shù)據(jù),并作為編輯列表片段元數(shù)據(jù)文件而被管理。換句話說,將使用編輯過的資料數(shù)據(jù)作為片段的新片段元數(shù)據(jù)加入被編輯的資料數(shù)據(jù),并且片段元數(shù)據(jù)作為編輯列表片段元數(shù)據(jù)文件而被管理。因此,在每次執(zhí)行編輯時創(chuàng)建編輯列表片段元數(shù)據(jù)文件。在圖7的右邊,其它編輯列表目錄E0002至E0004具有與片段列表目錄E0001中的文件相類似的、關(guān)于編輯列表#2至#4的文件。將由真實文件系統(tǒng)61管理的、在圖7的右邊示出的上述真實文件以圖7的左邊示出的虛擬文件系統(tǒng)62的形式而提供到驅(qū)動器2的外部。換句話說,在虛擬文件系統(tǒng)62中,在根目錄(ROOT)下,放置了索引文件INDEX.XML和盤元文件DISCMETA.XML,并提供目錄Clip、Edit、Sub和General。在虛擬文件系統(tǒng)62中,放置在根目錄(ROOT)下的索引文件INDEX.XML和盤元文件DISCMETA.XML分別為由真實文件系統(tǒng)61管理的索引文件INDEX.XML和盤元文件DISCMETA.XML。另外,在虛擬文件系統(tǒng)62中,在目錄Clip中,放置由真實文件系統(tǒng)61管理的位于CLPR目錄下的目錄中的片段的數(shù)據(jù)文件。換句話說,在圖7的左邊,在目錄Clip中,提供文件C0001.MXF、C0002.MXF和C0003.MXF,分別作為圖7右邊的目錄C0001、C0002和C0003中的片段的數(shù)據(jù)文件。在真實文件系統(tǒng)61中,如上所述,片段數(shù)據(jù)作為MXFOP-Atom文件而被處理,其中視頻數(shù)據(jù)和音頻數(shù)據(jù)是作為獨立文件而被處理的。換句話說,在圖7右邊的目錄C0001中,片段#1的數(shù)據(jù)被分成包括片段#1中視頻數(shù)據(jù)的視頻數(shù)據(jù)文件C0001V01.MXF、以及與片段#1中的八個音頻數(shù)據(jù)通道相對應(yīng)的音頻數(shù)據(jù)文件C0001A01.MXF至C0001A08.MXF。另外,在虛擬文件系統(tǒng)62中,如上所述,片段數(shù)據(jù)用作MXFOP-1a文件,其中將視頻數(shù)據(jù)和音頻數(shù)據(jù)交錯記錄到一個文件中。在圖7左邊的目錄Clip中的C0001.MXF文件為其中交錯記錄了圖7右邊的目錄C0001中的片段#1的視頻數(shù)據(jù)和音頻數(shù)據(jù)的文件。換句話說,文件C0001.MXF是其中交錯記錄了目錄C0001中的視頻數(shù)據(jù)文件C0001V01.MXF的視頻數(shù)據(jù)和音頻數(shù)據(jù)文件C0001A01.MXF至C0001A08.MXF的八個音頻數(shù)據(jù)通道的文件。類似地,目錄Clip中的文件C0002.MXF是其中交錯記錄了目錄C0002中的片段#2中的視頻數(shù)據(jù)和音頻數(shù)據(jù)的文件,而文件C0003.MXF是其中交錯記錄了目錄C0003中的片段#3中的視頻數(shù)據(jù)和音頻數(shù)據(jù)的文件。在圖7左邊的目錄Clip中,還放置了每個片段中的片段元數(shù)據(jù)。在圖7左邊的目錄Clip中,放置了片段元數(shù)據(jù)文件C0001M01.XML、C0002M01.XML、以及C0003M01.XML。目錄Clip中的片段元數(shù)據(jù)文件C0001M01.XML是片段#1中的片段元數(shù)據(jù)文件,并且是圖7右邊的目錄C0001中的片段元數(shù)據(jù)文件C0001M01.XML。類似地,目錄Clip中的片段元數(shù)據(jù)文件C0002M01.XML是片段#2中的片段元數(shù)據(jù)文件,并且是圖7右邊的目錄C0002中的片段元數(shù)據(jù)文件。類似地,目錄Clip中的片段元數(shù)據(jù)文件C0003M01.XML是片段#3中的片段元數(shù)據(jù)文件,并且是圖7右邊的目錄C0003中的片段元數(shù)據(jù)文件。在圖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中,放置有片段的低分辨率數(shù)據(jù)文件。特別地,在圖7左邊的目錄Sub中,放置低分辨率數(shù)據(jù)文件C0001S01.MXF、C0002S01.MXF和C0003S01.MXF。目錄Sub中的低分辨率數(shù)據(jù)文件C0001S01.MXF是片段#1的低分辨率數(shù)據(jù)文件,并且是圖7右邊的目錄C0001中的低分辨率數(shù)據(jù)文件C0001S01.MXF。類似地,目錄Sub中的低分辨率數(shù)據(jù)文件C0002S01.MXF是片段#2的低分辨率數(shù)據(jù)文件,并且是圖7右邊的目錄C0002中的低分辨率數(shù)據(jù)文件。另外,類似地,目錄Sub中的低分辨率數(shù)據(jù)文件C0003S01.MXF是片段#3的低分辨率數(shù)據(jù)文件,并且是圖7右邊的目錄C0003中的低分辨率數(shù)據(jù)文件。在圖7左邊的目錄General中,放置圖7右邊的目錄GeneralSub中的文件Document.txt、Information.doc和EditData.xls。虛擬文件系統(tǒng)62(圖6)以單個文件(虛擬文件)的形式向外部提供由真實文件系統(tǒng)61管理的不同文件中的片段的視頻數(shù)據(jù)和音頻數(shù)據(jù)。在虛擬文件系統(tǒng)62中,在由真實文件系統(tǒng)61管理的文件當中,過濾出不需要提供到外部(應(yīng)用程序或用戶)的文件,例如在驅(qū)動器2內(nèi)使用的文件,由此這些文件是不向外部顯示的。在本實施例中,在圖7中,通過在虛擬文件系統(tǒng)62中執(zhí)行過濾,可以防止從外部檢測到備份文件INDEX.BUP和DISCINFOBLOCK-UNITPROCESSING、盤信息文件DISCINFO.XML、片段信息文件C0001C01.SMI、幀元數(shù)據(jù)文件C0001R01.BIM等。如上所述,根據(jù)虛擬文件系統(tǒng)62,可將由真實文件系統(tǒng)61管理的MXFOP-Atom中的不同視頻數(shù)據(jù)和音頻數(shù)據(jù)文件以一個MXFOP-1a文件的形式而提供到外部,在該MXFOP-1a文件中將視頻數(shù)據(jù)和音頻數(shù)據(jù)交錯記錄在一個文件中。因此,有利于由用戶和應(yīng)用程序31處理文件。換句話說,在將由真實文件系統(tǒng)61管理的MXFOP-Atom中的不同視頻數(shù)據(jù)和音頻數(shù)據(jù)文件提供到外部時,例如,為了使用戶指定用于回放的片段#1、以及使用應(yīng)用程序31來回放片段#1,用戶需要例如指定片段#1的視頻數(shù)據(jù)文件C0001V01.MXF和片段#1的八個音頻數(shù)據(jù)通道的文件C0001A01.MXF至C0001A08.MXF。應(yīng)用程序31需要執(zhí)行打開所有由用戶指定的九個文件C0001V01.MXF和C0001A01.MXF至C0001A08.MXF,取得它們的句柄,并從所述文件讀取視頻數(shù)據(jù)和音頻數(shù)據(jù)。反之,根據(jù)虛擬文件系統(tǒng)62,片段#1中的文件C0001V01.MXF中的視頻數(shù)據(jù)和片段#1中的文件C0001A01.MXF至C0001A08.MXF的八個通道的音頻數(shù)據(jù)可以作為一個文件C0001.MXF而提供。因此,用戶只需指定一個文件C0001.MXF,并且,另外,應(yīng)用程序只需取得指定的文件C0001.MXF的文件句柄來讀取數(shù)據(jù)。根據(jù)虛擬文件系統(tǒng)62,由于對由真實文件系統(tǒng)61管理的文件執(zhí)行過濾,所以,可以說在驅(qū)動器2內(nèi)部使用的文件等,如盤信息文件DISCINFO.XML,對外部是隱藏的。因此,可防止在驅(qū)動器2內(nèi)部使用的文件等由于用戶的誤操作而被刪除或重寫。此外,可以防止用戶在搜索需要的文件時、由于看到用戶不需要的文件的這種狀態(tài)而產(chǎn)生妨礙。如參考圖6所描述的,在驅(qū)動器2中,采用作為通過擴展用于IEEE1394通信的SBP2的指令而獲得的協(xié)議(IEEE1394SBP2協(xié)議)的PD-SBP2,作為用于將虛擬文件系統(tǒng)62提供到外部的協(xié)議。在SBP2中,被稱為“啟動器”的設(shè)備將指令傳送到被稱為“目標”的設(shè)備,并且所述目標發(fā)回對來自啟動器的命令的響應(yīng)。圖8示出了在將指令從啟動器傳送到目標的情況下,作為SBP2數(shù)據(jù)的SCSI命令塊ORB(操作請求塊)的格式。在SBP2中,SCSI命令塊ORB用于數(shù)據(jù)傳送和設(shè)備控制。圖8中,在“next_ORB”字段中,設(shè)置下一個ORB的地址、或空(null)。當“data_size”字段不為0時,“data_descriptor”字段是有效的,并且在其中設(shè)置數(shù)據(jù)緩沖器或者頁表(pagetable)的地址。在“n(通知位)”字段中,設(shè)置指示是否需要目標完成的通知的信息。在“rq_fmt”字段中,設(shè)置ORB格式信息?!皉(保留)”字段為所謂的保留區(qū)域。在“d(方向位)”字段中,設(shè)置數(shù)據(jù)傳送的方向。換句話說,當“d”字段為0時,代表從目標讀取數(shù)據(jù)(目標讀取事務(wù)(transaction)),而當其為1時,代表將數(shù)據(jù)寫入目標(目標寫入事務(wù))。在“spd(速度)”字段中,設(shè)置目標的數(shù)據(jù)傳送過程速度。在“max_payload”字段中,設(shè)置傳送的最大量(長度)。傳送的最大量可以是2到(max_payload+2)的冪。在“p(page_table_present位)”字段中,設(shè)置0或1。換句話說,當在data_descriptor字段中設(shè)置數(shù)據(jù)緩沖器的地址時,在“p”字段中設(shè)置0。另外,當在data_descriptor字段中設(shè)置頁表的地址時,則在“p”字段中設(shè)置1。當“p”字段為1時,在“page_size”字段中,設(shè)置作為數(shù)據(jù)緩沖器的存儲器的頁面大小。頁面大小可以是2到(page_size+8)的冪。當“p”字段為0時,在“page_size”字段中,設(shè)置數(shù)據(jù)緩沖器的大小。在“cdb(SCSI命令描述符塊)”字段中,也就是在“cdb”到“cdb[11]”十二個字段中設(shè)置SCSI命令(碼)。在SBP2中,在可以在CDB字段中設(shè)置的值中,C0h到FFh(h指示在h前的文字數(shù)字字目)代表廠商專用區(qū)域。因此,在PD_SBP2中,廠商專用區(qū)域的值用于命令擴展(新命令定義)。換句話說,在PD_SBP2中,在CDB字段中設(shè)置命令(的操作碼)。此外,如果需要,在PD_SBP2中,可以在CDB[1]到CDB[11]字段中設(shè)置命令(擴展命令)的參數(shù)(操作數(shù))。接下來,圖9示出了SBP2狀態(tài)塊的格式,其中SBP2狀態(tài)塊是作為目標根據(jù)從啟動器發(fā)出的命令而發(fā)發(fā)回的響應(yīng)的SBP2數(shù)據(jù)。在SBP2中,SBP2狀態(tài)塊是SCSI檢測數(shù)據(jù)的狀態(tài)塊,并在目標發(fā)發(fā)回狀態(tài)的請求或更改的完成時被使用。在圖9中,在“src”字段中,設(shè)置代表SBP2狀態(tài)塊的來源的標記。在“resp(響應(yīng)狀態(tài))”字段中,設(shè)置代表響應(yīng)狀態(tài)的信息。在“d(無用位(deadbit))”字段中,設(shè)置指示提取代理(fetchagent)因為設(shè)置了錯誤而變?yōu)闊o用狀態(tài)的標志。在“l(fā)en”字段,設(shè)置SBP2狀態(tài)塊的大小。SBP2狀態(tài)塊的大小是通過將一個四字節(jié)(quadlet)(32比特)加到在“l(fā)en”字段中設(shè)置的值而得到的值。在“sbp_status”字段中,設(shè)置和“resp”字段相關(guān)聯(lián)的附加信息。在“ORB_offset_hi”字段和“ORB_offset_lo”字段中,設(shè)置產(chǎn)生SBP2狀態(tài)塊的ORB信息?!皉(保留)”字段是保留區(qū)域。在“sfmt”字段中,設(shè)置SBP2狀態(tài)塊的格式信息。在狀態(tài)字段中,設(shè)置SCSI狀態(tài)。在“v(有效位)”字段中,設(shè)置代表信息字段(以后描述)的內(nèi)容有效或者無效的標志。在“m”字段中,例如,設(shè)置SCSI標記位,并且在“e”字段中,設(shè)置SCSI信息結(jié)束(eom)位。在“i”字段中,設(shè)置SCSI非法長度指示符位,并且,在sense_key字段中,設(shè)置SCSI檢測鍵位。在sense_code字段中,設(shè)置SCSI附加檢測碼,并且在sense_qualifier字段中,設(shè)置SCSI附加檢測碼限定符。在information字段、CDB-dependent字段、“fru”字段、sense_key_dependent字段、以及vender-dependent字段中的每個中,設(shè)置取決于設(shè)備類型、命令等的信息。在PD-SBP2中,在information字段中,設(shè)置擴展命令的返回值。接下來,圖10為PD-SBP2中的命令(擴展命令)的列表。在圖10中,命令“文件打開(FILEOPEN)”使用文件名和文件打開模式作為參數(shù),并且打開由作為參數(shù)的文件打開模式中的文件名參數(shù)指定的文件。對于命令“文件打開”,發(fā)回打開的文件的文件句柄。命令“文件關(guān)閉(FILECLOSE)”使用文件句柄作為參數(shù),并關(guān)閉由文件句柄指定的文件。命令“文件讀取(FILEREAD)”使用文件句柄和讀取大小作為參數(shù),并讀取由作為參數(shù)的文件句柄和作為參數(shù)的讀取大小指定的文件的數(shù)據(jù)(文件流數(shù)據(jù))。命令“文件寫入(FILEWRITE)”使用文件句柄和寫入大小作為參數(shù),并將數(shù)據(jù)(文件流數(shù)據(jù))寫入到由作為參數(shù)的文件句柄和作為參數(shù)的寫入大小指定的文件中。命令“文件邏輯搜尋(FILELOGICALSEEK)”使用文件句柄和邏輯位置作為參數(shù),并將由作為參數(shù)的文件句柄指定的文件的文件指針(當前文件指針)位置改變?yōu)樽鳛閰?shù)的邏輯位置。命令“設(shè)置EOF(SETEOF)”使用文件句柄作為參數(shù),并且將EOF(文件結(jié)束)的位置改變?yōu)橛勺鳛閰?shù)的文件句柄指定的文件指針所表示的位置。命令“刪除(DELETE)”使用文件名作為參數(shù),并且刪除具有該文件名的文件。命令“重命名(RENAME)”使用未改變的文件名(或目錄名)和改變后的文件名(或目錄名)作為參數(shù),并且將未改變的文件名改變?yōu)楦淖兒蟮奈募?。命令“?chuàng)建目錄(MAKEDIRECTORY)”使用目錄名作為參數(shù),并生成(創(chuàng)建)具有該目錄名的目錄。命令“刪除目錄(REMOVEDIRECTORY)”使用目錄名作為參數(shù),并刪除具有該目錄名的目錄。命令“列表打開(LISTOPEN)”使用文件名(或目錄名)作為參數(shù),并發(fā)回用于得到具有該文件名和文件元信息的文件列表的句柄。命令“列表讀取(LISTREAD)”使用命令“列表打開”所發(fā)回的句柄作為參數(shù),并讀取由該句柄指定的文件列表和文件元信息。命令“格式化(FORMAT)”對裝入驅(qū)動器2中的光盤3進行格式化。命令“彈出(EJECT)”彈出裝入驅(qū)動器2中的光盤3。命令“盤信息(DISCINFO)”發(fā)回與裝入驅(qū)動器2中的光盤3有關(guān)的信息,也就是說,例如光盤3的空閑區(qū)域。命令“系統(tǒng)(SYSTEM)”發(fā)回關(guān)于驅(qū)動器2的信息(系統(tǒng)信息)。命令“設(shè)置(SETUP)”使驅(qū)動器2能夠接收PD-SBP2命令。換句話說,通過接收命令“設(shè)置”,驅(qū)動器2變得能夠接收圖10中的其它命令。接下來,下面將通過參照圖11來說明PD-SBP2協(xié)議文件讀取順序。在PC1中的應(yīng)用程序31(圖4)中,當從驅(qū)動器2中的光盤3讀取數(shù)據(jù)時,SBP2驅(qū)動程序56用作啟動器,而驅(qū)動器2用作目標。在步驟S21,作為啟動器的PC1(中的SBP2驅(qū)動程序56)將文件打開命令傳送到作為目標的驅(qū)動器2。在步驟S41,驅(qū)動器2接收到命令“文件打開”并開始進行步驟S42。在步驟S42,驅(qū)動器2打開來自PC1的命令“文件打開”中指定的文件,并將其文件句柄發(fā)回PC1中。在這種情況下,由命令“文件打開”指定的文件是驅(qū)動器2通過虛擬文件系統(tǒng)62而提供到外部的文件。并且,由驅(qū)動器2發(fā)送的文件句柄是驅(qū)動器2通過虛擬文件系統(tǒng)62而提供到外部的文件的文件句柄。在步驟S22,PC1從驅(qū)動器2中接收文件句柄并前進到步驟S23。在步驟S23,PC1將命令“文件邏輯搜尋”傳送到驅(qū)動器2,該命令請求由文件句柄指定的文件的文件指針,該指針將被移動到將要讀取的數(shù)據(jù)的開始位置。在步驟S43,驅(qū)動器2接收命令“文件邏輯搜尋”。驅(qū)動器2將在步驟S42中打開的文件的文件指針移動到由來自PC1的命令“文件邏輯搜尋”所指定的位置。從步驟S43前進到步驟S44,如果驅(qū)動器2已成功移動了文件指針,則驅(qū)動器2將成功響應(yīng)“良好(GOOD)”發(fā)回PC1。如果驅(qū)動器2移動文件指針失敗,則其將失敗響應(yīng)“錯誤(ERROR)”發(fā)回PC1。在步驟S24,PC1從驅(qū)動器2中接收響應(yīng)。如果來自驅(qū)動器2的響應(yīng)為指示驅(qū)動器2移動文件指針失敗的“錯誤”,則PC1執(zhí)行例如結(jié)束進程。如果來自驅(qū)動器2的響應(yīng)為指示驅(qū)動器2成功移動文件指針的“良好”,則PC1從步驟S24前進到步驟S25,并將命令“文件讀取”傳送到驅(qū)動器2,以便請求數(shù)據(jù)的讀取。在步驟S45,驅(qū)動器2從PC1接收命令“文件讀取”,并從在步驟S43中移動的文件指針的位置讀取數(shù)據(jù)。依次前進到步驟461到46N,驅(qū)動器2將在步驟S45中讀取的數(shù)據(jù)傳送到PC1。一次可以從驅(qū)動器2傳送到PC1的數(shù)據(jù)的最大大小是有限的。因此,當由來自PC1的命令“文件讀取”請求讀取的數(shù)據(jù)的大小大于驅(qū)動器2一次可以傳送的最大數(shù)據(jù)大小時,驅(qū)動器2將由來自PC1的命令“文件讀取”請求讀取的數(shù)據(jù)分成多個部分,例如每個部分具有一次可以傳送的最大數(shù)據(jù)大小,并傳送每個部分。在圖11中示出的實施例中,從步驟461至S46N,將數(shù)據(jù)從驅(qū)動器2傳送到PC1中N次。在步驟S261至S26N,PC1接收在步驟461至846N傳送的數(shù)據(jù)。在步驟S261至S26N后完成了命令“文件讀取”請求的所有數(shù)據(jù)的接收時,PC1前進到步驟S27,并將命令“文件關(guān)閉”傳送到驅(qū)動器2,以便請求關(guān)閉由在步驟S21傳送的命令“文件打開”請求打開的文件。在步驟S47,驅(qū)動器2從PC1接收命令“文件關(guān)閉”,并關(guān)閉由接收到的命令“文件關(guān)閉”指定的文件。進一步從步驟S47前進到步驟S48,如果驅(qū)動器2已成功關(guān)閉文件,則驅(qū)動器2將成功響應(yīng)“良好”發(fā)回到PC1,而如果驅(qū)動器2關(guān)閉文件失敗,則驅(qū)動器2發(fā)回失敗響應(yīng)“錯誤”。接下來,下面將通過參照圖12中示出的流程圖來描述PD-SBP2協(xié)議文件寫順序。在PC1的應(yīng)用程序31(圖4)中,當數(shù)據(jù)被記錄在驅(qū)動器2的光盤3上時,PC1中的SBP2驅(qū)動程序56用作啟動器,而驅(qū)動器2用作目標。在步驟S61中,作為啟動器的PC1(的SBP2驅(qū)動程序56)將命令“文件打開”傳送到作為目標的驅(qū)動器2。在步驟S81,驅(qū)動器2接收所傳送的命令“文件打開”,并前進到步驟S82。在步驟S82,驅(qū)動器2打開來自PC1的命令“文件打開”所指定的文件,并將其文件句柄發(fā)回到PC1。在步驟S62,PC1從驅(qū)動器2中接收文件句柄。前進到步驟S63,PC1將命令“文件邏輯搜尋”傳送到驅(qū)動器2,其中該命令請求將由文件句柄指定的文件的文件指針移動到數(shù)據(jù)記錄的開始位置。在步驟S83,驅(qū)動器2從PC1接收命令“文件邏輯搜尋”。驅(qū)動器2還將在步驟S82中打開的文件的文件指針移動到由來自PC1的命令“文件邏輯搜尋”所指定的位置。從步驟S83前進到步驟S84,如果驅(qū)動器2移動文件指針成功,則其將成功響應(yīng)“良好”發(fā)回PC1。如果驅(qū)動器2移動文件指針失敗,則驅(qū)動器2將失敗響應(yīng)“錯誤”發(fā)回PC1。在步驟S64,PC1從驅(qū)動器2中接收響應(yīng)。如果來自驅(qū)動器2的響應(yīng)為指示驅(qū)動器2移動文件指針失敗的“錯誤”,則其執(zhí)行例如結(jié)束該進程。如果來自驅(qū)動器2的響應(yīng)為指示驅(qū)動器2移動文件指針成功的“良好”,則PC1從步驟S64前進到步驟S65,并將用于請求數(shù)據(jù)記錄的命令“文件寫入”傳送到驅(qū)動器2。此外,依次前進到一組步驟S661到S66N,PC1將要被記錄的數(shù)據(jù)傳送到驅(qū)動器2。一次可以從PC1到驅(qū)動器2傳送的數(shù)據(jù)的最大大小是有限的。因此,當PC1要記錄的數(shù)據(jù)大小大于一次可以傳送的最大數(shù)據(jù)大小時,PC1將要被記錄的數(shù)據(jù)分成多個部分,例如每個部分具有一次可以傳送的最大數(shù)據(jù)大小,并傳送每個部分。在圖13中示出的實施例中,從步驟661至S66N,將數(shù)據(jù)從PC1傳送到驅(qū)動器2中N次。在步驟85,驅(qū)動器2接收從PC1傳送的命令“文件寫入”并依次前進到步驟S861至S86N。在步驟S661到S66N中,驅(qū)動器2接收從PC1傳送的數(shù)據(jù),并從在步驟S83移動的文件指針的位置依次記錄數(shù)據(jù)。之后,前進到步驟S67,PC1將用于請求關(guān)閉由在步驟S61傳送的命令“文件打開”所請求打開的文件的命令“文件關(guān)閉”傳送到驅(qū)動器2。在步驟S87,驅(qū)動器2從PC1接收命令“文件關(guān)閉”,并關(guān)閉命令“文件關(guān)閉”所指定的文件。進一步從步驟S87前進到步驟S88,如果驅(qū)動器2關(guān)閉文件成功,則其將成功響應(yīng)“良好”發(fā)回到PC1。而如果驅(qū)動器2關(guān)閉文件失敗,則其將失敗響應(yīng)“錯誤”發(fā)回到PC1。如上描述,SBP2驅(qū)動程序56(圖4、圖6)將來自PD存儲器55的SCSI碼(SCSI命令)轉(zhuǎn)換為圖8中示出的SCSI命令塊ORB(SBP2數(shù)據(jù)),其中在cbd字段中放置如圖10所示的PD-SBP2命令(擴展命令)。另外,如上所述,將通過作為位于PD_FS54之上的層的設(shè)備驅(qū)動程序的NTI/O管理器52而從PD_FS54中提供的IRP轉(zhuǎn)換成SCSI碼,并由PD存儲器55將其輸出到SBP2驅(qū)動程序56。因此,將由PD_FS54輸出的IRP轉(zhuǎn)換為SCSI碼并由PD存儲器55將其輸出到SBP2驅(qū)動程序56。另外,由SBP2驅(qū)動程序56將來自PD存儲器55的SCSI碼轉(zhuǎn)換為SBP2數(shù)據(jù)(SCSI命令塊ORB)。換句話說,SBP2驅(qū)動程序56將由PD存儲器55輸出的SCSI碼轉(zhuǎn)換為SBP2數(shù)據(jù),該SBP2數(shù)據(jù)被放置在圖8中示出的SCSI命令塊ORB中的cbd字段中。在PD-SBP2中,在圖8中示出的SCSI命令塊ORB中的cbd字段中,放置如圖10所示的擴展命令。因此,由PD存儲器55輸出的SCSI碼為圖10中示出的擴展命令之一,并且可以說是特殊的SCSI碼。因此,PD_FS54通過NTI/O管理器52輸出的IRP需要是特殊的IRP,要由PD存儲器55將該特殊的IRP轉(zhuǎn)換為特殊的SCSI碼。此外,當調(diào)用由Win32子系統(tǒng)51(圖4)向應(yīng)用程序31提供的用于文件操作的API函數(shù)時,預先確定由Win32子系統(tǒng)51通過NTI/O管理器52、FS過濾器驅(qū)動程序53以及NTI/O管理器52而向PD_FS54提供的IRP。換句話說,Win32子系統(tǒng)51給應(yīng)用程序31提供例如用于打開文件的API函數(shù)CreateFile()、用于從文件讀取數(shù)據(jù)的API函數(shù)ReadFile(),用于將數(shù)據(jù)記錄在文件中的API函數(shù)WriteFile()等。例如,當應(yīng)用程序31調(diào)用API函數(shù)CreateFile()時,將API函數(shù)CreateFile()的IRP_MJ_CREATE預定的IRP從NTI/O管理器52提供給PD_FS54。類似地,例如,當應(yīng)用程序31調(diào)用API函數(shù)ReadFile()或WriteFile()時,將API函數(shù)ReadFile()的IRP_MJ_Read的預定的IRP和IRP_MJ_Write的預定的IRP從NTI/O管理器52提供給PD_FS54。在這種情況下,如果PD_FS54使用NTI/O管理器52來向PD存儲器55提供要通過NTI/O管理器52提供的IRP,則預先確定要通過NTI/O管理器52提供的IRP,即,例如,被稱為“標準IRP”的諸如IRP_MJ_CREATE、IRP_MJ_READ和IRP_MJ_WRITE的IRP。因此,在PD存儲器55中,IRP被轉(zhuǎn)換成與IRP相對應(yīng)的SCSI碼、以及不是擴展命令的SCSI碼(不是特殊的SCSI碼)。因此,PD_FS54轉(zhuǎn)換通過NTI/O管理器52而提供的IRP,借此將特殊的IRP通過NTI/O管理器52而提供給PD_FS54,其中所述特殊的IRP要被轉(zhuǎn)換為作為擴展命令的SCSI碼(特殊的SCSI碼)。作為特殊的IRP,使用指定了用戶定義的IOCTL碼的IRP_MJ_DEVICE_CONTROL的IRP。圖13示出了由用作特殊的IRP的IRP_MJ_DEVICE_CONTROL的IRP所指定的用戶定義的IOCTL碼,其中由PD_FS54通過NTI/O管理器52將所述特殊的IRP輸出到PD存儲器55。除了命令“設(shè)置”之外,圖13示出的IOCTL碼與圖10中示出的PD-SBP2命令(擴展命令)一一對應(yīng)。具體地,在圖13中,IOCTL_PD_FILE_OPEN、IOCTL_PD_FILE_CLOSE、IOCTL_PD_FILE_READ、IOCTL_PD_FILE_WRITE、IOCTL_PD_FILE_LOGICAL_SEEK、IOCTL_PD_SETEOF、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分別對應(yīng)于圖10中的命令,即,“文件打開”、“文件關(guān)閉”、“文件讀取”、“文件寫入”、“文件邏輯搜尋”、“設(shè)置EOF”、“刪除”、“重命名”、“創(chuàng)建目錄”、“刪除目錄”、“列表打開”、“列表讀取”、“格式化”、“彈出”、“盤信息”和“系統(tǒng)”。當由PD_FS54通過NTI/O管理器52提供的IRP是指定了如圖13所示的IOCTL碼的IRP、即IRP_MJ_DEVICE_CONTROL的IRP時,PD存儲器55將對應(yīng)于IOCTL的擴展命令(特殊的SCSI碼)輸出到SBP2驅(qū)動程序56。SBP2驅(qū)動程序56將來自PD存儲器55的對應(yīng)于IOCTL碼的擴展命令轉(zhuǎn)換為如圖8所示的SCSI命令塊ORB(SBP2數(shù)據(jù)),在SCSI命令塊ORB中,將該擴展命令放置在cbd字段中。接下來,通過參照圖14中示出的流程圖來進一步說明圖6(圖4)中的PD_FS54所執(zhí)行的IRP處理。為了描述簡練起見,假設(shè)不使用由NT高速緩沖存儲管理器59提供的高速緩沖存儲功能。例如,應(yīng)用程序31調(diào)用由Win32子系統(tǒng)51提供的關(guān)于文件操作的API函數(shù),當將對應(yīng)于API函數(shù)的IRP通過Win32子系統(tǒng)51、NTI/O管理器52、FS過濾器驅(qū)動程序53和NTI/O管理器52傳送到PD_FS54時,在步驟S101,PD_FS54接收所傳送的IRP,并前進到步驟S102。在步驟S102,PD_FS54將在步驟S101接收的IRP轉(zhuǎn)換為函數(shù)IoCallDriver(),函數(shù)IoCallDriver()發(fā)出要被轉(zhuǎn)換成能夠在IEEE1394通信中處理文件系統(tǒng)的SBP2命令的、如圖13所示的IOCTL碼。函數(shù)IoCallDriver()在工作于用戶模式時具有與由Win32子系統(tǒng)51提供的API函數(shù)DeviceIoControl()相類似的功能。在核心模式中使用此函數(shù)。之后,在步驟S103,PD_FS54調(diào)用在步驟S102中得到的函數(shù)IoCallDriver(),在等待要傳送的下一個IRP之后返回到步驟S101,并重復執(zhí)行類似的處理。如上所述,在步驟S103,當PD_FS54調(diào)用函數(shù)IoCallDriver()時,NTI/O管理器52將由調(diào)用的函數(shù)IoCallDriver()所發(fā)出的IOCTL碼指定的IRP(IRP_MJ_DEVICE_CONTROL的IRP)輸出到PD存儲器55。PD存儲器55將作為與IRP所指定的IOCTL碼(圖13)相對應(yīng)的特殊SCSI碼的擴展命令(圖10)輸出到SBP2驅(qū)動程序56。SBP2驅(qū)動程序56將與來自PD存儲器55的IOCTL碼相對應(yīng)的擴展命令轉(zhuǎn)換為SCSI命令塊ORB(SBP2數(shù)據(jù))(圖8),其中在cbd字段放置擴展命令,并通過IEEE1394總線驅(qū)動程序57而將SCSI命令塊ORB傳送到驅(qū)動器2。如上所述,在PD_FS54中,被提供使得應(yīng)用程序31調(diào)用關(guān)于文件操作的API函數(shù)的IRP被轉(zhuǎn)換為函數(shù)IoCallDriver(),其中IoCallDriver()發(fā)出要被轉(zhuǎn)換成能夠在IEEE1394通信中處理文件系統(tǒng)的PD-SBP2命令(圖10中的擴展命令)的、如圖13所示的IOCTL碼。因此,通過在驅(qū)動器2中直接使用真實文件系統(tǒng)61和虛擬文件系統(tǒng)62,可容易地控制驅(qū)動器2。換句話說,即使OS30或應(yīng)用程序31不控制單行記錄,驅(qū)動器2也控制單行記錄。因此,可以實時地執(zhí)行AV數(shù)據(jù)的記錄和回放。此外,由于應(yīng)用程序31可以將驅(qū)動器2中的虛擬文件系統(tǒng)62視為安裝在PC1上,所以,由虛擬文件系統(tǒng)62管理的文件可類似于由諸如NTFS或FAT的普通文件系統(tǒng)管理的文件而被處理。作為PD驅(qū)動器的驅(qū)動器2主要試圖實時地讀取和記錄高比特率AV數(shù)據(jù)。對于此應(yīng)用,要被讀取和記錄的通常僅為一個流。換句話說,雖然PD驅(qū)動器可以同時讀取和記錄多個數(shù)據(jù)流,但當同時地(時分地)讀取和記錄數(shù)據(jù)流時,單行記錄的屬性使得在改變要被讀取或記錄的數(shù)據(jù)流時發(fā)生搜尋,并且,搜尋妨礙了實時特性。因此,為了確保實時特性,需要降低AV數(shù)據(jù)(流)的比特率。另外,在要讀取和記錄的僅被設(shè)置為一個流的情況下,假設(shè)可以高比特率實時地讀取和記錄AV數(shù)據(jù),如果要被讀取和記錄的被設(shè)置為M個流,則簡單地說,與僅一個流被讀取和記錄的情況相比,實時讀取和記錄是困難的,除非流具有等于或低于1/M的比特率。因此,能夠被讀取和記錄的流是低圖像質(zhì)量或低聲音質(zhì)量的AV數(shù)據(jù)。根據(jù)前述描述,為了執(zhí)行實時的高比特率AV數(shù)據(jù)的讀取和記錄,優(yōu)選地是,將要從驅(qū)動器2讀取或記錄在驅(qū)動器2上的AV數(shù)據(jù)流的數(shù)目限制為1。可以通過例如控制驅(qū)動器2僅處理單個文件句柄來實現(xiàn)該限制。另外,根據(jù)計算機的通用OS,通常,可以打開多個文件。因此,當驅(qū)動器2連接到PC1時,應(yīng)用程序31優(yōu)選地打開裝入驅(qū)動器2中的光盤3上的多個文件,并優(yōu)選地,可以操作所打開的文件。因此,當驅(qū)動器2僅使用一個文件句柄時,PD_FS54可被提供有使應(yīng)用程序31能夠貌似打開多個文件的函數(shù)(如果需要,在下文中稱為“多個文件同時打開函數(shù)”)。圖15為圖解多個文件同時打開函數(shù)的方框圖。特別地,圖15是在應(yīng)用程序31多次打開文件時的內(nèi)核58的狀態(tài)的示意圖解。當應(yīng)用程序31打開多個文件時,在內(nèi)核58中,創(chuàng)建與文件的打開相對應(yīng)的文件對象。在圖15中,在內(nèi)核58中創(chuàng)建三個文件對象81、82、83。創(chuàng)建文件對象81,從而應(yīng)用程序31調(diào)用API函數(shù)CreateFile(),并打開例如由虛擬文件系統(tǒng)62管理的文件C0001.MXF(如圖7的左邊所示)。類似于文件對象81,創(chuàng)建文件對象82,從而應(yīng)用程序31調(diào)用API函數(shù)CreateFile(),并打開例如由虛擬文件系統(tǒng)62管理的文件C0001.MXF(如圖7的左邊所示)。創(chuàng)建文件對象83,從而應(yīng)用程序31調(diào)用API函數(shù)CreateFile(),并打開例如由虛擬文件系統(tǒng)62管理的文件C0002.MXF(如圖7的左邊所示)。因此,在圖15中,應(yīng)用程序31調(diào)用API函數(shù)CreateFile()兩次以便打開文件C0001.MXF,并調(diào)用API函數(shù)CreateFile()一次以便打開文件C0002.MXF,借此在內(nèi)核58中創(chuàng)建三個文件對象81至83。文件對象81至83中的每個具有文件名、文件句柄(文件系統(tǒng)文件句柄),和對應(yīng)文件的文件指針。由PD_FS54中的文件句柄資源管理器54A提供多個文件同時打開函數(shù)。換句話說,從驅(qū)動器2發(fā)回的文件句柄具有資源特征,即難以使多個文件句柄有效的屬性(多個文件句柄不能使用)。因此,文件句柄資源管理器54A通過在文件對象81中創(chuàng)建的文件對象來專門地控制從驅(qū)動器2發(fā)回的文件句柄的訪問??捎扇我夥椒?,如信號機(semaphore)方法,來執(zhí)行該專門控制。換句話說,文件句柄資源管理器54A存儲從驅(qū)動器2發(fā)回的PD-SBP2中的文件句柄(在下文中稱為“PD-SBP2文件句柄”)、以及指向文件對象的指針,該文件對象使用SBP2文件句柄。當應(yīng)用程序31調(diào)用請求打開與由目前存儲的SBP2文件句柄所指定的文件不同的文件的API函數(shù)FileCreate()、請求讀取數(shù)據(jù)的API函數(shù)ReadFile()、以及請求記錄數(shù)據(jù)的API函數(shù)WriteFile()之一時,文件句柄資源管理器54A關(guān)閉由目前存儲的PD-SBP2文件句柄所指定的文件。此外,通過使用應(yīng)用程序31來調(diào)用API函數(shù),文件句柄資源管理器54A請求驅(qū)動器2打開請求數(shù)據(jù)的讀取或記錄的文件。文件句柄資源管理器54A響應(yīng)該請求而重新存儲由驅(qū)動器2發(fā)回的PD-SBP2文件句柄,來代替已存儲的PD-SBP2文件句柄。文件句柄資源管理器54A還存儲使用重新存儲的PD-SBP2文件句柄的、指向文件對象的指針,來代替已存儲的指針。通過使用PD_FS54的上述多個文件同時打開函數(shù)(的文件句柄資源管理器54A),應(yīng)用程序31可以(貌似)同時打開多個文件。接下來,下面將通過參照圖16中示出的流程圖進一步說明多個文件同時打開函數(shù)。為了描述的簡潔起見,假設(shè)不使用由NT高速緩沖存儲管理器59(圖4)所提供的高速緩沖存儲功能。例如,當在步驟S111應(yīng)用程序31調(diào)用請求打開文件A的API函數(shù)CreateFile()時,Win32子系統(tǒng)51(圖4)將響應(yīng)該調(diào)用的請求輸出到NTI/O管理器52,并且NTI/O管理器52響應(yīng)來自Win32子系統(tǒng)51的請求,而將請求打開文件A的API函數(shù)CreateFile()輸出到PD_FS54。在步驟S131,PD_FS54(的文件句柄資源管理器54A)接收請求打開文件A的“IRP-MJ-CREATE”,其中提供“IRP-MJ-CREATE”使得應(yīng)用程序31在步驟S111調(diào)用API函數(shù),并前進到步驟S132。在步驟S132,PD_FS54(的文件句柄資源管理器54A)調(diào)用函數(shù)IoCallDriver()來發(fā)出作為請求打開文件A的IOCTL碼的IOCTL_PD_FILE_OPEN(圖13)。響應(yīng)由PD_FS54在步驟S132中調(diào)用的函數(shù)IoCallDriver(),NTI/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_FS54在步驟S132調(diào)用函數(shù)IoCallDriver(),并且,PD存儲器55通過SBP2驅(qū)動程序56和IEEE1394總線驅(qū)動程序57將與IRP_MJ_DEVICE_CONTROL相對應(yīng)的擴展命令“文件打開”(圖10)輸出到驅(qū)動器2。這允許驅(qū)動器2打開光盤3上的文件A(通過虛擬文件系統(tǒng)62而顯示給外部的文件A)。在此之后,例如,在步驟S112,當應(yīng)用程序31調(diào)用請求從文件A讀取數(shù)據(jù)的API函數(shù)ReadFile()時,Win32子系統(tǒng)51將響應(yīng)該調(diào)用的請求輸出到NTI/O管理器52,并且,響應(yīng)來自Win32子系統(tǒng)51的請求,NTI/O管理器52將與請求從文件A中讀取數(shù)據(jù)的API函數(shù)ReadFile()相對應(yīng)的IRP_MJ_READ(的IRP)輸出到PD_FS54。在步驟S133,PD_FS54接收請求從文件A讀取數(shù)據(jù)的IRP-MJ-READ,其中提供該IRP-MJ-READ使得應(yīng)用程序31在步驟S112調(diào)用API函數(shù),并前進到步驟S134。在步驟S134,響應(yīng)IRP_MJ_READ,PD_FS54調(diào)用發(fā)出作為請求從文件A讀取數(shù)據(jù)的IOCTL碼的IOCTL_PD_FILE_READ(圖13)的函數(shù)IoCallDriver()。響應(yīng)由PD_FS54在步驟S134調(diào)用函數(shù)IoCallDriver(),NTI/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_FS54在步驟S134調(diào)用函數(shù)IoCallDriver(),并且,PD存儲器55通過SBP2驅(qū)動程序56和IEEE1394總線驅(qū)動程序57將與IRP_MJ_DEVICE_CONTROL相對應(yīng)的擴展命令“文件讀取”(圖10)輸出到驅(qū)動器2中。這允許驅(qū)動器2從光盤3上的文件A讀取數(shù)據(jù)。通過IEEE1394總線驅(qū)動程序57、SBP2驅(qū)動程序56、PD_FS54、FS過濾器驅(qū)動程序53而將在驅(qū)動器2中讀取的數(shù)據(jù)提供到應(yīng)用程序31。PD存儲器55包括用于讀取和記錄數(shù)據(jù)的讀取/寫入緩沖器(未示出)。例如,讀取/寫入緩沖器的大小與分頁的頁面大小(例如,4千字節(jié))相等,并且一次讀取或記錄的數(shù)據(jù)的最大大小受到讀取/寫入緩沖器的大小的限制。因此,當由來自應(yīng)用程序31的IRP_MJ_READ(提供IRP_MJ_READ使得應(yīng)用程序31調(diào)用API函數(shù)ReadFile())請求讀取的數(shù)據(jù)的大小超過了讀取/寫入緩沖器的大小時,PD_FS54將來自應(yīng)用程序31的IRP_MJ_READ分成請求讀取大小不超過讀取/寫入緩沖器的大小的數(shù)據(jù)的多個IRP“IRP_MJ_DEVICE_CONTROL”,并將劃分后的IRP輸出到PD存儲器55。換句話說,PD_FS54多次調(diào)用發(fā)出IOCTL_PD_FILE_READ來請求讀取大小不大于讀取/寫入緩沖器的大小的數(shù)據(jù)的函數(shù)IoCallDriver()。這向PD存儲器55提供多個IRP_MJ_DEVICE_CONTROL的IRP,在每個IRP_MJ_DEVICE_CONTROL中指定了IOCTL_PD_FILE_READ。這也適用于來自應(yīng)用程序31的請求將數(shù)據(jù)記錄在一個文件中的IRP_MJ_WRITE。在圖16中,響應(yīng)在步驟S133中的PD_FS54的IRP_MJ_READ,在步驟S134至S136中的每個,將IRP_MJ_DEVICE_CONTROL輸出到PD存儲器55,其中在IRP_MJ_DEVICE_CONTROL中指定了請求從文件A中讀取數(shù)據(jù)的IOCTL_PD_FILE_READ。換句話說,將IOCTL_PD_FILE_READ從PD_FS54輸出到PD存儲器55三次。在步驟S172到S174中的每個,通過接收在步驟S134到S136中的每個由PD_FS54輸出、并且其中指定了IOCTL_PD_FILE_READ的IRP_MJ_DEVICE_CONTROL、以及通過SBP2驅(qū)動程序56和IEEE1394總線驅(qū)動程序57而向驅(qū)動器2輸出與IRP_MJ_DEVICE_CONTROL相對應(yīng)的擴展命令“文件讀取”,PD存儲器55從文件A讀取數(shù)據(jù)三次。之后,當在步驟S113應(yīng)用程序31調(diào)用請求打開不同于目前在驅(qū)動器2中打開的文件A的文件B的API函數(shù)時,與步驟S111中的情況相似,將與請求打開文件B的API函數(shù)CreateFile()相對應(yīng)的IRP_MJ_CREATE提供到PD_FS54。在步驟S137,PD_FS54從應(yīng)用程序31接收IRP_MJ_CREATE(請求打開文件B并被提供使得應(yīng)用程序31調(diào)用API函數(shù)CreateFile()的IRP_MJ_CREATE),并前進到步驟S138,并且調(diào)用發(fā)出IOCTL_PD_FILE_CLOSE(圖13)的函數(shù)IoCallDriver(),其中IOCTL_PD_FILE_CLOSE是用于請求關(guān)閉文件A的IOCTL碼。換句話說,如上所述,驅(qū)動器2可以使用的文件句柄的數(shù)目僅為一個。因此,在請求打開文件B之前,PD_FS54請求關(guān)閉目前打開的文件A。響應(yīng)在步驟S138由PD_FS54調(diào)用函數(shù)IoCallDriver(),NTI/O管理器52將其中指定了IOCTL_PD_FILE_CLOSE的IRP_MJ_DEVICE_CONTROL提供到PD存儲器55。在步驟S175,PD存儲器55接收其中指定了IOCTL_PD_FILE_CLOSE、被提供使得PD_FS54在步驟S138調(diào)用函數(shù)IoCallDriver()的IRP_MJ_DEVICE_CONTROL,并且通過SBP2驅(qū)動程序56和IEEE1394總線驅(qū)動程序57而將與IRP_MJ_DEVICE_CONTROL相對應(yīng)的擴展命令“文件關(guān)閉”輸出到驅(qū)動器2。這允許驅(qū)動器2關(guān)閉光盤3上的文件A。通過響應(yīng)在步驟S137接收到的請求打開文件B的IRP_MJ_CREATE,而在執(zhí)行步驟S138之后前進到步驟S139、并調(diào)用請求作為用于請求打開文件B的IOCTL碼的IOCTL_PD_FILE_OPEN(圖13)的函數(shù)IoCallDriver(),PD_FS54將其中指定了IOCTL_PD_FILE_OPEN的IRP_MJ_DEVICE_CONTROL提供到PD存儲器55。在步驟S176中,PD存儲器55從PD_FS54接收IRP_MJ_DEVICE_CONTROL(即其中指定了IOCTL_PD_FILE_OPEN、并被提供使得PD_FS54調(diào)用函數(shù)IoCallDriver()的IRP_MJ_DEVICE_CONTROL),并通過SBP2驅(qū)動程序56和IEEE1394總線驅(qū)動程序57將與IRP_MJ_DEVICE_CONTROL相對應(yīng)的擴展命令“文件打開”(圖10)輸出到驅(qū)動器2。這允許驅(qū)動器2打開光盤3上的文件B(通過虛擬文件系統(tǒng)62顯示給外部的文件B)。在此之后,例如,當在步驟S114應(yīng)用程序31調(diào)用請求將數(shù)據(jù)記錄在文件B中的API函數(shù)WriteFile()時,Win32子系統(tǒng)51將響應(yīng)該調(diào)用的請求輸出到NTI/O管理器52,并且,響應(yīng)來自Win32子系統(tǒng)51的請求,NTI/O管理器52將與請將求數(shù)據(jù)記錄在文件B中的API函數(shù)WriteFile()相對應(yīng)的IRP_MJ_WRITE輸出到PD_FS54。在步驟S140,PD_FS54接收請求將數(shù)據(jù)記錄在文件B中的IRP_MJ_WRITE,其中提供IRP_MJ_WRITE使得應(yīng)用程序31在步驟S114中調(diào)用API函數(shù),并前進到步驟S141。在步驟S141,響應(yīng)IRP_MJ_WRITE,PD_FS54調(diào)用函數(shù)IoCallDriver()來發(fā)出作為是請求將數(shù)據(jù)記錄在文件B中的IOCTL碼的IOCTL_PD_FILE_WRITE(圖13)。響應(yīng)由PD_FS54在步驟S141調(diào)用函數(shù)IoCallDriver(),NTI/O管理器52將其中指定了IOCTL_PD_FILE_WRITE的IRP_MJ_DEVICE_CONTROL提供到PD存儲器55。在步驟S177,PD存儲器55接收其中指定了IOCTL_PD_FILE_WRITE、并被提供使得PD_FS54在步驟S141調(diào)用函數(shù)IoCallDriver()的IRP_MJ_DEVICE_CONTROL,并通過SBP2驅(qū)動程序56和IEEE1394總線驅(qū)動程序57將與IRP_MJ_DEVICE_CONTROL相對應(yīng)的擴展命令“文件打開”輸出到驅(qū)動器2。這允許驅(qū)動器2將數(shù)據(jù)記錄到光盤3上的文件B中。如上所述,數(shù)據(jù)可以一次被讀取或記錄的最大大小受PD存儲器55中的讀取/寫入緩沖器的大小的限制。因此,當通過由來自應(yīng)用程序31的IRP_MJ_WRITE(IRP_MJ_WRITE被提供從而使應(yīng)用程序31調(diào)用API函數(shù))請求記錄的數(shù)據(jù)量超過了讀取/寫入緩沖器的大小時,PD_FS54將來自應(yīng)用程序31的IRP_MJ_WRITE分成請求讀取大小不超過讀取/寫入緩沖器的大小的數(shù)據(jù)的多個IRP“IRP_MJ_DEVICE_CONTROL”,并將劃分后的IRPs輸出到PD存儲器55。換句話說,響應(yīng)來自應(yīng)用程序31的IRP_MJ_WRITE,PD_FS54多次調(diào)用發(fā)出用于請求大小不大于讀取/寫入緩沖器的大小的數(shù)據(jù)的記錄的IOCTL_PD_FILE_WRITE的函數(shù)IoCallDriver(),由此向PD存儲器55提供多個IRP“IRP_MJ_DEVICE_CONTROL”,在每個IRP_MJ_DEVICE_CONTROL中指定了IOCTL_PD_FILE_WRITE。在圖16中,響應(yīng)在步驟S140由PD_FS54接收的IRP_MJ_WRITE,在步驟S141至S143中的每個,將其中指定了請求將數(shù)據(jù)記錄在文件B中的IOCTL_PD_FILE_WRITE的IRP_MJ_DEVICE_CONTROL輸出到PD存儲器55。換句話說,將IOCTL_PD_FILE_WRITE從PD_FS54輸出到PD存儲器55三次。在步驟S177到S179中的每個,通過接收其中指定了IOCTL_PD_FILE_WRITE并在步驟S141到S143中的每個由PD_FS54輸出的IRP_MJ_DEVICE_CONTROL、以及通過SBP2驅(qū)動程序56和IEEE1394總線驅(qū)動程序57向驅(qū)動器2三次輸出與IRP_MJ_DEVICE_CONTROL相對應(yīng)的擴展命令“文件讀取”,PD存儲器55將數(shù)據(jù)記錄在文件B中三次。在此之后,當在步驟S115應(yīng)用程序31調(diào)用請求讀取不同于目前在驅(qū)動器2中打開的文件B的文件A的API函數(shù)ReadFile()時,與步驟S112中的情況類似,將與請求從文件A讀取數(shù)據(jù)的API函數(shù)ReadFile()相對應(yīng)的IRP_MJ_READ提供到PD_FS54。在步驟S144,PD_FS54從應(yīng)用程序31接收IRP_MJ_READ(請求從文件A讀取數(shù)據(jù)、并被提供使得應(yīng)用程序31調(diào)用分配標記ReadFile()的IRP_MJ_READ),并前進到步驟S145。在步驟145,響應(yīng)接收到的IRP_MJ_READ,PD_FS54調(diào)用函數(shù)IoCallDriver()來發(fā)出作為用于請求關(guān)閉文件B的IOCTL碼的IOCTL_PD_FILE_CLOSE(圖13)。換句話說,如上所述,驅(qū)動器2可以使用的文件句柄的數(shù)目僅僅為一個。因此,在請求從文件A讀取數(shù)據(jù)之前,PD_FS54請求關(guān)閉目前打開的文件B。響應(yīng)在步驟S145中由PD_FS54調(diào)用的函數(shù)IoCallDriver(),NTI/O管理器52將其中指定了請求關(guān)閉文件B的IOCTL_PD_FILE_CLOSE的IRP_MJ_DEVICE_CONTROL提供到PD存儲器55。在步驟S180,PD存儲器55接收其中指定了IOCTL_PD_FILE_CLOSE、并被提供使得PD_FS54在步驟S145調(diào)用函數(shù)IoCallDriver()的IRP_MJ_DEVICE_CONTROL,并通過SBP2驅(qū)動程序56和IEEE1394總線驅(qū)動程序57將與IRP_MJ_DEVICE_CONTROL相對應(yīng)的擴展命令“文件關(guān)閉”(圖10)輸出到驅(qū)動器2中。這允許驅(qū)動器2關(guān)閉光盤3上的文件B。響應(yīng)在步驟S144接收的、請求從文件A讀取數(shù)據(jù)的IRP_MJ_READ而在執(zhí)行步驟S145之后前進到步驟S146,PD_FS54調(diào)用發(fā)出作為請求打開文件A的IOCTL碼的IOCTL_PD_FILE_OPEN(圖13)的函數(shù)IoCallDriver()。換句話說,由于文件A目前是關(guān)閉的,使得在步驟S175中PD存儲器55將用于請求關(guān)閉文件A的擴展命令“文件關(guān)閉”(圖10)輸出到驅(qū)動器2,所以,為了從文件A讀取數(shù)據(jù),PD_FS54調(diào)用發(fā)出作為請求打開文件A的IOCTL碼的IOCTL_PD_FILE_OPEN的函數(shù)IoCallDriver()。響應(yīng)在步驟S146由PD_FS54調(diào)用函數(shù)IoCallDriver(),NTI/O管理器52將其中指定了請求打開文件A的IOCTL_PD_FILE_OPEN的IRP_MJ_DEVICE_CONTROL提供到PD存儲器55。在步驟S181中,PD存儲器55接收其中指定了IOCTL_PD_FILE_OPEN、并被提供使得PD_FS54調(diào)用函數(shù)IoCallDriver()的IRP_MJ_DEVICE_CONTROL,并通過SBP2驅(qū)動程序56和IEEE1394總線驅(qū)動程序57將與IRP_MJ_DEVICE_CONTROL相對應(yīng)的擴展命令“文件打開”(圖10)輸出到驅(qū)動器2。這允許驅(qū)動器2打開光盤3上的文件A。通過響應(yīng)在步驟S144接收到的從文件A中讀取數(shù)據(jù)的IRP_MJ_READ、并調(diào)用發(fā)出作為請求從文件A中讀取數(shù)據(jù)的IOCTL碼的IOCTL_PD_FILE_READ(圖13)的IoCallDriver(),而在執(zhí)行步驟S146后前進到步驟S147,PD_FS54將其中指定了發(fā)出的IOCTL_PD_FILE_READ的IRP_MJ_DEVICE_CONTROL提供到PD存儲器55。在步驟S182,PD存儲器55接收由PD_FS54提供的、其中指定了IOCTL_PD_FILE_READ的IRP_MJ_DEVICE_CONTROL,并通過SBP2驅(qū)動程序56和IEEE1394總線驅(qū)動程序57而將與接收的IRP_MJ_DEVICE_CONTROL相對應(yīng)的擴展命令“文件讀取”(圖10)輸出到驅(qū)動器2。這允許驅(qū)動器2從光盤3上的文件A中讀取數(shù)據(jù)。將從驅(qū)動器2讀取的數(shù)據(jù)通過IEEE1394總線驅(qū)動程序57、SBP2驅(qū)動程序56、PD存儲器55、以及FS過濾器驅(qū)動程序53而提供給應(yīng)用程序31?;谟捎谏厦娴腜D存儲器55中的讀取/寫入緩沖器的大小的、在讀取和寫入中的限制,在圖16中,響應(yīng)在步驟S144中由PD_FS54接收的IRP_MJ_READ,在步驟S147至S149的每個中,將其中指定了請求從文件A中讀取數(shù)據(jù)的IOCTL_PD_FILE_READ的IRP_MJ_DEVICE_CONTROL輸出到PD存儲器55。換句話說,將IOCTL_PD_FILE_READ從PD_FS54輸出到PD存儲器55三次。通過在步驟S182到S184中的每個中接收在步驟S147到S149中的每個由PD_FS54輸出的其中指定了IOCTL_PD_FILE_READ的IRP_MJ_DEVICE_CONTROL、以及通過SBP2驅(qū)動程序56和IEEE1394總線驅(qū)動程序57將與IRP_MJ_DEVICE_CONTROL相對應(yīng)的擴展命令“文件讀取”輸出到驅(qū)動器2中,PD存儲器55從文件A讀取數(shù)據(jù)三次。之后,當在步驟S116應(yīng)用程序31調(diào)用請求將數(shù)據(jù)記錄到不同于目前在驅(qū)動器2中的打開文件A的文件B的API函數(shù)WriteFile()時,與步驟S114中的情況相似,將與請求將數(shù)據(jù)記錄在文件B中的API函數(shù)WriteFile()相對應(yīng)的IRP_MJ_WRITE提供到PD_FS54。在步驟S150,PD_FS54從應(yīng)用程序31接收IRP-MJ-WRITE(請求將數(shù)據(jù)記錄在文件B中、并被提供使得應(yīng)用程序31調(diào)用API函數(shù)WriteFile()的IRP_MJ_WRITE),并前進到步驟S151。在步驟S151,響應(yīng)接收到的IRP_MJ_WRITE,PD_FS54調(diào)用發(fā)出作為請求關(guān)閉文件A的IOCTL碼的IOCTL_PD_FILE_CLOSE(圖13)的函數(shù)IoCallDriver()。換句話說,如上所述,驅(qū)動器2可以使用的文件句柄的數(shù)目僅為一個。因此,在請求將數(shù)據(jù)記錄在文件B中之前,PD_FS54請求關(guān)閉目前打開的文件A。響應(yīng)在步驟S151由PD_FS54調(diào)用函數(shù)IoCallDriver(),NTI/O管理器52將其中指定了用于請求關(guān)閉文件A的IOCTL_PD_FILE_CLOSE的IRP_MJ_DEVICE_CONTROL提供到PD存儲器55。在步驟S185,PD存儲器55接收其中指定了IOCTL_PD_FILE_CLOSE、并被提供使得PD_FS54在步驟S151調(diào)用函數(shù)IoCallDriver()的IRP_MJ_DEVICE_CONTROL,并通過SBP2驅(qū)動程序56和IEEE1394總線驅(qū)動程序57將與IRP_MJ_DEVICE_CONTROL相對應(yīng)的擴展命令“文件關(guān)閉”(圖10)輸出到驅(qū)動器2中。這允許驅(qū)動器2關(guān)閉光盤3上的文件A。響應(yīng)在步驟S150接收的請求將數(shù)據(jù)記錄在文件B中的IRP_MJ_WRITE而在步驟S151之后進入步驟S152,PD_FS54調(diào)用發(fā)出作為請求打開文件B的IOCTL碼的IOCTL_PD_FILE_OPEN(圖13)的函數(shù)IoCallDriver()。換句話說,在上述步驟S180,PD存儲器55將請求關(guān)閉文件B的擴展命令“文件關(guān)閉”(圖10)輸出到驅(qū)動器2,由此文件B目前是關(guān)閉的。因此,為了將數(shù)據(jù)記錄在文件B中,PD_FS54調(diào)用發(fā)出作為請求打開文件B的IOCTL碼的IOCTL_PD_FILE_OPEN的函數(shù)IoCallDriver()。響應(yīng)在步驟S152中由PD_FS54調(diào)用函數(shù)IoCallDriver(),NTI/O管理器52將其中指定了IOCTL_PD_FILE_OPEN的IRP_MJ_DEVICE_CONTROL提供到PD存儲器55。在步驟S186中,PD存儲器55接收其中指定了IOCTL_PD_FILE_OPEN、并被提供使得PD_FS54在步驟152調(diào)用函數(shù)IoCallDriver()的IRP_MJ_DEVICE_CONTROL,并通過SBP2驅(qū)動程序56和IEEE1394總線驅(qū)動程序57將與IRP_MJ_DEVICE_CONTROL相對應(yīng)的擴展命令“文件打開”(圖10)輸出到驅(qū)動器2。這允許驅(qū)動器2打開光盤3上的文件B。響應(yīng)在步驟S151接收的、請求將數(shù)據(jù)記錄在文件B中的IRP_MJ_WRITE而在步驟S152之后進入步驟S153,PD_FS54調(diào)用發(fā)出作為請求將數(shù)據(jù)記錄在文件B中的IOCTL碼的IOCTL_PD_FILE_WRITE(圖13)的函數(shù)IoCallDriver(),由此向PD存儲器55提供其中指定了IOCTL_PD_FILE_WRITE的IRP_MJ_DEVICE_CONTROL。在步驟S187中,PD存儲器55接收由PD_FS54提供的、其中指定了IOCTL_PD_FILE_WRITE的IRP_MJ_DEVICE_CONTROL,并通過SBP2驅(qū)動程序56和IEEE1394總線驅(qū)動程序57將與IRP_MJ_DEVICE_CONTROL相對應(yīng)的擴展命令“文件寫入”(圖10)輸出到驅(qū)動器2。這允許驅(qū)動器2將數(shù)據(jù)記錄在光盤3上的文件B中?;谟捎赑D存儲器55中的讀取/寫入緩沖器的大小的、在讀取和寫入中的限制,在圖16中,響應(yīng)在步驟S150中由PD_FS54接收的IRP_MJ_READ,在步驟S153至S155中的每個,將其中指定了請求將數(shù)據(jù)記錄在文件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_FS54輸出的其中指定了IOCTL_PD_FILE_WRITE的IRP_MJ_DEVICE_CONTROL、以及通過SBP2驅(qū)動程序56和IEEE1394總線驅(qū)動程序57輸出與IRP_MJ_DEVICE_CONTROL相對應(yīng)的擴展命令“文件寫入”,PD存儲器55將數(shù)據(jù)記錄在文件B中三次。之后,當在步驟S117應(yīng)用程序31調(diào)用請求關(guān)閉文件A的API函數(shù)CreateFile()時,Win32子系統(tǒng)51(圖4)將響應(yīng)該調(diào)用的請求輸出到NTI/O管理器52,并且NTI/O管理器52響應(yīng)來自Win32子系統(tǒng)51的請求,將請求清空文件A的IRP_MJ_CLEANUP和與請求關(guān)閉文件A的API函數(shù)CreateFile()相對應(yīng)的IRP_MJ_CLOSE輸出到PD_FS54。在步驟S156到S157,PD_FS54分別接收請求清空文件A、并且被提供使得應(yīng)用程序31調(diào)用API函數(shù)的IRP_MJ_CLEANUP、以及請求關(guān)閉文件A的IRP_MJ_CLOSE。響應(yīng)請求清空文件A的IRP_MJ_CLEANUP,PD_FD54執(zhí)行清空處理,如清除由NT高速緩沖存儲管理器59(圖4)提供的高速緩沖存儲功能所高速緩沖存儲的數(shù)據(jù)。此外,PD_FS54確定由IRP_MJ_CLOSE請求關(guān)閉的文件A是否被打開。例如,確定使用如參照圖15而描述的PD-SBP2文件句柄的文件對象是否用作文件A的文件對象。由于在圖16中,文件A目前是關(guān)閉的,使得在步驟S185,PD存儲器55將請求關(guān)閉文件A的擴展命令“文件關(guān)閉”輸出到驅(qū)動器2,所以,PD_FS54確定由IRP_MJ_CLOSE請求關(guān)閉的文件A已被關(guān)閉。在這種情況下,PD_FS54不特別地執(zhí)行對請求關(guān)閉文件A的IRP_MJ_CLOSE的處理。當在步驟S118應(yīng)用程序31調(diào)用請求關(guān)閉文件B的分配標志CloseFile()時,Win32子系統(tǒng)51(圖4)將響應(yīng)該調(diào)用的請求輸出到PD_FS54,并且NTI/O管理器52響應(yīng)來自Win32子系統(tǒng)51的請求,而將請求清空文件B的IRP_MJ_CLEANUP、和與請求關(guān)閉文件B的API函數(shù)CloseFile()相對應(yīng)的IRP_MJ_CLOSE輸出到PD_FS54。在步驟S158至S159,PD_FS_54分別接收請求清空文件B并且被提供使得應(yīng)用程序31在步驟S118調(diào)用API函數(shù)的IRP_MJ_CLEANUP、以及請求關(guān)閉文件B的IRP_MJ_CLOSE。響應(yīng)請求清空文件B的IRP_MJ_CLEANUP,例如,PD_FS54執(zhí)行如上所述的清空處理。PD_FS54確定由IRP_MJ_CLOSE請求關(guān)閉的文件B是否是打開的。在圖16中,文件B目前是打開的,使得在步驟S186,PD存儲器55將請求打開文件B的擴展命令“文件打開”(圖10)輸出到驅(qū)動器2。因此,PD_FS54確定是由IRP_MJ_CLOSE請求關(guān)閉的文件B目前是打開的。在這種情況下,響應(yīng)在步驟S159接收到的、請求關(guān)閉文件B的IRP_MJ_CLOSE,而前進到步驟S160,響應(yīng)IRP_MJ_CLOSE,PD_FS54調(diào)用發(fā)出作為請求關(guān)閉文件B的IOCTL碼的IOCTL_PD_FILE_CLOSE(圖13)的函數(shù)IoCallDriver()。響應(yīng)在步驟S160由PD_FS54調(diào)用的函數(shù)IoCallDriver(),NTI/O管理器52將其中指定了請求關(guān)閉文件B的IOCTL_PD_FILE_CLOSE的IRP_MJ_DEVICE_CONTROL提供到PD存儲器55。在步驟S190,PD存儲器55接收其中指定了IOCTL_PD_FILE_CLOSE、并被提供使得PD_FS54在步驟S160調(diào)用函數(shù)IoCallDriver()的IRP_MJ_DEVICE_CONTROL,并通過SBP2驅(qū)動程序56和IEEE1394總線驅(qū)動程序57將與IRP_MJ_DEVICE_CONTROL相對應(yīng)的擴展命令“文件關(guān)閉”輸出到驅(qū)動器2。這允許驅(qū)動器2關(guān)閉光盤3上的文件B。如上所述,根據(jù)多個文件同時打開函數(shù),當請求訪問不同于當前在驅(qū)動器2中打開的文件的文件時,通過使用PD-FS54(的文件句柄資源管理器54A)來關(guān)閉當前打開的文件和打開請求訪問的文件,專門地控制在驅(qū)動器2中使用的一個文件句柄的訪問。因此,應(yīng)用程序31可以對多個文件執(zhí)行操作,而無需專門考慮驅(qū)動器2僅可以使用一個文件句柄。雖然,在本實施例中,光盤被用作記錄和回放數(shù)據(jù)的記錄介質(zhì),但本發(fā)明可應(yīng)用于例如在諸如硬盤的記錄介質(zhì)上記錄和回放數(shù)據(jù)的情況。在本說明書中,控制PC1執(zhí)行各類處理的程序步驟不需要按照以流程圖形式描述的順序執(zhí)行,并且包括并行或分別運行的步驟(例如,并行處理或基于對象的處理)。本領(lǐng)域的技術(shù)人員應(yīng)當理解,在不脫離附加權(quán)利要求或其等價物的范圍內(nèi),可以根據(jù)設(shè)計需要和其它因素而產(chǎn)生各種修改、組合、子組合和交替。權(quán)利要求1.一種信息處理裝置,其連接到具有文件系統(tǒng)的記錄或回放裝置,該信息處理裝置包括接收部件,用于接收由操作系統(tǒng)響應(yīng)來自應(yīng)用程序的文件操作請求而提供的命令;以及轉(zhuǎn)換部件,用于將由操作系統(tǒng)提供的命令轉(zhuǎn)換為請求,其中要將該請求轉(zhuǎn)換為基于能夠通過與所述記錄或回放裝置進行通信而控制文件系統(tǒng)的通信協(xié)議的命令。2.如權(quán)利要求1所述的信息處理裝置,還包括獨占控制部件,當所述記錄或回放裝置僅使用一個文件句柄時,該獨占控制部件專門地控制對在所述記錄或回放裝置中使用的所述一個文件句柄的訪問。3.如權(quán)利要求1所述的信息處理裝置,其中,該信息處理裝置是不執(zhí)行在所述記錄或回放設(shè)備的文件系統(tǒng)中執(zhí)行的文件管理的文件系統(tǒng)驅(qū)動器。4.如權(quán)利要求1所述的信息處理裝置,其中,從所述記錄或回放裝置中的文件中讀取的數(shù)據(jù)或記錄在所述記錄或回放裝置中的文件中的數(shù)據(jù)至少包括視聽數(shù)據(jù)。5.如權(quán)利要求所述的信息處理裝置,其中,在所述記錄或回放裝置中,在記錄介質(zhì)的記錄區(qū)域中的具有預定或更大大小的連續(xù)空閑區(qū)域之中,保留具有最新記錄的數(shù)據(jù)的空閑區(qū)域,并將數(shù)據(jù)記錄在所保留的區(qū)域中。6.一種用于連接到具有文件系統(tǒng)的記錄或回放裝置的信息處理裝置的信息處理方法,該信息處理方法包括以下步驟接收由操作系統(tǒng)響應(yīng)來自應(yīng)用程序的文件操作請求而提供的命令;以及將由操作系統(tǒng)提供的命令轉(zhuǎn)換為請求,其中要將該請求轉(zhuǎn)換為基于能夠通過與所述記錄或回放裝置進行通信而控制文件系統(tǒng)的通信協(xié)議的命令。7.一種用于連接到具有文件系統(tǒng)的記錄或回放裝置的計算機的程序,該程序包括以下步驟接收由操作系統(tǒng)響應(yīng)來自應(yīng)用程序的文件操作請求而提供的命令;以及將由操作系統(tǒng)提供的命令轉(zhuǎn)換為請求,其中要將該請求轉(zhuǎn)換為基于能夠通過與所述記錄或回放裝置進行通信而控制文件系統(tǒng)的通信協(xié)議的命令。8.一種包含用于連接到具有文件系統(tǒng)的記錄或回放裝置的計算機的程序的記錄介質(zhì),該程序包括以下步驟接收由操作系統(tǒng)響應(yīng)來自應(yīng)用程序的文件操作請求而提供的命令;以及將由操作系統(tǒng)提供的命令轉(zhuǎn)換為請求,其中要將該請求轉(zhuǎn)換為基于能夠通過與所述記錄或回放裝置進行通信而控制文件系統(tǒng)的通信協(xié)議的命令。9.一種連接到具有文件系統(tǒng)的記錄或回放裝置的信息處理裝置,該信息處理裝置包括接收器,用于接收由操作系統(tǒng)響應(yīng)來自應(yīng)用程序的文件操作請求而提供的命令;以及轉(zhuǎn)換器,用于將由操作系統(tǒng)提供的命令轉(zhuǎn)換為請求,其中要將該請求轉(zhuǎn)換為基于能夠通過與所述記錄或回放裝置進行通信而控制文件系統(tǒng)的通信協(xié)議的命令。全文摘要一種信息處理裝置被連接到具有文件系統(tǒng)的記錄或回放裝置。該信息處理裝置包括接收器,用于接收由操作系統(tǒng)響應(yīng)來自應(yīng)用程序的文件操作請求而提供的命令;以及轉(zhuǎn)換器,用于將由操作系統(tǒng)提供的命令轉(zhuǎn)換為請求,其中要將該請求轉(zhuǎn)換為基于能夠通過與所述記錄或回放裝置進行通信而控制文件系統(tǒng)的通信協(xié)議的命令。文檔編號G06F3/06GK1690993SQ20051007882公開日2005年11月2日申請日期2005年4月15日優(yōu)先權(quán)日2004年4月15日發(fā)明者木村真,土谷和久,酒井宣廣,渡辺一彥申請人:索尼株式會社
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
东乡族自治县| 麻城市| 济源市| 翼城县| 武鸣县| 大田县| 塔城市| 武平县| 齐齐哈尔市| 长汀县| 淳化县| 东乌| 大田县| 称多县| 安仁县| 临漳县| 工布江达县| 买车| 武城县| 辽宁省| 民和| 长顺县| 金沙县| 华坪县| 雷山县| 丰城市| 军事| 偃师市| 沈阳市| 肥城市| 夏邑县| 许昌县| 珠海市| 沙雅县| 大洼县| 锦屏县| 广南县| 彩票| 乐清市| 城固县| 景德镇市|