У меня 3 диска SATA - 1 SSD и 2 обычных HDD. После изменения режима контроллера HDD на AHCI и установки Windows 7 у меня все еще есть возможность безопасного извлечения HW-устройств - дисков. Каждый раз, когда я собираюсь извлечь USB-флеш-карту, я беспокоюсь, что случайно отключу системный диск (возможно ли это вообще?). Можно ли отключить эту функцию для этих 3 HDD?
решение1
Не уверен, можно ли адаптировать этот метод к не-USB устройствам. Дисковые накопители должны отображаться в HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\IDE .
Этого можно добиться, изменив значение реестра. Пока у меня не было времени написать небольшой инструмент для этого...
Устройства отображаются там, если они помечены как съемные и если у них нет флага 'surprise removal ok'. Это бит-кодированные флаги:
Из cfgmgr32.h:
Возможности устройства находятся в реестре в параметре с именем «Возможности» в разделе (пример для одного из моих USB-накопителей): HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\USB\Vid_058f&Pid_6331\058F091111B
Если вы отнимете 4 от значения или добавите 80h, а затем обновите диалоговое окно сохранения и удаления, установив флажок, то диск исчезнет. Но значение сбрасывается, когда вы подключаете диск в следующий раз. Это жестко закодировано в драйвере и считывается каждый раз при загрузке диска. Если вы экспортируете измененное значение в reg-файл, то вы можете молча загрузить его при запуске с помощью regedit /s hidecardreader.reg
Строка идентификатора устройства вашего картридера (этот Vid_058f&Pid_6331\058F091111B) находится в свойствах USB-устройства в диспетчере устройств. Мой инструмент ListUsbDrives тоже его показывает ('Ctrl DevID'): http://www.uwe-sieber.de/files/listusbdrives.zip