La respuesta realmente depende del controlador con el que esté configurado. Tengo un conector SATA de 6 puertos (Intel ICH9 - 2922) y utilizo el controlador MS-AHCI predeterminado. Si estás en el mismo barco, crea un par de claves nuevas aquí:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\msahci
_ _
\Controller0\Channel0
\Channel1
\Channel2
\Channel3
\Channel4
\Channel5
Ahora cree un nuevo DWORD - nombre:, TreatAsInternalPort
valor: 1
debajo de cada una de las ChannelN
claves. Ahora reinicie para que los cambios surtan efecto y las unidades ya no deberían aparecer en 'Quitar de forma segura ...'
Cosas geek:
La causa raíz del problema es que el controlador SATA determinó incorrectamente que su puerto SATA interno es externo. Entonces, si observa el valor de 'Capacidades' para su (s) unidad (es) bajo HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\IDE\..\..
su probablemente establecido en 0x4, lo que lo hace extraíble (según el indicador de bit OR hecho de los valores a continuación) Una vez que agrega la configuración al registro, el El controlador SATA ahora devuelve un valor de Capacidades diferente (muy probablemente 0) y la unidad deja de aparecer en 'Quitar de forma segura ...'
//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)