В своё время я потратил огромное количество времени на изучение вопроса "безопасного извлечения устройств", поскольку сталкивался с подобной фигней на самых разных компьютерах и ноутбуках. Пришёл к следующим выводам:
1) BIOS здесь не при делах. На современных материнках ASUS (Socket 1155) видел в BIOS'е опции Hot Plug именно для конкретных SATA-разъёмов на материнке, но как они влияют на функцию безопасного извлечения в самой ОС - каюсь, не проверял. Причем это единственный случай, когда про Hot Plug было упоминание в BIOS'е. Конечно, на более старых материнках такая функция тоже могла быть, но навскидку я могу только свежие ASUS'ы вспомнить.
2) Будет устройство считаться извлекаемым или нет - зависит не столько от материнки \ BIOS'а \ чипсета \ системы, сколько от драйвера. Если быть точным, то всё решает DWORD-параметр "Capabilities", который есть у каждого устройства в системном реестре. Для этого надо прогуляться в HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum и там найти нужный девайс. Приводы и харды, как правило, находятся в категориях IDE или SCSI. Несложно заметить, что Capabilities у большинства устройств разный и, самое главное, я пока что не смог найти чёткого списка всех возможных значений этого параметра, чтобы понять при каком значении просто отключается функция безопасного извлечения, а не что-нибудь ещё из других функций устройства. Я не уверен даже кто именно задает значение параметра Capabilities - устанавливаемый драйвер или сама система.
3) В любом случае, вручную менять параметр Capabilities смысла мало, поскольку исходное значение будет восстанавливаться автоматом при каждой перезагрузке компьютера. Единственный выход - это сделать REG-файлик вида:
Код:

Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\IDE\CdRomPBDS_DVD+-RW_DS-8W1P____________________BD1B____\5&c10f4f&0&0.0.0]
"Capabilities"=dword:00000002
После чего создать в ветке HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run новый строковый параметр (имя любое) со значением вида regedit /s "C:\Documents and Settings\user\My Documents\DVD Not Removable.reg (ну или где там ваш reg-файлик лежит). В этом случае для текущего пользователя указанный девайс будет скрыт из списка безопасного извлечения. При этом подобная халява возможна только в Windows XP, в Windows 7 придётся серьёзно поковыряться в правах для нужной ветки реестра, ибо Windows 7 уже не дает так легко менять параметр Capabilities. Причем применять такой трюк с reg-файликом можно для чего угодно, вплоть до кард-ридеров, веб-камер и прочей мелочи, которая порой по неясным причинам оказывается в списке безопасно извлекаемых девайсов.
4) Я более чем уверен, что разработчики всех драйверов для SATA-контроллеров предусмотрели те или иные опции для включения \ отключения опции горячего извлечения. Другое дело, что реализовано оно может быть по-разному.
- AHCI-драйвер от Microsoft в этом плане самый удобный. Просто делаем Пуск - Выполнить:
reg.exe add "HKLM\SYSTEM\CurrentControlSet\Services\msahci\Controller0\Channel0" /f /v TreatAsInternalPort /t REG_DWORD /d 0x00000001 (как видим, при необходимости Channel0 можно поменять на 1, 2, 3 и т.д. - смотря какой именно SATA-разъём надо отключить).
- AHCI-драйвер от Intel в этом плане менее удобен: он отключает все внутренние SATA-порты (насчет eSATA не знаю, сорри). В принципе, большой беды тут не вижу, ибо мало кто лазит внутрь, чтобы дёргать харды на горячую, а для USB-хардов функция безопасного извлечения и так прекрасно работает. Самое обидное, что вместе с драйвером Intel обычно даёт в нагрузку и собственную утилиту для мониторинга состояния хардов в рамках технологии Intel Rapid Storage Technology. И она не позволяет включать \ отключать безопасное извлечение для конкретных SATA-портов... В общем, недоработка серьезная весьма для такой конторы, я считаю, но тут уж ничего не поделаешь.
- AHCI-драйвер от AMD в этом плане ужасный просто, в том смысле что его установка ничего не меняет. Впрочем, функция безопасного извлечения актуальна только для старых чипсетов, если не ошибаюсь. Как правило, единственный вариант убрать безопасное извлечение харда - это заморочиться с тем самым REG-файликом при старте ОС. Ну либо остаться на AHCI-драйвере от Microsoft, он в этом плане более удобный. Хотя недавно наткнулся на интересный совет: вручную принудительно поставить RAID-драйвер, а не AHCI. На чипсетах 7xx-серии прокатило, как ни странно - контроллер хоть и перебрался в SCSI-категорию, но заимел при этом надпись "AHCI Compatible". Безопасное извлечение пропало. При этом что самое забавное, ставить нужно RAID-драйвер от Vista, ибо RAID-драйвер для Widows 7 устанавливаться не желает по причине "отсутствия совместимого оборудования".
- AHCI-драйвер от Marvell в этом плане простой как две копейки: после его установки на SATA-контроллер достаточно зайти в его свойства, перейти на новую вкладку Policy и снять галочку "Enable Safely Removable", после чего достаточно лишь перезагрузить комп и все SATA-диски, которые подключены к нему, пропадут из списка безопасно извлекаемых. Как видим, отдельно для каждого харда такое не настроить, да и встречаются SATA-контроллеры от Marvell очень редко, но тут уж ничего не поделаешь.
- AHCI-драйвер от NVidia в этом плане такой же: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\nvata, где нужно исправить или добавить строку типа DWORD DisableRemovable=1 (вместо раздела "nvata", могут быть "nvatabus" , "nvata64").
- AHCI-драйвер от JMicron в этом плане схож с предыдущим. Достаточно лишь сделать Reg-файлик вида:
Код:

Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\jraid\Private]
"CustomizedSetting2"=dword:00000038
И дважды кликнуть на нём. После перезагрузки все харды, подключенные к нему, пропадут.