Windows 8(和8.1)中的“安全删除硬件”图标提供了弹出我的内部SATA驱动器(包括引导驱动器)的功能(请参见示例):
我看不到自己需要这样做-尤其是从托盘图标的方便性来看。
对于Windows 7,存在众所周知的解决方案(答案1,答案2等)。但是在Windows 8中,msahci驱动程序已由 storahci 取代。不幸的是,TreatAsInternalPort解决方法不再起作用。
Windows 8(和8.1)中的“安全删除硬件”图标提供了弹出我的内部SATA驱动器(包括引导驱动器)的功能(请参见示例):
我看不到自己需要这样做-尤其是从托盘图标的方便性来看。
对于Windows 7,存在众所周知的解决方案(答案1,答案2等)。但是在Windows 8中,msahci驱动程序已由 storahci 取代。不幸的是,TreatAsInternalPort解决方法不再起作用。
Answers:
该TreatAsInternalPort
值在Windows 8 storahci
驱动程序中仍然存在,但是其语法已更改。
现在位于键中HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\storahci\Parameters\Device
,并且是REG_MULTI_SZ
强制将其视为内部端口号的列表。
例如,要禁用端口0和1上的可移动性,您可以使用
Windows注册表编辑器版本5.00 [HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services \ storahci \ Parameters \ Device] “ TreatAsInternalPort” = hex(7):30,00,00,00,31,00,00,00,00,00
不幸的是,我不知道这些端口是如何编号的。😕
或Windows 10:
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\storahci\Parameters\Device]
"TreatAsInternalPort"=hex(7):30,00,31,00,32,00,33,00,34,00,35,00,00
(感谢kinokijuf的帮助,但是他的代码只为我禁用了1个驱动器(第二个控制器上的驱动器0)。
该驱动器对我拥有的所有5个驱动器都有效(可能也是第6个)。
我认为是因为他的值之间有一个空白换行符(十六进制的00是换行符),(十六进制的30是0,31是1,依此类推)。
在Windows 8.1中,我将HDD连接到ASMedia 106x板载芯片并使用storahci驱动程序而不是ASMedia驱动程序时遇到了相同的问题(这将使我的机器死机!)。
我最终使用Raiddinn在这里找到的建议解决了这个问题。
本质上,我创建了一个计划任务,该任务在系统启动时运行,并导入以下注册表文件,更改了2个HDD设备下的“功能”键:
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\SCSI\Disk&Ven_WDC&Prod_WD6400AAKS-22A7B\5&288c89f1&2&000000]
"Capabilities"=dword:000000e0
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\SCSI\Disk&Ven_WDC&Prod_WD6401AALS-00L3B\5&1272cb31&2&000000]
"Capabilities"=dword:000000e0
问题是您需要跟踪上述设置项,因为每次安装它们都略有不同。但是,如果在“设备管理器”中找到有问题的驱动器,然后在“详细信息”选项卡上查看属性,特别是“设备实例路径”,则会在注册表中找到该条目的位置(始终在下面)HKLM\SYSTEM\CurrentControlSet\Enum\
。因此,通过HKLM\SYSTEM\CurrentControlSet\Enum\
与“设备实例路径”组合,您应该找到包含“功能”值的正确位置。
我希望这会有所帮助。