1、发一个 Win32 下的磁盘扇区读写、分区信息管理工具Syntax:DSPTW Disk Start Sectors /S|/R|/C FileName /YDisk: 0-First Hard Disk, 1-Second Hard Disk, . / 0 为第一硬盘,1 为第二硬盘 .A:, B:, C:, .d:n e.g. 0:1, 0:2, 0:3 . / 磁盘:分区 可以通过命令 dsptw disk /find:all 得到,disk 为 0.9Start: Disk Absolute Sector Number /起始扇区号, 扇区编号从开始Sectors: Total Sec
2、tors to be Processed /要处理的扇区数量/S: Save Disk Sector Info to File /保存扇区信息到文件/R: Restore Disk Sector Info from File /将文件内容写入扇区/C: Compare Disk Sector Info with File /将扇区信息与文件内容比较FileName: Disk Sector Info File /文件名/Y: Assume Yes on all Queries & not Display Copyright /对所有需要确认的回答为 Yes,并且不显示版权例子:dsptw 0
3、0 1 /s mbr0.bin 将第一硬盘的 MBR 信息保存到文件 mbr0.bindsptw C: 0 1 /s cboot.bin 保存 c 盘的引导区信息dsptw 0:2 20 100 /s 100.bin 保存第一硬盘第二分区的第 20 号扇区开始 100 个扇区的内容到 100.binDSPTW Disk Start Sectors /L /P /A/L: List Disk Sector Info on Screen /显示扇区内容/P: Pause echo Screen /满屏暂停/A: Show ASC Value /显示 ASC 码例子:dsptw 0 0 1 /l /
4、p /a 显示第一硬盘第 0 扇区开始的 1 个扇区内容,即 mbr 信息DSPTW Disk Start Sectors /E /Y/E: Erase Disk Sector Info /清除扇区信息,将扇区信息全部写入 0例子:dsptw 0 1 62 /e 将第一硬盘第一扇区开始的 62 个扇区清零 DSPTW Disk Start Sectors /D|/O DstDisk Offset /Y/D: Duplicate Disk Sector Info from Disk to DstDisk. /磁盘扇区复制/O: Compare Disk Sector Info with DstD
5、isk /磁盘扇区比较DstDisk: 0-First Hard Disk, 1-Second Hard Disk, . /目标盘A:, B:, C:, D: .Offset: Disk Absolute Sector Number /目标磁盘扇区起始位置例子:dsptw c: 10 20 /D d: 15 将 c:盘第 10 号扇区开始的 20 扇区复制到 d:盘,复制起始位置为第 15 号扇开始的 20 个扇区dsptw c: 10 20 /O d: 15 将 c:盘第 10 号扇区开始的 20 扇区与到 d:盘起始位置为第 15 号扇开始的 20 个扇区进行比较DSPTW Disk Se
6、ctorNo Offset /M /HEX:value /YSectorNo: Disk Absolute Sector Number. /扇区号Offset: The Offset in Specified Sector (0.511). /扇区内的偏移位置 0.511/M: Modify Disk Sector Info. /修改扇区内容/HEX: Hex Stytle. /十六进制格式value: Hex Digital String (No more than 32 characters). /不超过 32 个字符(16 字节)的十六进制字符串例子:dsptw 0 10 0 /m /h
7、ex:abcdef 将第一硬盘第 10 扇区内偏移位置 0 开始的 3 个字节修改为 0xab,0xcd,0xefDSPTW Disk /S|/R|/C FileName /YDisk: 0-First Hard disk, 1-Second Hard Disk, . /物理硬盘 0 为第一硬盘 ./S: Save Disk Partition Info to File. /保存分区链表到文件/R: Restore Disk Partiton Info from File. /从文件恢复分区链表/C: Compare Disk Partiton Info with File. /将分区链表和文
8、件比较FileName: Disk Partition Info File. /文件名例子:dsptw 0 /s pt0.bin 将第一硬盘的分区表信息保存文件 pt0.bindsptw 0 /c pt0.bin 将第一硬盘的分区表信息和文件 pt0.bin 比较dsptw 0 /s pt0.bin 从文件 pt0.bin 恢复第一硬盘的分区表信息DSPTW Disk /S FileName /DBR /Y/DBR: Save Partition Boot Record to File. /保存分区引导信息到文件例子:dsptw 0 /s dbr0.bin /dbr 将第一硬盘的 dbr 信息
9、保存到文件 dbr0.bin,dbr 为每个分区的第一个扇区保存 dbr 信息后可以通过命令 dsptw 0 /r dbr0.bin 进行恢复DSPTW Disk /L /A /EXT /Y/L: List Disk Partition Info on Screen. /显示磁盘分区信息/A: Get Accurate TotalSectors of Disk. /得到精确的磁盘总的扇区数量, (需要较多的时间)/Ext: Display Big Extend Partition. / 显示总的扩展分区例子:dsptw 0 /l 显示第一硬盘的分区信息DSPTW Disk /ACT:nActi
10、ve Disk Partition n. /分区激活例子:dsptw 0 /act:2 将第一硬盘第二分区激活,只有主分区才能被激活,分区号可通过命令 dsptw 0 /l 得到。DSPTW Disk /FIND:type /GhostStyle /Y/FIND: Find Disk Partition. /查找分区type: Can be FAT16/FAT32/FAT/NTFS/LINUX/ALL./GhostSytle: Display in Ghost Style, and Disk Start From 1. /为了兼容 ghost 而设定的参数,如果使用参数第一硬盘为 1 而不再是
11、 0例子:dsptw 0 /find:ntfs 查找所有第一硬盘的 ntfs 分区dsptw 1 /find:all /ghoststyle 查找第一硬盘的所有分区DSPTW Disk /MBR /NOBACK /Y/MBR: ReBuild Disk Main Boot Record. /重建主引导记录/NOBACK: Dont Backup old MBR. /不备份原主引导记录例子:dsptw 0 /mbr 重建第一硬盘的主引导记录,并备份原记录。DSPTW Disk /HIDE|/UNHIDE:n /YHide/Unhide Disk Partition n. /对分区进行隐藏和显示例
12、子:dsptw 0 /hide:2 隐藏第一硬盘第二分区 ,分区号可以通过命令 dsptw 0 /find:all 得到dsptw 0 /unhide:2 显示第一硬盘第二分区该命令执行后需要重新启动生效DSPTW Disk /DPS|/DPR|/DPC /Y/DPS: Save Disk Partition Info to Last Cluster. /将磁盘分区链表保存到磁盘最后几个扇区/DPR: Restore Disk Partiton Info from Last Cluster. /从磁盘最后扇区恢复分区链表/DPC: Compare Disk Partiton Info with
13、 Last Cluster. /将磁盘分区链表和磁盘最后扇区比较例子:dsptw 0 /dps 将分区链表保存到磁盘的最后扇区DSPTW Drive|/A /PDR /REVERSE /Y/PDR: Display Relationship of Partition & Drive (Ghost Style). /分区和盘符关系Drive: C:, D:, E . /A: Process All Drive. /处理所有磁盘/REVERSE: Display with a Reverse Order(Only when Switch “/A“ is used). /逆序显示例子:dsptw c
14、: /pdr 显示 C:的分区编号,完全和 ghost 一致dsptw /a /pdr 显示所有盘符的分区编号如果在批处理中使用程序返回的错误代码如下:#define SUCCESS 0#define READ_DISK_ERROR 1#define WRITE_DISK_ERROR 2#define OPEN_FILE_ERROR 3#define CREATE_FILE_ERROR 4#define READ_FILE_ERROR 5#define WRITE_FILE_ERROR 6#define FILE_SIZE_ERROR 7#define OPEN_DISK_ERROR 8#de
15、fine DISK_SEEK_ERROR 9#define FILE_SEEK_ERROR 10#define TOO_MANY_PARTITIONS 11#define PARTITION_NUMBER_ERROR 12#define PARTITION_CANNOT_BE_HIDDEN 13#define PARTITION_CANNOT_BE_UNHIDDEN 14#define ONLY_PRIMARY_PARTITION_CAN_BE_ACTIVE 15#define UNSURPPORT_PARTITION 16#define DISK_ERROR 17#define PARAME
16、TER_ERROR 18#define SECTORS_ERROR 19#define GHOST_DISK_ERROR 20#define BACKUP_MBR_FAIL 21#define USER_CANCEL 22#define PRINT_OK 100#define PROGRAM_NAME_ERROR 200#define START_POSITION_ERROR 201#define EXPIRED_DATE 202#define OPERATION_ERROR 203#define PROGRAM_SIZE_ERROR 204#define LIST_ERROR 205#define COMPARE_MISMATCH 206#define UNKNOWN_ERROR 1000