在檔案系統和儲存堆疊,以限制直接磁碟存取與直接的磁碟區存取 Windows Vista 中以及在 Windows Server 2008 中的變更

文章翻譯 文章翻譯
文章編號: 942448 - 檢視此文章適用的產品。
全部展開 | 全部摺疊

在此頁中

簡介

本文將告訴您所做的檔案系統,並儲存堆疊來限制直接磁碟存取與直接的磁碟區存取 Windows Server 2008 中以及在 Windows Vista 中的變更。

其他相關資訊

背景

當程式開啟了獨佔檔案控制代碼時,程式會假設檔案的內容不能修改任何更多。不過,下列情況成立時,可以修改檔案的內容:
  • 另一個程式開啟檔案控制碼基礎的磁碟區,或其下的磁碟。
  • 程式檔案所在的位置會變更。
當程式將直接寫入沒有磁碟區的第一個取得獨佔存取的檔案系統已裝載的磁碟區時,可能就會發生損毀或系統不穩定。這是因為寫入磁碟區可能擦撞檔案系統寫入。這類衝突發生,則磁碟區的內容,可能會遺留在不一致的狀態中。

若要減少此問題的效果,變更檔案系統,並儲存堆疊限制直接存取磁碟或磁碟區。

變更檔案系統,並儲存堆疊的詳細資料

  • 如果下列情況成立,檔案系統可以寫入磁碟區的控制代碼:
    • 條件 1: 正在寫入的磁扇區均開機磁扇區。

      附註這種情況存在支援如防毒程式、 安裝程式及其他程式必須更新系統磁碟區的啟始程式碼的程式。系統磁碟區無法被鎖定。
    • 條件 2: 正在寫入位於檔案系統空間之外的磁區。

      附註結尾的檔案系統空間和磁碟區空間的結尾之間區域不是在檔案系統的控制下。因此,就沒有理由需要,將它寫入鎖定磁碟區。
    • 條件 3: 磁碟區已被隱含地鎖定要求獨佔的寫入權限。
    • 條件 4: 磁碟區已經被要求鎖定要求或 unmount 要求明確地鎖定。
    • 條件 5: 寫入要求具有 SL_FORCE_DIRECT_WRITE 旗標,指出 [條件二] 必須被略過。

      附註沒有寫入至磁碟區的可用空間區域,而第一個鎖定磁碟區的檔案系統篩選器。如果要執行這項操作,有檔案系統篩選器,檔案系統篩選器可以寫入要求,它告知讓發生寫入檔案系統上設定旗標。這個旗標只能從核心模式內設定。
  • 如果未裝載磁碟區或磁碟區有沒有檔案系統,並不會套用變更檔案系統,並儲存堆疊。
  • UDFS 檔案系統和 FASTFAT 檔案系統限制檔案系統,並儲存堆疊所做的變更。這些變更受限於磁碟類型的媒體。

    附註大部分的 CD 掌握程式寫入直接到磁碟而不致鎖定磁碟區。某些 CD 掌握程式甚至會略過檔案系統層。在這些情況下這類程式直接寫入儲存體圖層。因為分頁檔只能裝載磁碟機上,就沒有理由套用光學磁碟機檔案系統,並儲存堆疊進行的變更。
  • 如果下列情況成立,存放裝置驅動程式可以寫入磁碟的控制代碼:
    • 條件 1: 正在寫入不做落磁碟區的磁區。

      附註程式會使用來儲存中繼資料磁碟區外的磁區。 磁碟分割表格也位於已超出磁碟區的磁區。因為這些磁區並不是所控制的任何檔案系統,就沒有理由?封鎖該磁扇區的存取。
    • 條件 2: 正在寫入落在明確地鎖定的掛上磁碟區的磁區。
    • 條件 3: 正在寫入落在未裝載的磁碟區的磁區或落在磁碟區中的有沒有檔案系統。
  • 變更檔案系統,並儲存堆疊將也會套用到磁碟區的同位檢查區塊中。
  • 變更檔案系統,並儲存堆疊會將套用至 32 位元系統中,並 64 位元的系統。
除了各種的 WriteFile API 中,有可能用來發出寫入的裝置 IO 控制要求的磁碟區或磁碟。變更檔案系統,並儲存堆疊將也會套用至裝置 IO 控制請求。裝置 IO 控制要求包括下列命令:
  • IOCTL_STORAGE_MANAGE_DATA_SET_ATTRIBUTES
  • IOCTL_SCSI_PASS_THROUGH
  • IOCTL_SCSI_PASS_THROUGH_DIRECT
  • scsiop_write6
  • SCSIOP_WRITE
  • SCSIOP_WRITE_VERIFY
  • SCSIOP_WRITE_SAME
  • SCSIOP_WRITE_LONG
  • SCSIOP_XDWRITE
  • SCSIOP_XPWRITE
  • SCSIOP_XDWRITE_READ
  • scsiop_write12
  • scsiop_write_verify12
  • scsiop_write16
  • scsiop_write_verify16
  • scsiop_write_same16
  • scsiop_write_long16
  • scsiop_write_xdwrite_extended16
  • SCSIOP_WRITE_COPY
  • SCSIOP_WRITE_COPY_COMPARE
