A resposta realmente depende do driver com o qual você está configurado. Eu tenho um conector SATA de 6 portas (Intel ICH9 - 2922) e eu uso o driver padrão MS-AHCI. Se você estiver no mesmo barco, crie algumas novas chaves aqui:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\msahci
_
\Controller0\Channel0
\Channel1
\Channel2
\Channel3
\Channel4
\Channel5
Agora crie um novo DWORD - nome: TreatAsInternalPort
, value: 1
em cada uma das chaves ChannelN
. Agora reinicie para que as alterações entrem em vigor e as unidades não sejam mais exibidas em "Remover com segurança".
Coisas nerds:
A causa raiz do problema é que o driver SATA determinou incorretamente que sua porta SATA interna é externa. Então, se você olhar para o valor 'Capabilities' para a (s) sua (s) unidade (s) em HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\IDE\..\..
, ela provavelmente será 0x4, o que a torna removível (conforme o bit flag ORing done dos valores abaixo) Depois de adicionar a configuração ao Registro, o driver SATA agora retorna um valor de capacidades diferente (muito provavelmente 0) e a unidade pára de aparecer em 'Remover com segurança ..'
//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)