題 如何從Windows 7托盤圖標中刪除彈出SATA驅動器的選項?


Windows 7中的“安全刪除硬件”圖標提供了彈出SATA驅動器的功能,包括啟動驅動器。我不認為自己需要這個 - 尤其是托盤圖標的便利性。

是否有一個通用的BIOS設置來禁用熱插拔?

Eject internal SATA drives


76
2017-07-25 22:08


起源


從Vista升級到Windows 7 RTM後,我的SATA驅動器不再顯示在“安全刪除硬件”菜單中,您是否可以在RTM版本的Windows 7上確認這仍然是一個問題? - bdukes
我想知道,彈出啟動硬盤後W7運行的穩定性如何。你也可以彈出CPU或主板嗎? - maaartinus
在我的Windows 8.1中也存在同樣的問題,我想這在2000年到XP,Vista,7和8的所有Windowses中都是一樣的。我建議你添加更多的標籤;) - LogicDaemon


答案:


答案實際上取決於你設置的驅動程序。我有一個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驅動程序現在返回不同的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)

59
2018-03-17 16:31



要確定哪個控制器可以在設備管理器屬性對話框的詳細信息選項卡中使用HardwareIds在... \ Msahci \ enum下彙編數字值。 - Richard
@Kapil:請看看(superuser.com/questions/420584/...)[這個]方便時的問題。提前致謝。 - Raheel Khan
根據答案,我有 註冊腳本 快速臟工作。 - LogicDaemon
這不再適用於8 ...... :( - user1643156
Windows 8 / Windows 10解決方案是 這裡。 - willus


今天我將爸爸的電腦從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 registry setting

順便說一下,AHCI驅動程序是英特爾的,而不是微軟的,但該解決方案應該適用於兩個驅動程序。


22
2017-08-22 18:21



這完美地工作:D(我也從Win7更新到Win10)。謝謝! (我還使用了Microsofts AHCI驅動程序)。 - Mohammad
注意:我必須在'5'之後添加換行符以保留'5' - 如果我將光標放在同一行的'5'之後,我的值在'4'之後被截斷。 Windows 10。 - Patrick Moore


這是一個BIOS級選項。在較新的主板中,BIOS中有一些選項可禁用熱交換(當您使用AHCI / RAID作為控制器時)。如果在BIOS中禁用了驅動器的熱插拔設置,則它將不會列在系統托盤圖標菜單中的可彈出驅動器中。


11
2018-02-14 04:44





不確定它有多常見,但在Asrock主板上的CMOS(BIOS)設置中,名為“Hotswap”的選項會修改行為。它適用於每個SATA通道。 此外,還有“外部SATA”選項,但默認情況下它是關閉的,我沒有觸摸它。


4
2017-12-21 10:42





如果您有NVIDIA芯片組,以下註冊表​​編輯應該適合您...

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

查看 此說明了解更多詳情


3
2017-07-25 22:14



是的,我在Google上找到了這個解決方法,但它對我沒用。 - sblair


按照以下步驟進入控制面板 - 設備管理器 - 存儲控制器 - 然後右鍵單擊MARVELL91XXsata6g控制器選擇策略,取消啟用安全移除磁盤並按OK重新啟動計算機


0
2018-05-30 19:16





在BIOS中,在Storage Configuration下,我將'Configure SATA as'從IDE更改為AHCI並修復了它。


-1
2017-09-26 20:54