專利名稱::計(jì)算機(jī)系統(tǒng)及訪問文件系統(tǒng)的方法
技術(shù)領(lǐng)域:
:本發(fā)明涉及計(jì)算機(jī)系統(tǒng)及使用訪問NTFS(NT文件系統(tǒng))文件系統(tǒng)的方法,特別涉及一種MSDOS(微軟磁盤操作系統(tǒng))下進(jìn)行NTFS文件系統(tǒng)訪問的計(jì)算機(jī)系統(tǒng)及訪問NTFS文件的方法,在WINDOWS(視窗)NT或WINDOWS2000系統(tǒng)無法正常工作時(shí)訪問NTFS分區(qū)文件。
背景技術(shù):
:隨著WINDOWSNT和WINDOWS2000的廣泛使用,NTFS文件系統(tǒng)的使用也越來越廣泛,但是一旦WINDOWS系統(tǒng)癱瘓,我們將無法訪問NTFS分區(qū)中的文件,NTFS是NT/2000系統(tǒng)特有的文件系統(tǒng),而WINDOWS系統(tǒng)非常龐大,我們無法從可移動(dòng)介質(zhì)上啟動(dòng)它,這時(shí)只有將硬盤放到其它NT系統(tǒng)上訪問,這對(duì)于用戶來說是非常不便的;否則,如果我們想拷貝磁盤上的文檔,或?qū)ο到y(tǒng)殺毒(有些病毒導(dǎo)致系統(tǒng)癱瘓,殺毒后即可正常運(yùn)行)是不可能的。這就需要提供一種環(huán)境,這種環(huán)境非常小,能夠在標(biāo)準(zhǔn)移動(dòng)介質(zhì)-軟盤上運(yùn)行,為我們的應(yīng)用程序提供NTFS分區(qū)文件訪問服務(wù)。針對(duì)上述條件和實(shí)際需要,DOS是最佳選擇,因?yàn)樗俏④浌镜漠a(chǎn)品,更重要的是它的核心非常小,只有幾百KB,(其它提供NTFS文件訪問的非WINDOWS平臺(tái)都非常大,也不能在軟盤上運(yùn)行),當(dāng)然它不支持NTFS分區(qū),因此,我們需要一種DOS環(huán)境下的NTFS文件訪問環(huán)境。目前,DOS環(huán)境下NTFS文件系統(tǒng)訪問程序已經(jīng)出現(xiàn),它是做成DOS驅(qū)動(dòng)形式的,但它有嚴(yán)重的不足一、不支持長文件名,因?yàn)镈OS的文件系統(tǒng)是8.3格式,這是DOS的限制,而NTFS文件系統(tǒng)的文件名是長文件名,因此它不能很好的工作,有時(shí)是不能工作。二、不支持UNICODE(統(tǒng)一編碼),這也是DOS的限制,DOS只支持OEM(原設(shè)備制造商)/ANSI(美國國家標(biāo)準(zhǔn)協(xié)會(huì))字符,對(duì)于東南亞的雙字節(jié)字符(如中文、日文、韓文等)和一些單字節(jié)語言是不能支持的,文件名中有這些文字的文件/目錄它也不能訪問。三、占用的資源不會(huì)釋放,即使在你訪問FAT(文件分配表)文件系統(tǒng)時(shí),它占用的資源也不會(huì)釋放。四、編程比較復(fù)雜,不易修改與維護(hù),因?yàn)樗荄OS的驅(qū)動(dòng),處處受限于DOS驅(qū)動(dòng)的模式。五、不安全。任何人得到這個(gè)程序都可以訪問NTFS分區(qū)上的內(nèi)容。
發(fā)明內(nèi)容針對(duì)上述現(xiàn)有的NTFS分區(qū)文件的訪問方法中出現(xiàn)的這些問題,本發(fā)明的目的在于提供一種能夠訪問NTFS分區(qū)文件的計(jì)算機(jī)系統(tǒng),它不依賴于DOS系統(tǒng)本身,而是根據(jù)應(yīng)用程序的需要提供文件訪問接口,從根據(jù)上解決了它受限于操作系統(tǒng)的問題,本發(fā)明的另一目的是提供一種在DOS下訪問NTFS分區(qū)文件的方法。根據(jù)本發(fā)明的一個(gè)方面,提供一種在DOS下訪問NTFS文件系統(tǒng)的計(jì)算機(jī)系統(tǒng),包括磁盤訪問環(huán)境生成部件,用于基于應(yīng)用程序建立磁盤扇區(qū)訪問環(huán)境;分區(qū)訪問環(huán)境生成部件,用于基于應(yīng)用程序建立分區(qū)訪問環(huán)境;NTFS文件環(huán)境生成部件,用于基于應(yīng)用程序建立NTFS文件訪問環(huán)境;文件系統(tǒng)環(huán)境生成部件,用于基于應(yīng)用程序建立文件操作環(huán)境。根據(jù)本發(fā)明的另一方面,提供一種在DOS下訪問NTFS文件系統(tǒng)的方法,該方法包括(a)提供一個(gè)磁盤訪問環(huán)境生成部件,用于基于應(yīng)用程序建立能夠進(jìn)行磁盤訪問的環(huán)境;(b)提供一個(gè)分區(qū)訪問環(huán)境生成部件,用于基于應(yīng)用程序建立能夠進(jìn)行分區(qū)訪問的環(huán)境;(c)提供一個(gè)NTFS文件環(huán)境生成部件,用于基于應(yīng)用程序建立能夠進(jìn)行NTFS文件訪問的環(huán)境;(d)提供一個(gè)文件系統(tǒng)環(huán)境生成部件,用于基于應(yīng)用程序建立能夠?qū)ξ募僮鞯沫h(huán)境;(e)查找文件,所述文件系統(tǒng)環(huán)境生成部件將調(diào)用者傳入的文件名轉(zhuǎn)成相應(yīng)文件環(huán)境的全路徑名,然后查找該文件,如果找到該文件,將該文件的一些數(shù)據(jù)填入一個(gè)數(shù)據(jù)結(jié)構(gòu),并將該結(jié)構(gòu)對(duì)應(yīng)的句柄返回給用戶;(f)讀寫文件,調(diào)用者提供文件句柄,將句柄信息提供給相應(yīng)的NTFS文件環(huán)境生成部件,NTFS文件環(huán)境生成部件將信息傳給分區(qū)訪問環(huán)境生成部件,分區(qū)訪問環(huán)境生成部件將NTFS文件系統(tǒng)生成部件傳送的信息進(jìn)行處理之后傳給磁盤訪問環(huán)境生成部件,磁盤訪問環(huán)境生成部件將處理后的信息以及其它相關(guān)信息發(fā)給磁盤,完成讀寫功能。圖1示出了本發(fā)明的在DOS下對(duì)NTFS文件系統(tǒng)進(jìn)行訪問的計(jì)算機(jī)系統(tǒng)的結(jié)構(gòu)框圖;圖2示出了訪問NTFS文件系統(tǒng)的工作流程圖。具體實(shí)施例方式我們要處理的NTFS文件系統(tǒng)是一種磁盤文件系統(tǒng)。磁盤分為面(或者是磁頭),每面又分為很多道,每道有若干扇區(qū)組成,每個(gè)扇區(qū)的大小是固定的,一般為512字節(jié)。整個(gè)磁盤又分為若干個(gè)區(qū),稱為分區(qū),每個(gè)區(qū)對(duì)應(yīng)一個(gè)獨(dú)立的文件系統(tǒng),對(duì)于DOS或WINDOWS操作系統(tǒng)而言就一個(gè)磁盤號(hào),如C、D、E等。NTFS文件系統(tǒng)也是磁盤上的一個(gè)分區(qū),對(duì)于NTFS文件系統(tǒng)而言,它不涉及磁盤的這種立體結(jié)構(gòu),對(duì)它而言,它所在的磁盤分區(qū)是由一系列的單元構(gòu)成的,這些單元線性排列。也就說它看到盤是一個(gè)線性的存儲(chǔ)空間。NTFS文件系統(tǒng)主要由以下幾部分組成一、引導(dǎo)區(qū)。引導(dǎo)區(qū)存放著有關(guān)磁盤結(jié)構(gòu)、分區(qū)結(jié)構(gòu)、分區(qū)大小的信息和WINDOWS系統(tǒng)引導(dǎo)代碼。二、MFT(masterfiletable,主文件表)表。MTF表是NTFS的基本結(jié)構(gòu),整個(gè)分區(qū)的每一部分,包括MFT表本身也是該表中的一個(gè)表項(xiàng),前16個(gè)表項(xiàng)是NTFS文件系統(tǒng)自用的。三、屬性表。屬性表包括NTFS文件系統(tǒng)中文件的各種屬性定義,包括NTFS系統(tǒng)已經(jīng)定義的和用戶自己定義的。四、分配表。NTFS文件系統(tǒng)將整個(gè)磁盤分區(qū)劃成大小固定的存儲(chǔ)分配單元,稱為簇,每一個(gè)簇有對(duì)應(yīng)的標(biāo)識(shí),表明該簇是否被占用,即分配表。五、根目錄。為了便于用戶管理,NTFS文件系統(tǒng)的文件組織結(jié)構(gòu)也是一個(gè)樹狀結(jié)構(gòu),起始位置位為根,稱為根目錄,根目錄可以存文件,也可以存一個(gè)目錄,稱為子目錄,子目錄中可以存文件,也可以存下一級(jí)目錄。本發(fā)明就是根據(jù)上述NTFS文件系統(tǒng)結(jié)構(gòu)建立起來的,但它與傳統(tǒng)的方法有著本質(zhì)的區(qū)別,就是,傳統(tǒng)的方法是將文件系統(tǒng)的這種解釋、處理過程集成到操作系統(tǒng)中,寫成對(duì)應(yīng)操作系統(tǒng)的驅(qū)動(dòng)程序,它處處受限于操作的環(huán)境,無法滿足應(yīng)用的需要。本發(fā)明的這種“環(huán)境”不依賴于操作系統(tǒng),因此完全不受操作系統(tǒng)的限制,只是根據(jù)應(yīng)用程序的需要而工作,能夠完全滿足應(yīng)用的需要。圖1是本發(fā)明的在DOS下針對(duì)NTFS文件系統(tǒng)進(jìn)行訪問的計(jì)算機(jī)系統(tǒng)的結(jié)構(gòu)框圖,該計(jì)算機(jī)系統(tǒng)基于應(yīng)用程序訪問NTFS文件系統(tǒng),而非靠DOS驅(qū)動(dòng)形式訪問,包括建立磁盤訪問環(huán)境部件,支持8G以上硬盤的扇區(qū)訪問;建立分區(qū)訪問環(huán)境部件,每一個(gè)分區(qū)是獨(dú)立的,所有針對(duì)該分區(qū)的訪問不會(huì)越界到其它分區(qū)上;建立NTFS文件環(huán)境部件,提供單個(gè)文件的訪問;建立文件系統(tǒng)環(huán)境部件,為應(yīng)用程序提供NTFS分區(qū)文件的查找、打開、讀寫等訪問環(huán)境。應(yīng)用程序訪問FAT分區(qū)文件通過DOS進(jìn)行。下面將詳細(xì)描述每個(gè)部件的工作過程磁盤訪問環(huán)境建立部件此部件首先檢測磁盤的類型和扇區(qū)的訪問方法,例如通過傳統(tǒng)的INT13調(diào)用只能訪問8G以下的磁盤扇區(qū),它要求給它傳遞磁盤號(hào)、磁頭號(hào)、磁道號(hào)、扇區(qū)號(hào)、扇區(qū)數(shù)量等。對(duì)于INT13X調(diào)用,它要求給它傳遞磁盤號(hào)、起始磁盤號(hào)、扇區(qū)數(shù)量等,它可以訪問2T大小的硬盤(如果扇區(qū)大小為512字節(jié)的話)。以上兩方法都要求提供一個(gè)16位的段偏移格式的緩沖區(qū)指針。還有其它訪問方法,它們要求傳遞的參數(shù)也不相同。這一步就是建立對(duì)調(diào)用者來說是統(tǒng)一的磁盤訪問方法,我們提供線性的訪問方法,要求調(diào)用者傳遞磁盤號(hào)、起始扇區(qū)號(hào)、扇區(qū)數(shù)量等信息,對(duì)于緩沖區(qū)指針,要求傳遞一個(gè)線性的32位地址,因?yàn)閼?yīng)用程序是在32位線性地址環(huán)境下運(yùn)行。它個(gè)環(huán)境會(huì)將調(diào)用者的請(qǐng)求根據(jù)磁盤的類型,將調(diào)用者的請(qǐng)求參數(shù)做一定的轉(zhuǎn)換,并調(diào)用相應(yīng)的功能,完成扇區(qū)訪問。同時(shí),這個(gè)環(huán)境中還利用應(yīng)用環(huán)境中的內(nèi)存,做磁盤讀寫緩沖,以加速磁盤訪問的速度。分區(qū)訪問環(huán)境建立部件磁盤上已經(jīng)被用戶分成很多區(qū)(也可能只有一個(gè)分區(qū)),一個(gè)NTFS文件系統(tǒng)也是磁盤上的一個(gè)分區(qū),并且從NTFS文件系統(tǒng)的角度看,磁盤分區(qū)是一個(gè)線性空間,這個(gè)環(huán)境的作用就是遍歷磁盤上的所有分區(qū),找到NTFS分區(qū),并記錄下每個(gè)NTFS分區(qū)在磁盤上的位置,為每個(gè)分區(qū)建立一個(gè)獨(dú)立的結(jié)構(gòu),保證對(duì)某個(gè)分區(qū)的訪問不會(huì)到其它分區(qū)上,即使是調(diào)用者發(fā)出了錯(cuò)誤的指示。對(duì)于磁盤文件系統(tǒng),磁盤的第一個(gè)扇區(qū)是主分區(qū)表,它有四個(gè)表項(xiàng),四個(gè)表項(xiàng)可以指示不同的分區(qū)類型,也就是不同的文件系統(tǒng)類型,也可以是指向另一個(gè)擴(kuò)展的分區(qū)表。擴(kuò)展的分區(qū)表也有四個(gè)表項(xiàng),它的作用與主要區(qū)表類似。每個(gè)分區(qū)表項(xiàng)有16個(gè)字節(jié)組成,包括分區(qū)的起止位置、大小和類型信息。其中類型信息為一個(gè)字節(jié),它的低6位表示文件系統(tǒng)類型,07表示是NTFS分區(qū)。最高位(第7位)表示是否在MIRROR組或STRIP組中,第6位表示是否有錯(cuò),這些都是該步必須考慮的問題。分區(qū)訪問環(huán)境還提供對(duì)于引導(dǎo)區(qū)、MFT表、分配表、屬性表、目錄區(qū)等的訪問,提供對(duì)MFT表中某個(gè)文件的訪問,對(duì)文件進(jìn)行訪問時(shí),要求調(diào)用者提供讀、寫命令、起始位置、數(shù)據(jù)長度、數(shù)據(jù)緩沖區(qū)地址等。NTFS文件環(huán)境建立部件此部件提供單個(gè)文件的訪問、查找,每一個(gè)分區(qū)是一個(gè)獨(dú)立的文件環(huán)境,它是要求調(diào)用者提供完整的路徑名,如ABCD\EFGH,這是要求對(duì)根目錄下的ABCD目錄下的EFGH文件進(jìn)行訪問,而且這一步要求用戶傳遞的文件名是ANSI格式的,而非UNICODE格式的,它的長度只受用戶緩沖區(qū)大小的限制。NTFS文件環(huán)境會(huì)將用戶傳來的文件名進(jìn)行路徑分解,從根目錄一步一步調(diào)用分區(qū)訪問環(huán)境,找到ABCD目錄,然后再調(diào)用分區(qū)訪問環(huán)境,在ABCD目錄中找到EFGH文件。在根目錄中查找文件的過程如下一、通過MFT表讀取根目錄;二、在根目錄中找ABCD目錄項(xiàng),記下它的MTF表項(xiàng)索引;三、根據(jù)MTF表索引讀取ABCD目錄;四、ABCD目錄中找EFGH目錄項(xiàng);五、根據(jù)目錄項(xiàng)中的MTF表索引,訪問EFGH文件。以上每一步都是通過分區(qū)訪問環(huán)境提供的功能完成的。由于目錄中的文件名是UNICODE編碼的,所以在這一步會(huì)調(diào)用UNICODE到ANSI代碼的轉(zhuǎn)換函數(shù),這個(gè)函數(shù)是由應(yīng)用程序提供的,這樣,應(yīng)用程序想支持哪一種言語,就提供相語言的UNICODE到ANSI轉(zhuǎn)換的函數(shù)即可。文件系統(tǒng)環(huán)境建立部件此部件提供文件的查找、打開、讀寫、目錄操作等訪問環(huán)境。文件系統(tǒng)的主要操作包括查找文件、打開文件、讀文件、寫文件、找目錄、進(jìn)入目錄、在目錄中找文件、訪問目錄中的文件等操作,這是根據(jù)應(yīng)用程序的要求確定的。對(duì)于查找文件和打開文件,都會(huì)產(chǎn)生另一個(gè)問題,就是找開文件也好,查找文件也好,完成后都進(jìn)行后續(xù)操作,需要向調(diào)用者提供一個(gè)文件的唯一標(biāo)識(shí),稱為句柄,以后就可以使用句柄進(jìn)行讀、寫、關(guān)閉、找下一個(gè)等操作。一個(gè)句柄對(duì)應(yīng)一個(gè)數(shù)據(jù)結(jié)構(gòu),該結(jié)構(gòu)包括文件的文件環(huán)境標(biāo)識(shí)、全文件名、MFT記錄索引號(hào),文件當(dāng)前的指針,文件在大小,文件的屬性等信息。這是各種文件訪問函數(shù)必須的功能,也就是應(yīng)用程序必須的功能,必須提供。比如,調(diào)用者要查找文件”H\ABCD\*.*”,H是邏輯盤號(hào),也是文件環(huán)境的標(biāo)識(shí),根據(jù)此標(biāo)識(shí)找到相應(yīng)的文件環(huán)境,然后調(diào)用文件訪問環(huán)境,查找該文件環(huán)境上的ABCD\*.*文件,如果找到,向調(diào)用者返回一個(gè)句柄,并將找到的文件名返回給調(diào)用者。如果要打開文件”H\ABCD\EFGH”,先分析H盤所對(duì)應(yīng)的文件訪問環(huán)境,調(diào)用該環(huán)境,查找文件”ABCD\EFGH”,若找到該文件,將有數(shù)據(jù)存入一句柄對(duì)應(yīng)的數(shù)據(jù)結(jié)構(gòu)中,將句丙返回給調(diào)用者。在調(diào)用者要求打開文件時(shí),調(diào)用者會(huì)傳一個(gè)文件名,文件系統(tǒng)環(huán)境將用戶傳來的文件名轉(zhuǎn)換成完成的路徑名后,傳給文件環(huán)境,請(qǐng)求檢查文件是否存在,如果不存在,向調(diào)用者返回錯(cuò)誤,也就是一個(gè)INVALID_HANDLE_VALUE,如果文件存在,則返回一個(gè)可用句柄,如果可用句柄用盡,也返回INVALID_HANDLE_VALUE,實(shí)際上在本實(shí)例是不可能的,因?yàn)閼?yīng)用程序需要的最大句柄數(shù)是已知的。而且本實(shí)例未提供共享檢測,因?yàn)閼?yīng)用程序不需要做這一步工作。這體現(xiàn)出了本發(fā)明的優(yōu)點(diǎn)。圖2是訪問NTFS文件系統(tǒng)的工作流程圖,步驟如下初始化磁盤扇區(qū)訪問;初始化分區(qū)訪問環(huán)境;初始化NTFS文件訪問環(huán)境;初始化NTFS文件系統(tǒng)環(huán)境。在以上各環(huán)境建立之后,接著進(jìn)行文件的查找和讀寫。打開文件文件系統(tǒng)環(huán)境將調(diào)用者傳入的文件名轉(zhuǎn)成相應(yīng)文件環(huán)境的全路徑名,然后調(diào)用文件相應(yīng)的文件環(huán)境,查找該文件,如果找到該文件,則將該文件的一些數(shù)據(jù)填入一個(gè)數(shù)據(jù)結(jié)構(gòu)中,并將該結(jié)構(gòu)對(duì)應(yīng)的句柄返回給用戶。讀寫文件文件的讀和寫基本相同,讀寫文件時(shí),調(diào)用者要提供文件句柄,通過句柄,知道文件所在的文件環(huán)境、讀寫命令、起始位置、讀寫長度、數(shù)據(jù)緩沖地址等,將這些信息傳給相應(yīng)的文件環(huán)境,文件環(huán)境將這些信息傳給分區(qū)訪問環(huán)境,分區(qū)訪問環(huán)境將文件的起始位置轉(zhuǎn)換成對(duì)應(yīng)的簇號(hào),將簇號(hào)轉(zhuǎn)成起始扇區(qū)號(hào),將讀寫長度轉(zhuǎn)換成扇區(qū)數(shù),將起始扇區(qū)號(hào)、扇區(qū)數(shù)、磁盤號(hào)、數(shù)據(jù)緩沖區(qū)地址傳給磁盤訪問環(huán)境,磁盤訪問環(huán)境最終將讀寫命令、起始扇區(qū)號(hào)、扇區(qū)數(shù)、數(shù)據(jù)緩沖區(qū)地址發(fā)給磁盤,完成讀寫功能。在以上各步中,都可以根據(jù)應(yīng)用程序的特點(diǎn),做優(yōu)化。如比查找文件,對(duì)于該實(shí)例,查找文件后的第一個(gè)運(yùn)作就是打開該文件,因此可以在找到該文件的同時(shí),就將打開文件所需的數(shù)據(jù)記錄下來,打開文件時(shí)就非常節(jié)省時(shí)間。本實(shí)例中所有緩沖區(qū)包括句柄對(duì)應(yīng)的數(shù)據(jù)結(jié)構(gòu)不到300K,NTFS文件的結(jié)構(gòu)遠(yuǎn)遠(yuǎn)比FAT結(jié)構(gòu)復(fù)雜,文件訪問的速度比FAT有2M緩沖區(qū)的情況還快。本發(fā)明不但適用于NTFS文件系統(tǒng),也適用于其它文件系統(tǒng),例如FAT文件系統(tǒng),盡管DOS支持FAT文件系統(tǒng),但它支持的路徑的長度不能超過64字節(jié),它不支持長文件名,它不支持UNICODE。第一點(diǎn)限制是致命的,在WINDOWS下路徑可以超過64字節(jié),在DOS下如果依賴DOS提供的功能,這些文件是無法訪問的。利用本發(fā)明完全可以解決上述問題。權(quán)利要求1.一種在DOS下訪問NTFS文件系統(tǒng)的計(jì)算機(jī)系統(tǒng),包括磁盤訪問環(huán)境生成部件,用于基于應(yīng)用程序建立磁盤扇區(qū)訪問環(huán)境;分區(qū)訪問環(huán)境生成部件,用于基于應(yīng)用程序建立分區(qū)訪問環(huán)境;NTFS文件環(huán)境生成部件,用于基于應(yīng)用程序建立NTFS文件訪問環(huán)境;文件系統(tǒng)環(huán)境生成部件,用于基于應(yīng)用程序建立文件操作環(huán)境。2.如權(quán)利要求1所述的計(jì)算機(jī)系統(tǒng),其中,所述磁盤訪問環(huán)境生成部件包括檢測磁盤類型的單元;對(duì)應(yīng)于應(yīng)用程序的線性32位地址的緩沖區(qū)指針單元;請(qǐng)求調(diào)用者傳遞參數(shù)的單元;轉(zhuǎn)換單元,根據(jù)磁盤的類型將參數(shù)進(jìn)行轉(zhuǎn)換,并調(diào)用相應(yīng)功能,完成扇區(qū)訪問;加速磁盤訪問速度的單元,利用應(yīng)用環(huán)境下的內(nèi)存,進(jìn)行磁盤讀寫緩沖,以加速磁盤訪問速度。3.如權(quán)利要求2所述的計(jì)算機(jī)系統(tǒng),其中,所述參數(shù)包括讀寫命令,磁盤號(hào),起始扇區(qū)號(hào),扇區(qū)數(shù)量,數(shù)據(jù)緩沖區(qū)地址。4.如權(quán)利要求1所述的計(jì)算機(jī)系統(tǒng),其中,所述分區(qū)訪問環(huán)境生成部件包括分區(qū)獨(dú)立結(jié)構(gòu)建立單元,用于查找磁盤上的所有分區(qū),找到NTFS分區(qū),記錄下每個(gè)NTFS分區(qū)在磁盤上的位置,為每個(gè)分區(qū)建立一個(gè)獨(dú)立的結(jié)構(gòu);訪問單元,提供對(duì)磁盤引導(dǎo)區(qū)、MFT表、分配表、屬性表、目錄區(qū)的訪問,提供對(duì)MFT表中文件的訪問;請(qǐng)求調(diào)用者單元,當(dāng)對(duì)文件進(jìn)行訪問時(shí),請(qǐng)求調(diào)用者提供讀、寫命令、起始位置、數(shù)據(jù)長度、數(shù)據(jù)緩沖區(qū)地址;信息處理單元,將文件的起始位置轉(zhuǎn)換成對(duì)應(yīng)的簇號(hào),將簇號(hào)轉(zhuǎn)換成起始扇區(qū)號(hào),將數(shù)據(jù)長度轉(zhuǎn)換成扇區(qū)數(shù)。5.如權(quán)利要求1所述的計(jì)算機(jī)系統(tǒng),其中,所述NTFS文件環(huán)境生成部件包括路徑請(qǐng)求單元,要求調(diào)用者提供單個(gè)文件完整的路徑名,以便對(duì)該路徑名下的文件進(jìn)行訪問;文件查找單元,從根目錄調(diào)用分區(qū)訪問環(huán)境,找到所述文件。6.如權(quán)利要求5所述的計(jì)算機(jī)系統(tǒng),其中,所述文件的文件名是ANSI格式的。7.如權(quán)利要求1所述的計(jì)算機(jī)系統(tǒng),所述文件系統(tǒng)環(huán)境提供文件的查找、打開、讀寫、目錄操作訪問。8.如權(quán)利要求7所述的計(jì)算機(jī)系統(tǒng),其中,所述文件系統(tǒng)環(huán)境生成部件包括句柄產(chǎn)生單元,根據(jù)應(yīng)用程序的要求,完成相應(yīng)的文件操作,向調(diào)用者提供一個(gè)句柄,該句柄是所述文件的唯一標(biāo)識(shí)。9.如權(quán)利要求8所述的計(jì)算機(jī)系統(tǒng),其中,所述句柄對(duì)應(yīng)一個(gè)數(shù)據(jù)結(jié)構(gòu),該結(jié)構(gòu)包括文件的文件環(huán)境標(biāo)識(shí)、全文件名、MFT記錄索引號(hào)、文件當(dāng)前的指針、文件的大小、文件的屬性。10.一種在DOS下訪問NTFS文件系統(tǒng)的方法,該方法包括(a)提供一個(gè)磁盤訪問環(huán)境生成部件,用于基于應(yīng)用程序建立能夠進(jìn)行磁盤訪問的環(huán)境;(b)提供一個(gè)分區(qū)訪問環(huán)境生成部件,用于基于應(yīng)用程序建立能夠進(jìn)行分區(qū)訪問的環(huán)境;(c)提供一個(gè)NTFS文件環(huán)境生成部件,用于基于應(yīng)用程序建立能夠進(jìn)行NTFS文件訪問的環(huán)境;(d)提供一個(gè)文件系統(tǒng)環(huán)境生成部件,用于基于應(yīng)用程序建立能夠?qū)ξ募僮鞯沫h(huán)境;(e)打開文件,所述文件系統(tǒng)環(huán)境生成部件將調(diào)用者傳入的文件名轉(zhuǎn)成相應(yīng)文件環(huán)境的全路徑名,然后查找該文件,如果找到該文件,將該文件的一些數(shù)據(jù)填入一個(gè)數(shù)據(jù)結(jié)構(gòu),并將該結(jié)構(gòu)對(duì)應(yīng)的句柄返回給用戶;(f)讀寫文件,調(diào)用者提供文件句柄,將句柄信息提供給相應(yīng)的NTFS文件環(huán)境生成部件,NTFS文件環(huán)境生成部件將信息傳給分區(qū)訪問環(huán)境生成部件,分區(qū)訪問環(huán)境生成部件將NTFS文件系統(tǒng)生成部件傳送的信息進(jìn)行處理之后傳給磁盤訪問環(huán)境生成部件,磁盤訪問環(huán)境生成部件將處理后的信息以及其它相關(guān)信息發(fā)給磁盤,完成讀寫功能。11.如權(quán)利要求10所述的方法,在所述(f)步中,在分區(qū)訪問環(huán)境生成部件中的信息處理包括將文件的起始位置轉(zhuǎn)換成對(duì)應(yīng)的簇號(hào);將簇號(hào)轉(zhuǎn)換成起始扇區(qū)號(hào);將數(shù)據(jù)長度轉(zhuǎn)換成扇區(qū)數(shù)。12.如權(quán)利要求10所述的方法,其中,在所述(f)步中,所述相關(guān)信息包括讀寫命令、磁盤號(hào)、數(shù)據(jù)緩沖區(qū)地址。全文摘要一種在DOS下訪問NTFS文件系統(tǒng)的計(jì)算機(jī)系統(tǒng)和方法,包括(a)提供磁盤訪問環(huán)境生成部件,基于應(yīng)用程序建立磁盤訪問環(huán)境;(b)提供分區(qū)訪問環(huán)境生成部件,基于應(yīng)用程序建立分區(qū)訪問環(huán)境;(c)提供NTFS文件環(huán)境生成部件,基于應(yīng)用程序建立NTFS文件訪問環(huán)境;(d)提供文件系統(tǒng)環(huán)境生成部件,基于應(yīng)用程序建立文件操作環(huán)境;(e)查找文件,文件系統(tǒng)環(huán)境生成部件將調(diào)用者傳入的文件名轉(zhuǎn)成相應(yīng)文件環(huán)境的全路徑名,然后查找該文件,如找到將對(duì)應(yīng)句柄返給用戶;(f)讀寫文件,調(diào)用者提供文件句柄,句柄信息提供給NTFS文件環(huán)境生成部件,該部件將信息傳給分區(qū)訪問環(huán)境生成部件,分區(qū)訪問環(huán)境生成部件將信息處理之后傳給磁盤訪問環(huán)境生成部件,磁盤訪問環(huán)境生成部件將處理后的信息及其它相關(guān)信息發(fā)給磁盤,完成讀寫功能。文檔編號(hào)G06F12/00GK1409223SQ0114215公開日2003年4月9日申請(qǐng)日期2001年9月14日優(yōu)先權(quán)日2001年9月14日發(fā)明者劉鋒申請(qǐng)人:北京瑞星科技股份有限公司