微软官方MSDN原版Win10系统下载

现在位置: 首页  > 系统教程  > U盘教程

浅析固定U盘盘符的原理

时间:2024-11-09 10:07:24   

大家好,今天Win10系统之家小编给大家分享「浅析固定U盘盘符的原理」的知识,如果能碰巧解决你现在面临的问题,记得收藏本站或分享给你的好友们哟~,现在开始吧!

外研u学教师app系列软件最新版本下载

  研究固定U盘盘符从哪里开始?从注册表来研究是最好的。为什么要从注册表来研究磁盘与盘符?很简单,操作注册表速度最快,这不同于使用工具软件从低层进行查询,其实PECMD的SHOW命令就是低层操作,操作复杂。其实注册表记录了一切,不再需要工具软件去查找。

  一、都有什么类型的磁盘:

  这是首先要清楚的概念,分清了类别,我们才能去寻找相应的盘符。不用多说,按物理类别来分可分为磁性盘(如硬盘、软盘、磁带机),压缩盘(CD/DVD),闪存盘(U盘),ZIP盘(基本淘汰)等;从接口分类可分为IDE\SATA\SCSI\USB等类型;WINDOWS分类为本地磁盘(也叫固定磁盘fixed),可移动磁盘(removable,如U盘,光盘,软盘,ZIP盘等)两大类。对于光盘,不管什么类型,什么接口,一律为CDROM/DVDROM,而本地磁盘,包括内置硬盘,也包括USB移动硬盘或量产为USB_HDD的闪存盘,可移动盘,如我们买的U盘一般都是可移动类型。

  二、注册表中哪个位置准确记录了可擦写磁盘的名称、类型与数量?

  HKLM\SYSTEM\CurrentControlSet\Services\Disk\Enum

  这里的键名为0,1,2...即是磁盘在系统中的序号,COUNT名为磁盘总数。如我的系统有相应的值有IDE\,USBTOR\等,相应的还有SCSI\,即代表了类型为IDE的硬盘,SCSI盘(固定或可移动),USB盘(固定或可移动)。如果你去除了一个盘,那么,这里的键名马上会减少一个,假设有3个磁盘,你去除了中间的1,那么原来的2值也不会变成1,因此,在选择硬盘号时,要注意,虽然只有2个盘了,但也不是连续编号的。硬盘序号,是选择其对应盘符的基础。

  三、注册表中哪个位置记录了磁盘的装入点mount point和盘符?

  HKLM\SYSTEM\MountedDevices

  这里的键名只有两种,一种是以类似"\??\Volume{07c229a8-4b84-11de-8e8d-00e04c3e821b}"开头的,{}中的部分即分区的ID,它是调整盘符的基础,是不变的。另一种就是我们的盘符形式的了,如A: C:等。仔细观察会发现每种键名的键值都会在另外一种键的键值中找,这个值是唯一的,具体内容是什么,请看接下来的图形及最后的总结。这个位置最重要,一切盘符与类型信息都在这里,接下来会详细解读。

  四、如何找到一个本地磁盘(或固定磁盘)所包含的分区与盘符?

  一句话,通过disk signature,可以翻译为硬盘标记,这个东西是从WINNT 3.5开始WINDOWS为磁盘所建立的位于主启动分区MBR中的唯一标记,一般没有重复的。它是一个16进制4 bytes的数值。比如disk signature 为A8 E1 B9 D2,则我们可以在HKLM\SYSTEM\MountedDevices项里面找值为D2 B9 E1 A8开头的项名为\DosDevices\后面的盘符,通过这个值,还可以得到这样就得到其对应的开头为\??\volume装入点,在这项下disk signature是反序的。那么,我们如何得到disk signature呢?通过搜索A8E1B9D2,会找到这样一个项:HKEY_LOCAL_MACHINE\HARDWARE\DESCRIPTION\System\MultifunctionAdapter\9\DiskController\0\DiskPeripheral\0(不同的电脑,上述项中红色的数字可能不同),项下有一个名为Identifier的值为"00c72b95-A8E1B9D2-A",如果系统只有一块硬盘的话,那么,可以肯定,这个A8E1B9D2就是disk signature。反过来,也就是说,只要我们找到这个值,就可以找到其盘符及装入点。那么,如果有几块FIXED 盘,到底哪个signature对应哪块盘呢?

  五、Disk signature与磁盘的对应:

  在正常的WINDOWS下面,这个问题好解决,在WinPE系统下就是不行。因此,WinPE系统下必须先得到disk signature或使用低层的diskpart命令,但一般的WinPE系统中都没有为DISKPART安装相应的服务。在WINDOWS下这个设备类别项HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\STORAGE\Volume,所有的连接过的固定磁盘的signature都记录在这里而且不能删除,举例:这是一个子项,1&30a96598&0&SignatureA8E1B9D2Offset7E00LengthXXXXXXXX红字部分是子signature,后面的Offset7E00是该磁盘的偏移值也是起始分区标志,LengthXXXXXXXX是指分区的大小,当然,这里我们不需要知道它。那么,到底如何确定signature所对应的磁盘号啊,盘符顺序是根据如上volume项下的分区的offset值来确定,分区从前至后,offset值从小到大,因此,盘符分区offset值的顺序,是决定盘符顺序的依据。

  总结一下:WINDOWS下获取一个固定磁盘盘符的方法:

  1、获取磁盘signature

  在HKEY_LOCAL_MACHINE\HARDWARE\DESCRIPTION\System\MultifunctionAdapter\9\DiskController\0\DiskPeripheral\0(不同的电脑,上述项中红色的数字可能不同),项下有一个名为Identifier的键,找到两个"-"中间的部分即为disk signature值,如"00c72b95-A8E1B9D2-A"。

  注:signature也可以通过mfbfix软件或windows自带的diskpart获得.

  2、根据signature找到对应的磁盘序号

  根据signature,找到这里HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\STORAGE\Volume\1&30a96598&0&SignatureA8E1B9D2Offset7E00LengthXXXXXXXX,根据offset值从小到大的顺序来确定盘符的顺序!

  3、根据signature获取盘符

  将signature反序排列,在HKLM\SYSTEM\MountedDevices项里面找值为以反序排列数字开头的项名为\DosDevices\后面的盘符和相应的装入点。这里就有一个问题,假设一个盘有3个分区,对应3个盘符,如何确定其盘符顺序?请看-

  六、固定磁盘盘符的顺序:

  根据磁盘分区的offset值从小到大排序,即可得到正确的盘符顺序。在HKLM\SYSTEM\MountedDevices项下将offset值反序即可得到对应分区的ID值,同时也就获得了该分区的盘符。说到这里固定磁盘的盘符获得方法说完了,再说说如何获得可移动磁盘的盘符吧。

