系統(tǒng)之家 - 系統(tǒng)光盤下載網(wǎng)站!

當前位置:系統(tǒng)之家 > 系統(tǒng)教程 > 淺析固定U盤盤符的原理

淺析固定U盤盤符的原理

時間:2014-07-16 17:35:00 作者:咕嚕嚕 來源:系統(tǒng)之家 1. 掃描二維碼隨時看資訊 2. 請使用手機瀏覽器訪問: https://m.xitongzhijia.net/xtjc/20140716/24068.html 手機查看 評論

  研究固定U盤盤符從哪里開始?從注冊表來研究是最好的。為什么要從注冊表來研究磁盤與盤符?很簡單,操作注冊表速度最快,這不同于使用工具軟件從低層進行查詢,其實PECMD的SHOW命令就是低層操作,操作復雜。其實注冊表記錄了一切,不再需要工具軟件去查找。

  一、都有什么類型的磁盤:

  這是首先要清楚的概念,分清了類別,我們才能去尋找相應的盤符。不用多說,按物理類別來分可分為磁性盤(如硬盤、軟盤、磁帶機),壓縮盤(CD/DVD),閃存盤(U盤),ZIP盤(基本淘汰)等;從接口分類可分為IDE\SATA\SCSI\USB等類型;WINDOWS分類為本地磁盤(也叫固定磁盤fixed),可移動磁盤(removable,如U盤,光盤,軟盤,ZIP盤等)兩大類。對于光盤,不管什么類型,什么接口,一律為CDROM/DVDROM,而本地磁盤,包括內(nèi)置硬盤,也包括USB移動硬盤或量產(chǎn)為USB_HDD的閃存盤,可移動盤,如我們買的U盤一般都是可移動類型。

  二、注冊表中哪個位置準確記錄了可擦寫磁盤的名稱、類型與數(shù)量?

  HKLM\SYSTEM\CurrentControlSet\Services\Disk\Enum

  這里的鍵名為0,1,2...即是磁盤在系統(tǒng)中的序號,COUNT名為磁盤總數(shù)。如我的系統(tǒng)有相應的值有IDE\,USBTOR\等,相應的還有SCSI\,即代表了類型為IDE的硬盤,SCSI盤(固定或可移動),USB盤(固定或可移動)。如果你去除了一個盤,那么,這里的鍵名馬上會減少一個,假設有3個磁盤,你去除了中間的1,那么原來的2值也不會變成1,因此,在選擇硬盤號時,要注意,雖然只有2個盤了,但也不是連續(xù)編號的。硬盤序號,是選擇其對應盤符的基礎。

  三、注冊表中哪個位置記錄了磁盤的裝入點mount point和盤符?

  HKLM\SYSTEM\MountedDevices

  這里的鍵名只有兩種,一種是以類似"\??\Volume{07c229a8-4b84-11de-8e8d-00e04c3e821b}"開頭的,{}中的部分即分區(qū)的ID,它是調整盤符的基礎,是不變的。另一種就是我們的盤符形式的了,如A: C:等。仔細觀察會發(fā)現(xiàn)每種鍵名的鍵值都會在另外一種鍵的鍵值中找,這個值是唯一的,具體內(nèi)容是什么,請看接下來的圖形及最后的總結。這個位置最重要,一切盤符與類型信息都在這里,接下來會詳細解讀。

  四、如何找到一個本地磁盤(或固定磁盤)所包含的分區(qū)與盤符?

  一句話,通過disk signature,可以翻譯為硬盤標記,這個東西是從WINNT 3.5開始WINDOWS為磁盤所建立的位于主啟動分區(qū)MBR中的唯一標記,一般沒有重復的。它是一個16進制4 bytes的數(shù)值。比如disk signature 為A8 E1 B9 D2,則我們可以在HKLM\SYSTEM\MountedDevices項里面找值為D2 B9 E1 A8開頭的項名為\DosDevices\后面的盤符,通過這個值,還可以得到這樣就得到其對應的開頭為\??\volume裝入點,在這項下disk signature是反序的。那么,我們?nèi)绾蔚玫絛isk signature呢?通過搜索A8E1B9D2,會找到這樣一個項:HKEY_LOCAL_MACHINE\HARDWARE\DESCRIPTION\System\MultifunctionAdapter\9\DiskController\0\DiskPeripheral\0(不同的電腦,上述項中紅色的數(shù)字可能不同),項下有一個名為Identifier的值為"00c72b95-A8E1B9D2-A",如果系統(tǒng)只有一塊硬盤的話,那么,可以肯定,這個A8E1B9D2就是disk signature。反過來,也就是說,只要我們找到這個值,就可以找到其盤符及裝入點。那么,如果有幾塊FIXED 盤,到底哪個signature對應哪塊盤呢?

  五、Disk signature與磁盤的對應:

  在正常的WINDOWS下面,這個問題好解決,在WinPE系統(tǒng)下就是不行。因此,WinPE系統(tǒng)下必須先得到disk signature或使用低層的diskpart命令,但一般的WinPE系統(tǒng)中都沒有為DISKPART安裝相應的服務。在WINDOWS下這個設備類別項HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\STORAGE\Volume,所有的連接過的固定磁盤的signature都記錄在這里而且不能刪除,舉例:這是一個子項,1&30a96598&0&SignatureA8E1B9D2Offset7E00LengthXXXXXXXX紅字部分是子signature,后面的Offset7E00是該磁盤的偏移值也是起始分區(qū)標志,LengthXXXXXXXX是指分區(qū)的大小,當然,這里我們不需要知道它。那么,到底如何確定signature所對應的磁盤號啊,盤符順序是根據(jù)如上volume項下的分區(qū)的offset值來確定,分區(qū)從前至后,offset值從小到大,因此,盤符分區(qū)offset值的順序,是決定盤符順序的依據(jù)。

  總結一下:WINDOWS下獲取一個固定磁盤盤符的方法:

  1、獲取磁盤signature

  在HKEY_LOCAL_MACHINE\HARDWARE\DESCRIPTION\System\MultifunctionAdapter\9\DiskController\0\DiskPeripheral\0(不同的電腦,上述項中紅色的數(shù)字可能不同),項下有一個名為Identifier的鍵,找到兩個"-"中間的部分即為disk signature值,如"00c72b95-A8E1B9D2-A"。

  注:signature也可以通過mfbfix軟件或windows自帶的diskpart獲得.

  2、根據(jù)signature找到對應的磁盤序號

  根據(jù)signature,找到這里HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\STORAGE\Volume\1&30a96598&0&SignatureA8E1B9D2Offset7E00LengthXXXXXXXX,根據(jù)offset值從小到大的順序來確定盤符的順序!

  3、根據(jù)signature獲取盤符

  將signature反序排列,在HKLM\SYSTEM\MountedDevices項里面找值為以反序排列數(shù)字開頭的項名為\DosDevices\后面的盤符和相應的裝入點。這里就有一個問題,假設一個盤有3個分區(qū),對應3個盤符,如何確定其盤符順序?請看-

  六、固定磁盤盤符的順序:

  根據(jù)磁盤分區(qū)的offset值從小到大排序,即可得到正確的盤符順序。在HKLM\SYSTEM\MountedDevices項下將offset值反序即可得到對應分區(qū)的ID值,同時也就獲得了該分區(qū)的盤符。說到這里固定磁盤的盤符獲得方法說完了,再說說如何獲得可移動磁盤的盤符吧。

發(fā)表評論

0

沒有更多評論了

評論就這些咯,讓大家也知道你的獨特見解

立即評論

以上留言僅代表用戶個人觀點,不代表系統(tǒng)之家立場

其他版本軟件

人氣教程排行

U盤系統(tǒng)推薦

官方交流群 軟件收錄