Windows 7 中的“安全删除硬件”图标可以弹出我的 SATA 驱动器,包括启动驱动器。我认为我永远不需要这个功能 - 尤其是托盘图标很方便。
是否有一个常见的 BIOS 设置可以禁用热插拔功能?
答案1
答案实际上取决于您设置的驱动程序。我有一个 6 端口 SATA 连接器(Intel ICH9 - 2922),我使用默认的 MS-AHCI 驱动程序。如果您遇到同样的情况,请在此处创建几个新密钥:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\msahci
_
\Controller0\Channel0
\Channel1
\Channel2
\Channel3
\Channel4
\Channel5
现在在每个键下创建一个新的 DWORD - 名称:TreatAsInternalPort
,值:。现在重新启动以使更改生效,驱动器将不再显示在“安全删除...”下。1
ChannelN
令人讨厌的东西:
问题的根本原因是 SATA 驱动程序错误地确定了您的内部 SATA 端口是外部的。因此,如果您查看驱动器的“功能”值,HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\IDE\..\..
其可能设置为 0x4,这使得它可以移动(根据以下值的位标志 ORing)一旦您将设置添加到注册表,SATA 驱动程序现在会返回不同的功能值(很可能是 0),并且驱动器不再显示在“安全删除...”下
//from inc/api/cfgmgr32.h (WINDDK)
#define CM_DEVCAP_LOCKSUPPORTED (0x00000001)
#define CM_DEVCAP_EJECTSUPPORTED (0x00000002)
#define CM_DEVCAP_REMOVABLE (0x00000004)
#define CM_DEVCAP_DOCKDEVICE (0x00000008)
#define CM_DEVCAP_UNIQUEID (0x00000010)
#define CM_DEVCAP_SILENTINSTALL (0x00000020)
#define CM_DEVCAP_RAWDEVICEOK (0x00000040)
#define CM_DEVCAP_SURPRISEREMOVALOK (0x00000080)
#define CM_DEVCAP_HARDWAREDISABLED (0x00000100)
#define CM_DEVCAP_NONDYNAMIC (0x00000200)
答案2
今天我将我爸爸的电脑从 Windows 7 升级到 10 后也遇到了同样的问题
上述内容不再适用于 Win 8、8.1 和 10
对此链接的轻微改动有所帮助 如何从 Windows 8 托盘图标中删除弹出内部 SATA 驱动器的选项?
即我添加了一个新的Multi String Value
名为TreatAsInternalPort
的
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\storahci\Parameters\Device
值:
0
1
2
4
5
(请注意换行符)
顺便说一句,AHCI 驱动程序是英特尔的,而不是微软的,但该解决方案应该适用于这两个驱动程序。
答案3
这是 BIOS 级别选项。在较新的主板中,BIOS 中有禁用热插拔的选项(当您使用 AHCI/RAID 作为控制器时)。当 BIOS 中禁用驱动器的热插拔设置时,它将不会列在系统托盘图标菜单中的可弹出驱动器中。
答案4
如果您有 NVIDIA 芯片组,以下注册表编辑应该适合您...
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\nvata]
"DisableRemovable"=dword:00000001
查看此描述以获取更多详细信息。