上一页12下一页 剩下全文

以上就是关于「浅析固定U盘盘符的原理」的全部内容,本文讲解到这里啦,希望对大家有所帮助。如果你还想了解更多这方面的信息,记得收藏关注本站~

Win10系统之家文②章,转载请联系本站网管!】

相关文章

  • 浅析固定U盘盘符的原理

    浅析固定U盘盘符的原理


      研究固定U盘盘符从哪里开始?从注册表来研究是最好的。为什么要从注册表来研究磁盘与盘符?很简单,操作注册表速度最快,这不同于使用工具软件从低层进行查询,其实PECMD的SHOW命令就是低层操作,操作复杂。其实注册表记录了一切,不再需要工具软件去查找。
      一、都有什么类型的磁盘:
      这是首先要清楚的概念,分清了类别,我们才能去寻找相应的盘符。不用多说,按物理类别来分可...
  • 高手固定U盘盘符有绝招

    高手固定U盘盘符有绝招


      如果我们重装系统,细心的用户便会发现在进入WinPE系统时,不同的电脑上显示的U盘的盘符是不同的,这便给我们带来了诸多不便。针对此问题,我们可以通过学习高手对盘符进行固定的方法来进行解决,两种方案分享给大家。
      方案一:
      1、在U盘的某个位置放置一个INI文件,暂取名为"ChangeUSB.INI",放在U盘的根目录,INI文件只需要两行(红色为注释):
  • 高手让U盘盘符不显示的三种方案

    高手让U盘盘符不显示的三种方案


      U盘是我们日常较为经常使用的数据传输工具,引起体积小而且容量大为我们提供了方便,但是同时也会为我们带来烦恼:有些人会利用U盘的便利条件窃取我们的资料文件。为了解决这个问题很多了采用多种办法来尝试,其实想要保护电脑资料不被他人U盘窃取,只需要让U盘的盘符不显示即可,三种方案分享给大家。
      方法一:
      “组策略”设置U盘不显示盘符的方法
      1、在“开始”→“...
  • 让U盘盘符显示的技巧

    让U盘盘符显示的技巧


      朋友今天将U盘插入电脑,在任务栏的托盘位置能显示出U盘的盘符,但是却在“我的电脑”中却找寻不到U盘盘符的踪影。拔出来再重新插入结果还是一样,这是怎么回事呢?该如何解决呢?
      首先通过“开始”菜单运行CMD命令打开命令行窗口,这里盘符以“I”为例,在窗口中输入“exploreri:”,稍等会弹出一窗口,注意该窗口的标题栏和地址栏,标题栏中是有盘符的,而地址栏中则没有。