SetFilePointer по \\.\PhysicalDrive0
- From
- Alexei Duzhiy (2:5006/24.2)
- To
- All ()
- Date
- 2003-01-22T21:59:14Z
- Area
- SU.WINDOWS.NT.PROG
Привет, All!
Правлю исходники bochs 2.0 чтобы он работал с физ. диском под NT. Формула для
расчета номера сектора там такая:
logical_sector = (BX_SELECTED_CONTROLLER(channel).cylinder_no *
BX_SELECTED_DRIVE(channel).hard_drive->heads *
BX_SELECTED_DRIVE(channel).hard_drive->sectors) +
(BX_SELECTED_CONTROLLER(channel).head_no *
BX_SELECTED_DRIVE(channel).hard_drive->sectors) +
(BX_SELECTED_CONTROLLER(channel).sector_no - 1);
потом с полученым числом:
LARGE_INTEGER off64;
off64.QuadPart = offset*512;
::SetFilePointer((void*)fd, off64.LowPart, &off64.HighPart, whence);
и в результате корректно видится только начало диска. Как правильно высчитать
сектор из CHS ?
Alexei
... "Я знаю не больше чем написано в даташите,
--- поскольку лично данный контролер не применял." (q) AT
* Origin: (2:5006/24.2)