Форум: "Система";
Текущий архив: 2003.09.22;
Скачать: [xml.tar.bz2];
ВнизСкопировать загрузочный сектор Найти похожие ветки
← →
Goblinus (2003-07-10 02:22) [0]Привет всем! Нужна Ваша помощь. Необходимо осуществить сабж. Вот, собственно, исходный код (взят с http://www.firststeps.ru и переведен на Delphi):
...
const
VWIN32_DIOC_DOS_INT25 = 2;
type
DIOC_REGISTERS = packed record
reg_EBX: DWord;
reg_EDX: DWord;
reg_ECX: DWord;
reg_EAX: DWord;
reg_EDI: DWord;
reg_ESI: DWord;
reg_Flags: DWord;
end;
...
procedure TfrmMain.btnSvaeToFileClick(Sender: TObject);
const
S = "Ошибка! Сектор не скопирован!";
var
hDevice: Cardinal;
dw: DWord;
Reg: DIOC_REGISTERS;
Result: LongBool;
Data: Array [1..512] of Char;
begin
with OpenDialog do if Execute then begin
hDevice := CreateFile("\\.\c:", GENERIC_READ,
FILE_SHARE_READ or FILE_SHARE_WRITE, nil, OPEN_EXISTING, 0, 0);
if hDevice <> INVALID_HANDLE_VALUE then with Reg do begin
reg_EAX := 3;
reg_ECX := 1;
reg_EDX := 0;
reg_EBX := LongInt(@Data);
Result := DeviceIoControl(hDevice, VWIN32_DIOC_DOS_INT25, @Reg,
SizeOf(Reg), @Reg, SizeOf(Reg), dw, nil);
if Result then with TFileStream.Create(FileName, fmCreate or
fmShareDenyWrite) do begin
Write(Data, SizeOf(Data));
Free;
end
else ShowMessage(S);
CloseHandle(hDevice);
end
else ShowMessage(S);
end;
end;
DeviceIoControl возвращает False ;((( А "\\.\Harddisk0\Partition1" - вообще не существует (CreateFile возвращает INVALID_HANDLE_VALUE).
Помогите, пожалуйста, решить проблему!
Кстати, попутно вопрос по теме. Могу ли я скопировать boot-сектор раздела диска, на котором файловая система - HPFS или Linux Ext2/Ext3 стандартными WinAPI-функциями?
С уважением,
Goblinus
← →
Digitman (2003-07-10 11:19) [1]http://www.torry.net/vcl/filedrv/diskaccess/diskacc.zip
Страницы: 1 вся ветка
Форум: "Система";
Текущий архив: 2003.09.22;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.012 c