📄 mini.h
字号:
#include <stdio.h>
/*#include <windows.h>*/
/*#include "StdAfx.h"*/
#define MAXPATH 256
#define MAX_DRIVE_NUM 20
#define MAX_PARTITION_NUM 100
#define MAX_TASK_NUM 10
#define DEFAULT_EVERY_VOLUME_MB 2047 /* The byte maximum of every file is 2048<FAT16>,4096<FAT32> MBs in MS-DOS */
#define DEFAULT_COMPRESS_LEVEL 6
#define ARGUMENT_DISK 1
#define ARGUMENT_PARTITION 2
#define ARGUMENT_DOSLETTER 3
#define ARGUMENT_IMAGE 4
#define PRINT_DRIVE_ALL -2
#define PRINT_DRIVE_FLOPPY -3
#define PRINT_PARTITION_ALL 0
#define PRINT_PARTITION_DOSLETTER 1
#define PRINT_PARTITION_FAT 2
#define PRINT_PARTITION_NTFS 3
#define PRINT_PARTITION_FAT_NTFS 4
#define PRINT_PARTITION_LINUX 5
#define PRINT_PARTITION_NO_HIDDEN 6
#define PRINT_PARTITION_NO_ZERO 7
#define PRINT_PARTITION_NO_ZERO_HIDDEN 8
#define PRINT_PARTITION_FLOPPY 9
#define INVALID_INDEX -1
/*#define SWAP_FLAG -2 */
#define ALL_OR_THIS_TYPE -2
#define DISK_BUF_BYTE 65535
#define COMPRESS_DECOMPRESS_BUF_BYTE 65535
#define NTFSPRO 1
#define IFS 2
#define DPT 0
#define DBR 1
#define FAT 2
#define PRINTFILE 3
#define MAX_BUF_BYTE 65535
/*#define MAX_COMPRESS_BYTE 61440*/
#define MAX_SECTOR_BUF_BYTE /*64512 */ 61440
#define INVALID_MODE -1
#define INVALID_TARGET -1
#define SAVE 0
#define RESTORE 1
#define COMPARE 2
#define REPLACE 3
#define PRINT 4
#define MAX_FAT32_VOL_SEARCH 3UL
#define int13Error(a,b,c,d);
/*0x42,driveNum+127,start,int13Return); */
typedef struct driveInfo
{
char floppy;
/* char orderNumber; */
char number;
char supportExtInt13;
unsigned long maxCylinder;
unsigned long maxHead;
unsigned long maxSectorPerTrack;
unsigned long totalSector;
unsigned long part;
}Dinfo,*DinfoP;
typedef struct partitionInfo
{
char letterNumber;
char letter;
char WINletter;
/* char totalNumber; */
short hardDrive;
char number;
char logicDrive;
char active;
unsigned short activeOffset;
unsigned char ID;
unsigned short IDoffset;
char label[12];
unsigned long volumeSerialNumber;
unsigned long start;
unsigned long total;
unsigned long freeSpaceKB;
char error;
}Pinfo,*PinfoP;
typedef struct _commonArg
{
char argMode;
short drive;
char number;
char letter;
/* char WINletter;*/
short index;
unsigned long totalSector;
char startToDoTRUE;
unsigned long startToDoGiven;
unsigned long startToDo;
char sectorToDoTRUE;
unsigned long sectorToDo;
char name[256];
char compressDecompress;
char compressLevel;
char keyTRUE;
char separatedVolume;
unsigned long separatedMB;
char keyEveryTRUE;
char keyEveryPromptTRUE;
unsigned long size;
unsigned long realSize;
char continueUnfinished;
unsigned long lastPos;
unsigned long *lastDoneSector;
unsigned long *unfinishedSector;
unsigned long sectorToUnfinishedVolume;
char indexToAddName;
char addONE;
char quiet;
char mute;
char ignore;
char next;
}commonArg;
void help();
int readWriteDrive(unsigned int cmd,
char *devicePar,
unsigned long startSectorPar,
DWORD sectorToDo,
char *buf);
short absread(short drive,
unsigned long sectorToDo,
unsigned long startSector,
char *buf);
short abswrite(short drive,
unsigned long sectorToDo,
unsigned long startSector,
char *buf);
short extInt13(unsigned short cmd,
short drive,
unsigned long startSector,
unsigned long sectorToDo,
char *buf);
int compareByte(char *buf1,
char *buf2,
unsigned long byte,
char pause,
unsigned long *diff,
unsigned long *offsetAllRecord);
void getVolumeSerialNumber(Pinfo **part);
short putInWINletterVol(Pinfo *part[]);
void WINputInDiskFreeSpace(Pinfo *part[]);
void takeFS(char ID, char *FS, char *hidden);
short getDrive(short drive,
char *supportExtInt13,
unsigned long *maxCylinder,
unsigned long *maxHead,
unsigned long *maxSectorPerTrack,
unsigned long *totalSector,
char ignoreHDDparameter);
void getDriveTable(Dinfo *driveTable[], char useFloppy, char ignoreHDDparameter);
short putInDrivePartNum(Dinfo *driveTable[], Pinfo *partitionTable[]);
short getDriveItem(char drive,
Dinfo *driveTable[],
short *driveIndex);
short printDrive(Dinfo *driveTable[], Pinfo *partitionTable[], short index);
/*extern */void putInDOSletter(Pinfo *part[]);
void getPartitionTable(Dinfo *driveTable[], Pinfo *partP[]);
short printOption(char mode, Pinfo *partitionTable,char win);
void printPartitionTable(Pinfo *partition_Table[], char mode, short index, short printOneDrive,char win);
void putInDOSletter(Pinfo *part[]);
void putInExtraLetter(Pinfo *partitionTable[], char extraMode);
short getPartitionItem(short drive,
char partition,
Pinfo *partitionTable[],
short *index,
char win);
short printPartitionItem(Pinfo *partitionTable[], short index);
short extractFromStr(char *str, char separateCh, char *strSet[]);
short isNumber(char *str);
short getCommonArgFromArg(char *str,
Dinfo *driveTable[],
Pinfo *partitionTable[],
commonArg **arg,
char win);
short YesNo(char *s, char *filename);
short fopenFile(FILE **f, char rw, char *filename, char allVolumeEnd);
char getDOSletterFromFileName(char *file);
/*
void savePrintPartitionTable(Pinfo *pInfo[], short drive, char *file, char mode, char pause, char yes);
*/
UINT savePrintPartitionTable(LPVOID p);
/*
void restoreComparePrintPartitionTable(short drive, char *file, char mode, char pause, char yes);
*/
UINT restoreComparePrintPartitionTable(LPVOID p);
short getFATinfo(Pinfo **partitionTable,
/*short driveNum,
unsigned long startSector, */
commonArg *arg,
unsigned short *reservedSectorBeforeFAT,
unsigned long *FATsector,
char *FATcount);
/*
void doDPTDBRFAT(Pinfo **partitionTable, commonArg *arg, char mode, char target, char *file, char pause, char compress, char level, char yes);
*/
UINT doDPTDBRFAT(LPVOID p);
short DOSletterPartitionConverter(Dinfo *driveTable[], Pinfo *partitionTable[], char *str,char win);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -