如何判斷磁碟機是否為 RAM 磁碟機

文章翻譯 文章翻譯
文章編號: 113418 - 檢視此文章適用的產品。
本文已封存。本文係以「現狀」提供且不會再更新。
全部展開 | 全部摺疊

在此頁中

結論

沒有 C 語言函式或 C 執行階段函式,以判斷磁碟機為 RAM 磁碟機。GetDriveType() API 可能由 Win32 應用程式從作業系統取得特定的磁碟機的型別呼叫。詳細資訊可能會找到關於 GetDriveType() Win32 SDK 參考 》 的 [Visual C++ 32 位元版線上叢書 》 中。

MS-DOS 和 Win16 應用程式的雖然有沒有明確的方法可用,幾個可能的方法將以判斷給定的磁碟機是 「 可能 」 RAM 磁碟機存在。本文的其餘部分將簡短討論四種方法來檢查 RAM 磁碟機。請注意所有方法的主機系統的每一部磁碟機必須簽入。

其他相關資訊

方法 1

請檢查磁碟機的磁碟區標籤。這個方法很可能最常見的。Microsoft RAMDRIVE.SYS 使用 「 MS RAMDRIVE 」 的磁碟區的標籤。 不過,這不保證是磁碟區標籤,並且可能不會從其他公司的 RAM 磁碟機上之磁碟區標籤。使用者也可能會變更這使用 [標籤] 指令。

方法 2

呼叫是泛型的 I/O 控制函式,為區塊裝置的插斷 21 h 函數 44 h subfunction 0Dh。大部分的裝置都支援這個函式。不過,RAMDRIVE.SYS 目前不支援它。這個缺乏支援可用來識別 RAM 磁碟機。載入 CX 暫存器,以取得磁碟機裝置參數 0860h ; 如果函式失敗,離開攜帶旗標集磁碟機可能 RAM 磁碟機。

方法 3

請檢查磁碟機有多少 FAT 表 ; 如果它只 1,可能 RAM 磁碟機。因為 RAMDRIVE.SYS 不支援 [IOCTL 函式,判斷 FAT 表數目唯一的方法是使用 INT 25 絕對磁碟讀取。記下,這個函式已經取代,並不支援在 Windows 下警告。 更多的資訊和範例,說明如何使用 INT 25,按一下 [下面的文件編號,檢視 「 Microsoft 知識庫 」 中的發行項]:
102870讀取磁碟機的開機磁區

方法 4

最後,呼叫插斷 21 h 運作 44 h subfunction 來檢查磁碟機是否遠端 9 h。如果 DX 中傳回值是 0x0800,11 設定有只位元磁碟機可能是將 RAM 磁碟機。這是由推算已知為 RAM 磁碟機。因為 6 和 7 位元都是純,它是已知的這個裝置不接受 IOCTL 函式像大部份的裝置。因為位元 12 清楚所以這不是網路磁碟機等等。

由於上述的方法,沒有任何會保證它最好使用這些方法的組合。先消除明顯,例如網路磁碟機、 本機硬碟、 CD-ROM 光碟機和等等。然後,嘗試判斷給定的磁碟機是 RAM 磁碟機。

屬性

文章編號: 113418 - 上次校閱: 2014年3月1日 - 版次: 4.1
這篇文章中的資訊適用於:
  • Microsoft Visual C++ 1.0 Professional Edition
  • Microsoft Visual C++ 1.5 Professional Edition
  • Microsoft Visual C++ 2.0 Professional Edition
  • Microsoft Visual C++ 2.1
  • Microsoft Visual C++ 4.0 Standard Edition
  • Microsoft Visual C++ 5.0 Enterprise Edition
  • Microsoft Visual C++ 6.0 Enterprise Edition
  • Microsoft Visual C++ 5.0 Professional Edition
  • Microsoft Visual C++ 6.0 Professional Edition
  • Microsoft Visual C++, 32-bit Learning Edition 6.0
  • Microsoft Visual C++ .NET 2002 Standard Edition
  • Microsoft Visual C++ .NET 2003 Standard Edition
關鍵字:?
kbnosurvey kbarchive kbmt kbhowtomaster kblangc KB113418 KbMtzh
機器翻譯
重要:本文是以 Microsoft 機器翻譯軟體翻譯而成,而非使用人工翻譯而成。Microsoft 同時提供使用者人工翻譯及機器翻譯兩個版本的文章,讓使用者可以依其使用語言使用知識庫中的所有文章。但是,機器翻譯的文章可能不盡完美。這些文章中也可能出現拼字、語意或文法上的錯誤,就像外國人在使用本國語言時可能發生的錯誤。Microsoft 不為內容的翻譯錯誤或客戶對該內容的使用所產生的任何錯誤或損害負責。Microsoft也同時將不斷地就機器翻譯軟體進行更新。
按一下這裡查看此文章的英文版本:113418
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