答案1
该TreatAsInternalPort
值仍然存在于 Windows 8storahci
驱动程序中,但其语法已发生变化。
它现在在密钥中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"=十六进制(7):30,00,00,00,31,00,00,00,00,00
不幸的是,我不知道这些端口是如何编号的。
答案2
我在 Windows 8.1 中遇到了同样的问题,当时将 HDD 连接到 ASMedia 106x 板载芯片,并使用 storahci 驱动程序而不是 ASMedia 驱动程序(会使我的机器严重冻结!)。
我最终使用 Raiddinn 的建议解决了这个问题这里。
本质上,我创建了一个在系统启动时运行的计划任务,该任务导入以下注册表文件,从而更改 2 个 HDD 设备下的“Capabilities”键:
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\
“设备实例路径”,您应该找到包含“功能”值的正确位置。
我希望这能有所帮助。
答案3
或 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 等等)。
我需要阻止总线 0 和 3。我必须输入十六进制 30 00 00 00 33 00 00 00 作为十六进制值。问题解决了。
答案4
说明 文字 图片 澄清早期关于如何阻止驱动器出现在“安全删除硬件并弹出媒体”对话框中的帖子。