在 Win32 的資訊: 直接磁碟存取

重要:本文是以 Microsoft 機器翻譯軟體翻譯而成,而非使用人工翻譯而成。Microsoft 同時提供使用者人工翻譯及機器翻譯兩個版本的文章,讓使用者可以依其使用語言使用知識庫中的所有文章。但是,機器翻譯的文章可能不盡完美。這些文章中也可能出現拼字、語意或文法上的錯誤,就像外國人在使用本國語言時可能發生的錯誤。Microsoft 不為內容的翻譯錯誤或客戶對該內容的使用所產生的任何錯誤或損害負責。Microsoft也同時將不斷地就機器翻譯軟體進行更新。

按一下這裡查看此文章的英文版本:100027
結論
若要在 Win32 架構的應用程式中開啟供直接磁碟存取 (未經處理的 I/O) 的實體硬碟機,使用表單的裝置名稱
\\.\PhysicalDriveN
其中 N 是 0、 1、 2 及等等代表每個實體磁碟機在系統中。

若要開啟 [邏輯磁碟機是表單的直接存取
\\.\X:
其中 X: 是硬碟機的磁碟分割代號、 軟碟機或 CD-ROM 光碟機。
其他相關資訊
您可以開啟實體或邏輯磁碟機,這些裝置名稱中使用 CreateFile() 應用程式發展介面 (API) 所提供您必須擁有適當的存取權限,磁碟機 (也就是您必須是系統管理員)。您必須使用 CreateFile() FILE_SHARE_READ 和 FILE_SHARE_WRITE 旗標來存取磁碟機。

開啟邏輯或實體磁碟機後然後您可以直接 I/O 對資料執行整個磁碟機上。當執行直接磁碟 I/O,您必須搜尋、 讀取,和寫入的裝置和磁區界限上的磁區大小的倍數。呼叫 DeviceIoControl() 使用 IOCTL_DISK_GET_DRIVE_GEOMETRY 取得每個磁區、 數目的磁區、 每個曲目,並等等等的磁區位元組,以便您可以計算您需要的緩衝區大小。

Win32 架構的應用程式無法開啟檔案,藉由使用內部的 Windows NT 物件名稱 ; 請注意,例如嘗試藉由開啟 [開啟 CD-ROM 光碟機
\Device\CdRom0
並不可行,因為這不是有效的 Win32 裝置名稱。應用程式可以使用 QueryDosDevice() API 來取得所有有效的 Win32 裝置名稱的清單,請參閱特定的 Win32 裝置名稱和內部的 Windows NT 物件名稱之間的對應。在足夠的權限層級執行的應用程式,才能定義、 重新定義,或刪除藉由呼叫 DefineDosDevice() API Win32 裝置對應情形。

警告:本文為自動翻譯

內容

文章識別碼:100027 - 最後檢閱時間:05/06/2003 18:12:21 - 修訂: 2.0

Microsoft Win32 Application Programming Interface

  • kbmt kbapi kbfileio kbinfo kbkernbase KB100027 KbMtzh
意見反應