Форум: "Начинающим";
Текущий архив: 2007.04.08;
Скачать: [xml.tar.bz2];
Вниз
Как прочитать загрузочный сектор 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 вся ветка
Форум: "Начинающим";
Текущий архив: 2007.04.08;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.983 c