SAVEPART 硬碟分割表 备份程式

Home Home
引用 | 编辑 upside
2006-12-15 20:17
楼主
推文 x0
SAVEPART 硬碟分割表 备份程式
这是早年在 DOS 下的备份程式
但是现在已经无法再使用了
所以想求 现在XP 系统分割表的位置
小弟就能设计出新版的 SAVEPART 硬碟分割表 备份程式

MAIN: ;
PUSH DS ;
POP ES ;
MOV AX,201H ; AH= 02H , AL=要读取的特定磁区数
MOV CX,1 ; CH= 磁轨 CL= 磁区
MOV DX,80H ; DH= 磁头号码 DL= 磁碟机号码
MOV BX,OFFSET ..

访客只能看到部份内容,免费 加入会员



献花 x0
引用 | 编辑 cmovies
2006-12-16 02:26
1楼
  
MBR(磁碟分割表)放的位置跟 XP 无关. 还是在 Cyl 0 Head 0 Sector 1 的位置.
但是在XP的DOS Box下无法使用INT13H来读取硬碟资料.
必须利用 Win32 API 的方式来读取, 在 NT/2K/XP 硬碟就像是一个特殊的档案.
hPhysicalDrive = CreateFile("\\\\.\\PhysicalDrive0",
                          GENERIC_READ | GENERIC_WRITE,
                          FILE_SHARE_READ | FILE_SHARE_WRITE,
                          0, OPEN_EXISTING, 0, 0 );
// Offset 0 = Cylinder 0, Head 0, Sector 1 = MBR
fResult = ReadFile(hPhysicalDrive, Buffer, 512, &BytesReturned, NULL);
CloseHandle(hPhysicalDrive);

献花 x1
引用 | 编辑 upside
2006-12-16 10:46
2楼
  
原来如此 自从开始玩windows 后就没研究这部份了
不过如此说来 如果使用DOS 来开机 那此软体仍然可使用啰
因为如果分割表损毁 也只能从 DOS 来恢复

献花 x0