您的位置 首页 资讯

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

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

研究固定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对应哪块盘呢?

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

五、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值,同时也就获得了该分区的盘符。说到这里固定磁盘的盘符获得方法说完了,再说说如何获得可移动磁盘的盘符吧。

本文来自互联网投稿,不代表发芽谷立场,如若转载,请注明出处:https://www.fayagu.com/665859.html。如有侵犯您的合法权益请联系我们删除。

赞 (0)

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注

*昵称:
记住昵称、邮箱和网址,下次评论免输入

RoundedTB 允许您自定义Windows 11和 Windows 10上的任务栏。它是自定义 Windows 11 外观的最佳应用程序之一,并且在最近的更新中变得更好了。当窗口最大化时,最新版本的 RoundedTB 现在可以填充到屏幕的边缘。这使得任务栏看起来更自然,因为它不会在屏幕上留下间隙。根据其更新日志,该更新还提高了性能并修复了几个“令人震惊的错误”。

以下是 RoundedTB 3.1 版中的所有新功能:

3.1 版对第 3 版进行了改进,解决了一些潜入的更严重的错误。还有一些性能增强和一些新功能!值得注意的是,这些包括:

当窗口最大化时(或者在 Windows 11 上调用 alt+tab 或任务切换器时)让任务栏“填充”的选项
能够通过从“开始”重新打开应用程序的设置窗格来调用它
仅当您将鼠标悬停在托盘上时才显示托盘的选项
自动检测任务栏在动态模式下何时“溢出”,并因此切换回基本模式

RoundedTB 是不断增长的可以自定义 Windows 外观的应用程序列表的一部分。它自 Windows 10 以来一直存在,但具有一些与 Windows 11 配合良好的新功能。该应用程序可以将任务栏分成多个部分。它还可以使 Windows 11 任务栏像浮动码头一样工作。与 Windows 10 的情况一样,该应用程序还可以使任务栏的角变圆并添加边距。


如果您正在使用Windows 11或 Windows 10,那么独家新闻:2021 年 11 月的补丁星期二没有包含任何特别有趣的亮点或花哨的功能更新。相反,您正在获得安全性。

已经处理了六组零日漏洞,包括两个正在被积极利用的漏洞(CVE-2021-42292和CVE-2021-42321)。

您可以在 Microsoft 的补丁说明博客上查看 Windows 10 更新,其中除了安全更新和服务堆栈通知之外,您不会看到任何重大更新,这是每个补丁星期二的标准。但是,微软在其 11 月的日志中确实包含了一个提示:

由于假期和即将到来的西方新年期间的操作很少,因此 2021 年 12 月不会有预览版本(称为“C”版本)。将有每月安全版本(称为“ B" 版本) 于 2021 年 12 月。B 和 C 版本的正常月度服务将于 2022 年 1 月恢复。

在 Windows 11 方面,有 KB5007215,它同样专注于安全性。但是,您可以查看 Microsoft 的支持公告以获取更多详细信息,其中之一包括 GDI+ 问题已得到修复。和往常一样,服务堆栈更新是存在的,因为这就是补丁星期二发生的事情。

总之,低调的一个月更新。根据微软关于 12 月的通知(上面发布),2021 年的最后一个月的内容可能也很淡。也就是说,除非有什么大规模的事情出现,促使微软超速运转。比如说,一个印刷噩梦。

版权声明:本站部分文章和图片来源于网络,版权归原作者所有,如果侵犯你的版权,请发邮件,我们将及时删除!