windows-nt/Source/XPSP1/NT/base/mvdm/vdmutils/forcedos/pif.h

101 lines
2.4 KiB
C
Raw Normal View History

2020-09-26 03:20:57 -05:00
#pragma pack(1)
/*
* Structure and equates of PIF files
*/
#define PIFEDITMAXPIF 1024 /* maximum PIF file size we support */
#define PIFEDITMAXPIFL 1024L
#define PIFNAMESIZE 30
#define PIFSTARTLOCSIZE 63
#define PIFDEFPATHSIZE 64
#define PIFPARAMSSIZE 64
#define PIFSHPROGSIZE 64
#define PIFSHDATASIZE 64
#define PIFEXTSIGSIZE 16
#define PIFSIZE 367 /* two bytes less, this is used for checksum */
typedef struct {
char extsig[PIFEXTSIGSIZE];
unsigned short extnxthdrfloff;
unsigned short extfileoffset;
unsigned short extsizebytes;
} PIFEXTHEADER;
#define LASTHEADERPTR 0xFFFF
#define STDHDRSIG "MICROSOFT PIFEX"
#define W386HDRSIG "WINDOWS 386 3.0"
#define W286HDRSIG30 "WINDOWS 286 3.0"
#define WNTHDRSIG31 "WINDOWS NT 3.1"
typedef struct {
char unknown;
char id;
char name[PIFNAMESIZE];
short maxmem;
short minmem;
char startfile[PIFSTARTLOCSIZE];
char MSflags;
char reserved;
char defpath[PIFDEFPATHSIZE];
char params[PIFPARAMSSIZE];
char screen;
char cPages;
unsigned char lowVector;
unsigned char highVector;
char rows;
char cols;
char rowoff;
char coloff;
unsigned short sysmem;
char shprog[PIFSHPROGSIZE];
char shdata[PIFSHDATASIZE];
unsigned char behavior;
unsigned char sysflags;
PIFEXTHEADER stdpifext;
} PIFNEWSTRUCT;
typedef struct {
short maxmem;
short minmem;
unsigned short PfFPriority;
unsigned short PfBPriority;
short PfMaxEMMK;
unsigned short PfMinEMMK;
short PfMaxXmsK;
unsigned short PfMinXmsK;
unsigned long PfW386Flags;
unsigned long PfW386Flags2;
unsigned short PfHotKeyScan;
unsigned short PfHotKeyShVal;
unsigned short PfHotKeyShMsk;
unsigned char PfHotKeyVal;
unsigned char PfHotKeyPad[9];
char params[PIFPARAMSSIZE];
} PIF386EXT;
/* Windows NT extension format */
typedef struct
{
DWORD dwWNTFlags;
DWORD dwRes1;
DWORD dwRes2;
char achConfigFile[PIFDEFPATHSIZE];
char achAutoexecFile[PIFDEFPATHSIZE];
} PIFWNTEXT;
// equates for dwWNTFlags
#define NTPIF_SUBSYSMASK 0x0000000F // sub system type mask
#define SUBSYS_DEFAULT 0
#define SUBSYS_DOS 1
#define SUBSYS_WOW 2
#define SUBSYS_OS2 3
#define PIFWNTEXTSIZE sizeof(PIFWNTEXT)
#pragma pack()