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

sbl*_*air 86 windows-7 eject sata

Windows 7 中的“安全删除硬件”图标提供了弹出 SATA 驱动器(包括引导驱动器)的功能。我不认为自己需要这个——尤其是托盘图标的便利性。

是否有通用的 BIOS 设置来禁用热插拔?

弹出内部 SATA 驱动器

小智 64

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

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\msahci
Run Code Online (Sandbox Code Playgroud)

_

\Controller0\Channel0
            \Channel1
            \Channel2
            \Channel3
            \Channel4
            \Channel5
Run Code Online (Sandbox Code Playgroud)

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

极客的东西:

问题的根本原因是 SATA 驱动程序错误地确定您的内部 SATA 端口是外部的。因此,如果您在HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\IDE\..\..可能设置为 0x4 的情况下查看驱动器的“功能”值,这使其可移动(根据以下值的位标志 ORing 完成)将设置添加到注册表后, SATA 驱动程序现在返回不同的 Capabilities 值(很可能是 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)
Run Code Online (Sandbox Code Playgroud)

  • 要确定哪个控制器是哪个控制器,您可以将 ...\Msahci\enum 下的数值与设备管理器属性对话框的详细信息选项卡中的 HardwareIds 进行比较。 (3认同)
  • 根据答案,我有 [regedit script](http://pastebin.com/JJvRZhLQ) 用于快速肮脏的工作。 (3认同)
  • Windows 8 / Windows 10 解决方案是 [here](http://superuser.com/questions/792693/how-can-i-remove-the-option-to-eject-internal-sata-drives-from-the-windows -8-tra)。 (2认同)

小智 27

今天我把我爸爸的电脑从 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
Run Code Online (Sandbox Code Playgroud)

(注意换行符)

TreatAsInternalPort 注册表设置

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

  • 注意:我必须在 '5' 之后添加一个换行符才能保留 '5' - 如果我将光标放在同一行的 '5' 之后,我的值在 '4' 之后被截断。视窗 10。 (9认同)

小智 18

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


Log*_*mon 6

不确定它有多常见,但在 Asrock 主板上的 CMOS (BIOS) 设置中,名为“Hotswap”的选项会修改行为。它可用于每个 SATA 通道。此外,还有“外部 SATA”选项,但默认情况下它是关闭的,我没有碰它。