如何从 Windows 7 托盘图标中删除弹出 SATA 驱动器的选项?

如何从 Windows 7 托盘图标中删除弹出 SATA 驱动器的选项?

Windows 7 中的“安全删除硬件”图标可以弹出我的 SATA 驱动器,包括启动驱动器。我认为我永远不需要这个功能 - 尤其是托盘图标很方便。

是否有一个常见的 BIOS 设置可以禁用热插拔功能?

弹出内部 SATA 驱动器

答案1

答案实际上取决于您设置的驱动程序。我有一个 6 端口 SATA 连接器(Intel ICH9 - 2922),我使用默认的 MS-AHCI 驱动程序。如果您遇到同样的情况,请在此处创建几个新密钥:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\msahci

_

\Controller0\Channel0
            \Channel1
            \Channel2
            \Channel3
            \Channel4
            \Channel5

现在在每个键下创建一个新的 DWORD - 名称:TreatAsInternalPort,值:。现在重新启动以使更改生效,驱动器将不再显示在“安全删除...”下。1ChannelN

令人讨厌的东西:

问题的根本原因是 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名为TreatAsInternalPortHKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\storahci\Parameters\Device 值:

0
1
2
4
5

(请注意换行符)

TreatAsInternalPort 注册表设置

顺便说一句,AHCI 驱动程序是英特尔的,而不是微软的,但该解决方案应该适用于这两个驱动程序。

答案3

这是 BIOS 级别选项。在较新的主板中,BIOS 中有禁用热插拔的选项(当您使用 AHCI/RAID 作为控制器时)。当 BIOS 中禁用驱动器的热插拔设置时,它将不会列在系统托盘图标菜单中的可弹出驱动器中。

答案4

如果您有 NVIDIA 芯片组,以下注册表编辑应该适合您...

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\nvata] 
"DisableRemovable"=dword:00000001 

查看此描述以获取更多详细信息

相关内容