... если не пользоваться драйверами ФС? как-то через функции БИОСа возможно это сделать в ядре ВинНТ? Какие могут быть вообще варианты? Напримр, стек ФС поврежден (БСОД), а мне нужно сохранить свои данные на диск в любом случае. Следовательно тупо использовать IoCreateFile/IoWriteFile и IOCTLы ФС я не могу...
не малваре. - что значит тащить с собой дровера винтов? можно подробнее как это работает и как этим пользоваться?
NeuronViking google.ru?q=программирование дисковых подсистем вроде еще на реверсинге.нет были, а все такой же.
censored спасибо за ссылку. спрашиваю потому, что возможно где-то уже есть кусок _рабочего_ кода. бабла я здесь срубить не смогу т.к. тема в рамках проекта за не очень большую инженерскую ЗП, поэтому если кто-то поделится своим опытом и временем бесплатно - скажу спасибо.
ну что же, похоже здесь один и только один способ: "Put a reserved IDE controller in PIO mode and wrote out the whole dump that way - 1 page at a time" пожелайте мне удачи в создании этого чудовища ;(
А почему бы не попробовать как это делает винда ? Записать в страничный файл а потом скинуть на диск при следующей загрузке ?
я рассматриваю два варианта: 1. использовать тот же метод что и Винда - через IoWriteDiskDump, предварительно настроив список секторов; это недокументированные функции и структур, о которых нигде в сети нет информации... т.е. дебагер + ида + голова; в этом случае писать можно хоть на ФАТ, хоть на НТФС - используя функции дамп-драйвера винды. 2. использовать программирование PCI IDE контроллера и в PIO режиме писать постранично на неразмеченную область - никогда такие вещи не делал; даже не представляю какие трудности возникнут при попытки использовать функции PCI EIDE в защищенном режиме.