MSDN.WhiteKnight - Stack Overflow answers
Ответ на "Пароль через CreateFile для PhysicalDrive1"
Answer 737667
Хотя функцией
CreateFile
(самой по себе) нельзя отправить АТА-команду, ее можно отправить запросом IOCTL_ATA_PASS_THROUGH через функциюDeviceIoControl
(которой в качестве аргумента передается дескриптор, возвращенный как раз функцией CreateFile).Для выполнения команды нужно передать с ioctl-запросом структуру ATA_PASS_THROUGH_EX с заполненными полями:
CurrentTaskFile
(состояние регистров на входе),DataBufferOffset
(смещение блока данных) и др., а за ней - блок данных определенного формата, содержащий аргументы команды. Информацию о необходимых значениях регистров и формате команды установки пароля можно найти в документации по АТА-командам.Примечание. Windows начиная с Vista и XP SP3 при загрузке посылает команду SECURITY FREEZE LOCK всем жестким дискам, работающим под стандартным ATA-драйвером, поэтому выполнить изменение пароля и другие подобные действия не выйдет. Для решения этой проблемы можно запускать программу под более старой ОС или Windows 8 Preinstallation Environment, которые не посылают данную команду. Также SECURITY FREEZE LOCK может посылаться некоторыми BIOS при инициализации системы.
Content is retrieved from StackExchange API.
Auto-generated by ruso-archive tools.