Головна сторінка
Top.Mail.Ru Яндекс.Метрика
Форум: "Система";
Поточний архів: 2002.12.23;
Завантажити: [xml.tar.bz2];

Вниз

Читання запис сектора диска Знайти схожі гілки


Ice   (2002-10-08 22:39) [0]

Як прочитати записати сектор HDD



Polox   (2002-10-10 17:24) [1]

Читання / запис диска здійснюється перериванням 13h (або 21h але це лажа).
Так-що якщо сидиш під Вінд або ДОСом ...
А взагалі в питанні файл-систему уточнювати треба і.т.д



Pumpkin   (2002-10-11 10:40) [2]

На torry була компонента. diskio начебто (з vxd драйвером int13h).



Pumpkin   (2002-10-11 10:44) [3]

Еррорчік вийшов. Ось вона:
http://www.torry.net/vcl/filedrv/diskaccess/diskacc.zip



Ihor Osov'yak   (2002-10-11 16:58) [4]

2 Pumpkin (11.10.02 10: 44)

Я, здається дивився колись цю річ. Там кілька помилок є.
По-перше, по різному інтерпрітірует номер диска під NT і 98,
по-друге, більше ніж чотири сектори за раз під 98 працює також некоректно.

Так, цілком можливо, що я бачив старішу версію. Але в будь-якому випадку - поставтеся до цього виробу дуже обережно.





Pumpkin   (2002-10-11 17:07) [5]

2 Ihor Osov "yak © (11.10.02 16: 58)
> Так, цілком можливо, що я бачив старішу версію. Але в будь-якому випадку - поставтеся до цього виробу дуже обережно.

Ні Ви бачили саме цю, інших версій немає. Обережно? - згоден. Я коли свого часу шукав (може погано шукав), нічого кращого не знайшов і дещо підправив використовував (потрібно було тільки читання). Працює, не дзижчить.




Геннадий   (2002-10-12 22:04) [6]

Дивно ... Я вже думав, що це під Win неможливо ...

Скільки не намагався - нічого не виходило з перериваннями. Народ! Поділіться знаннями - в які регістри що писати перед викликом переривання?



Pumpkin   (2002-10-12 22:57) [7]

2 Геннадій (12.10.02 22: 04)
завантаж і дивись. На Торрі таких компонент не одна штука (в цьому розділі).



vodoley   (2002-10-18 15:05) [8]

Спробувати по ХР, працює, це кульно ...



Карлсон   (2002-10-18 18:46) [9]

вибачте, що втручаюся, просто мені трохи не зрозуміло "Читання запис сектора диска".
може хто-небудь пояснити, що це таке?



Nick N A   (2002-10-20 08:53) [10]

Дивіться winioctl.h або DeviceIOControl



Rouse_   (2002-10-20 09:24) [11]

Ось правда не перевіряв

implementation {$ R * .DFM} type pDIOCRegs = ^ TDIOCRegs; TDIOCRegs = packed record rEBX, rEDX, rECX, rEAX, rEDI, rESI, rFlags: DWORD; end; const VWIN32_DIOC_DOS_IOCTL = 1; VWIN32_DIOC_DOS_INT13 = 4; // Prforms Interrupt 13h commands SectorSize = 512; function ReadSector (Head, Track, Sector: Integer; buffer: pointer; Floppy: char): Boolean; var hDevice: THandle; Regs: TDIOCRegs; DevName: string; nb: Cardinal; begin if WIN32PLATFORM <> VER_PLATFORM_WIN32_NT then begin {Win95 / 98} hDevice: = CreateFile ( "\\. \ vwin32", GENERIC_READ, 0, nil, 0, FILE_FLAG_DELETE_ON_CLOSE, 0); if (hDevice = INVALID_HANDLE_VALUE) then begin Result: = False; Exit; end; Regs.rEDX: = head * $ 100 + Ord (Floppy in [ "b", "B"]); Regs.rEAX: = $ 201; // код операції read sector Regs.rEBX: = DWORD (buffer); Regs.rECX: = Track * $ 100 + Sector; Regs.rFlags: = $ 0; Result: = DeviceIOControl (hDevice, VWIN32_DIOC_DOS_INT13, @Regs, sizeof (Regs), @Regs, sizeof (Regs), nb, nil) and ((Regs.rFlags and $ 1) = 0); CloseHandle (hDevice); end {Win95} else begin // Windows NT DevName: = "\\. \ A:"; if Floppy in [ "b", "B"] then DevName [5]: = Floppy; hDevice: = CreateFile (pChar (DevName), GENERIC_READ, FILE_SHARE_READ or FILE_SHARE_WRITE, nil, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0); if (hDevice = INVALID_HANDLE_VALUE) then begin Result: = False; Exit; end; SetFIlePointer (hDevice, (Sector-1) * SectorSize, nil, FILE_BEGIN); {Нумерація з 1} Result: = ReadFile (hDevice, buffer ^, SectorSize, nb, nil) and (Nb = SectorSize); CloseHandle (hDevice); end; end; procedure TForm1.Button1Click (Sender: TObject); var Bt: Array [1..512] of Byte; PBt: PByte; i: integer; begin PBt: = @ Bt; ReadSector (2, 1,1, PBt, "a"); for i: = 1 to 512 do begin ListBox1.Items.Add (inttohex (bt [i], 2)); end; end;

Бажаю успіхів



сторінки: 1 вся гілка

Форум: "Система";
Поточний архів: 2002.12.23;
Завантажити: [xml.tar.bz2];

наверх









Пам'ять: 0.59 MB
Час: 0.028 c
1-74789
Дмитро
2002-12-11 13:13
2002.12.23
З області геометрії


3-74618
@Ujin
2002-12-05 13:11
2002.12.23
Чому в Access-е працює, а через ADO немає?


3-74610
Gaber
2002-12-05 10:30
2002.12.23
Перенесення даних з Excel в IB


14-74889
маса
2002-12-03 21:20
2002.12.23
Підкажіть де взяти Fast Report останній або пароль до архіву.


6-74878
naHkep
2002-10-27 20:44
2002.12.23
GET запит





африкаанс албанський арабська вірменин азербайджанець баскський білоруський болгарська каталонський Китайська (спрощене письмо) Китайський традиційний) хорватський чеська данську мову нідерландський Ukranian естонець Філіппінська фінську мову французький
галісійська грузинський німецький грецький гаїтянський креольський давньоєврейську хінді угорський ісландський індонезієць ірландський італійський японський корейський латиська литовець македонець малайський мальтійський норвежець
перс полірування португальська румунський російська сербський словацький словенський іспанська суахілі шведську мову тайський турецька український урду в'єтнамський валлійський ідиш бенгальський боснійський
кебуано есперанто гуджараті хауса хмонг ігбо яванський каннада кхмерская Лао латинь маорі маратхі монгольський непальська панджабі сомалійський тамільська телугу йоруба
зулуський
Англійська Французький Німецький Італійський Португальська Русский Іспанська