下列群組的命令失敗,因為它們是過時:
  • IOCTL_ATA_PASS_THROUGH
  • IOCTL_ATA_PASS_THROUGH_DIRECT
  • IDE_COMMAND_WRITE
  • IDE_COMMAND_WRITE_DMA
  • IDE_COMMAND_WRITE_DMA_QUEUED
  • IDE_COMMAND_WRITE_MULTIPLE
  • IDE_COMMAND_WRITE_EXT
  • IDE_COMMAND_WRITE_DMA_EXT
  • IDE_COMMAND_WRITE_DMA_FUA_EXT
  • IDE_COMMAND_WRITE_DMA_QUEUED_EXT
  • IDE_COMMAND_WRITE_DMA_QUEUED_FUA_EXT
  • IDE_COMMAND_WRITE_MULTIPLE_EXT
  • IDE_COMMAND_WRITE_MULTIPLE_FUA_EXT
SCSI] 命令的 32 位元組寫入指令不會篩選因為 CDB 中有 16 個位元組。延伸的 xdwrite]、 [副本] 和 [副本比較命令會失敗。

ATA] 命令的 LBA 元查詢以判斷是否位移指定簡體中文的格式或 LBA 格式。因為系統無法取得真實幾何,以簡體中文格式傳送的所有要求會都失敗。這應該不是問題,因為所有現代磁碟預期位移是 LBA 格式。

程式相容性考量和緩和措施

變更檔案系統,並儲存堆疊可能會造成某些程式失敗。這類程式失敗,因為它們使用磁碟或磁碟區的直接存取。

程式相容性會影響會最小原因如下:
  • 它們寫入磁碟區之前,備份程式必須卸載磁碟區。否則,程式寫入將擦撞檔案系統寫入。這種衝突會導致損毀或系統不穩定。
  • 分割程式目標常駐在磁碟區區域外的磁扇區的磁碟分割表格。檔案系統不能控制這類的磁區。因為啟用這些磁區的存取資料分割的程式不會受到影響。
  • 修復程式將最有可能在檔案系統無法裝載的磁碟區上執行。因為啟用 RAW 磁碟區的存取這類修復程式不會受到影響。
  • 區塊層級加密程式通常會有下的磁碟分割管理員驅動程式是在磁碟堆疊都位於一個篩選器驅動程式。篩選器驅動程式會篩選輸入輸出 (IO) 的磁碟分割管理員驅動程式問題。因此,變更檔案系統,並儲存堆疊並不會影響區塊層級加密程式。 如果篩選器驅動程式存放在磁碟區堆疊,篩選器驅動程式將會是下方的檔案系統。 因此,變更檔案系統,並儲存堆疊並不會影響區塊層級加密程式。
  • 因為 UDFS 檔案系統和 FAT32 檔案系統並不會執行檢查檔案系統已裝載光學磁碟機上時,CD 掌握程式不會受到影響。 不過,CD 掌握程式可能會受到影響,在下列案例:
    • 程式鎖定它的檔案。
    • 程式查詢檔的範圍。
    • 程式會使用磁碟區的控制代碼來直接寫入檔案的範圍。
    不過,我們做不鼓勵這種情況下因為這種情況會造成檔案中繼資料,以進行同步。當檔案中繼資料同步時可能會發生檔案損毀。

屬性

文章編號: 942448 - 上次校閱: 2008年1月31日 - 版次: 2.1
這篇文章中的資訊適用於:
  • Windows Vista 旗艦版
  • Windows Vista 商用進階版
  • Windows Vista 商用入門版
  • Windows Vista 家用進階版
  • Windows Vista 家用入門版
  • Windows Vista Starter
  • Windows Server 2008 Datacenter without Hyper-V
  • Windows Server 2008 Enterprise without Hyper-V
  • Windows Server 2008 for Itanium-Based Systems
  • Windows Server 2008 Standard without Hyper-V
  • Windows Server 2008 Datacenter
  • Windows Server 2008 Enterprise
  • Windows Server 2008 Standard
  • Windows Web Server 2008
關鍵字:?
kbmt kbexpertiseadvanced kbhowto kbinfo KB942448 KbMtzh
機器翻譯
重要:本文是以 Microsoft 機器翻譯軟體翻譯而成,而非使用人工翻譯而成。Microsoft 同時提供使用者人工翻譯及機器翻譯兩個版本的文章,讓使用者可以依其使用語言使用知識庫中的所有文章。但是,機器翻譯的文章可能不盡完美。這些文章中也可能出現拼字、語意或文法上的錯誤,就像外國人在使用本國語言時可能發生的錯誤。Microsoft 不為內容的翻譯錯誤或客戶對該內容的使用所產生的任何錯誤或損害負責。Microsoft也同時將不斷地就機器翻譯軟體進行更新。
按一下這裡查看此文章的英文版本:942448
Microsoft及(或)其供應商不就任何在本伺服器上發表的文字資料及其相關圖表資訊的恰當性作任何承諾。所有文字資料及其相關圖表均以「現狀」供應,不負任何擔保責任。Microsoft及(或)其供應商謹此聲明,不負任何對與此資訊有關之擔保責任,包括關於適售性、適用於某一特定用途、權利或不侵權的明示或默示擔保責任。Microsoft及(或)其供應商無論如何不對因或與使用本伺服器上資訊或與資訊的實行有關而引起的契約、過失或其他侵權行為之訴訟中的特別的、間接的、衍生性的損害或任何因使用而喪失所導致的之損害、資料或利潤負任何責任。

提供意見

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com