Вниз
Скачать: CL | DM;

Как прочитать загрузочный сектор HDD   Найти похожие ветки 

← →
images   (2007-03-17 23:49) [0]

Подскажите пожалуйста как можно под Windows XP Pro можно прочитать загрузочный сектор диска NTFS. Пробовал пример из DRKB (CreateFile, ReadFile), но получаю сообщение "Процесс не может получить доступ к файлу, так как этот файл занят другим процессом".


← →
koha ©   (2007-03-18 18:30) [1]

Если переведешь в из 32х разрядную систему, то вот готовый код, другого врятли кто даст

DataPack DB DUP (0);

mov AH, 41h;
mov BX, 55AAh;
mov DL, 80h;
int13h;
jc NO_SUPPORT;
cmp BX, 55AAh;
jne ERROR_END;
mov [DataPack],16;
mov [DataPack+2],1;
mov[word ptr DataPack +4], off set DataSector
mov AX, DS
mov [DataPack+6], AX;

mov [dword ptr DataPack + 8],0
mov [dword ptr DataPack + 12],0
mov AH, 42h;
mov DL, 80h;
mov SI, offset DataPack;
int 13h;


← →
MikePetrichenko ©   (2007-03-18 19:30) [2]


> Подскажите пожалуйста как можно под Windows XP Pro

И вот это убило


> int 13h;


А размонтировать файловую систему кто за тебя будет? Подумай, почему chkdsk имеет ключ /X а также при выполнении chkdsk C: /f требует перезагрузки? (С: в данном случае загрузочный диск с осью)


← →
DrPass ©   (2007-03-18 23:48) [3]


> Если переведешь в из 32х разрядную систему

А если не переведешь? :)


← →
Игорь Шевченко ©   (2007-03-19 12:36) [4]


> Подскажите пожалуйста как можно под Windows XP Pro можно
> прочитать загрузочный сектор диска NTFS


var
 FileName : String;
 FileMode : Cardinal;
 FSectorBuffer : array[0..511] of Char;
begin
 FileName := "\\.\PhysicalDrive"+IntToStr(FDriveNo);
 if FOpenForWriting then
   FileMode := GENERIC_WRITE
 else
   FileMode := GENERIC_READ;
 FHandle := CreateFile(PChar(FileName), FileMode,
   FILE_SHARE_WRITE or FILE_SHARE_READ, nil,
   OPEN_EXISTING, 0, 0);
 if FHandle = INVALID_HANDLE_VALUE then
   RaiseLastWin32Error();

 ReadFile(FHandle, FSectorBuffer, SizeOf(FSectorBuffer), ReadBytes, nil);
 if ReadBytes <> SizeOf(FSectorBuffer) then
   RaiseLastOSError();


← →
koha ©   (2007-03-19 20:27) [5]

Какой код клёвый!
А я когда - то, когда еще Дос юзал все пытался на ассемблере делать,
потом руками из книги модуль готовый подрезал у Фаронова (Turbo Pascal7 - 2ч.), который все почти умеет, а вот в делфи не очень то у же понимаю все эти вещи как делать...
C дуру было чуть дравер не сел писать.



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.046 c
2-1173854350
Wood
2007-03-14 09:39
2007.04.08
TADOCommand


15-1173888490
Vlad Oshin
2007-03-14 19:08
2007.04.08
CGI. Генерация html странички. велосипед или самокат?


15-1173645143
Игорек
2007-03-11 23:32
2007.04.08
Отладчик Windbg


15-1173645068
SkySpeed
2007-03-11 23:31
2007.04.08
Проблемы с решением задач по теории вероятности


15-1174039799
palva
2007-03-16 13:09
2007.04.08
Что-то пятничных задачек нет




   Наверх