Windows NT 4.0 source code leak
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

196 lines
7.7 KiB

/***********************************************************************
* Microsoft (R) Debugging Information Dumper
*
* Copyright (C) Microsoft Corp 1987-1995. All rights reserved.
*
* File: symrec.h
*
* File Comments:
*
***********************************************************************/
typedef struct BLKSYMTYPE // Obsolete
{
unsigned char reclen; /* Record length */
unsigned char rectyp; /* Record type */
unsigned long off; /* Offset in code seg */
unsigned short len; /* Block length */
char name[1]; /* Length-prefixed name */
} BLKSYMTYPE;
typedef struct PROCSYMTYPE // Obsolete
{
unsigned char reclen; /* Record length */
unsigned char rectyp; /* Record type */
unsigned long off; /* Offset in code seg */
unsigned short typind; /* Type index */
unsigned short len; /* Proc length */
unsigned short startoff; /* Debug start offset */
unsigned short endoff; /* Debug end offset */
short res; /* Reserved */
char rtntyp; /* Return type (NEAR/FAR) */
char name[1]; /* Length-prefixed name */
} PROCSYMTYPE;
typedef struct WITHSYMTYPE // Obsolete
{
unsigned char reclen; /* Record length */
unsigned char rectyp; /* Record type */
unsigned long off; /* Offset in code seg */
unsigned short len; /* Length of scope */
char name[1]; /* String to be evaluated */
} WITHSYMTYPE;
typedef struct BPSYMTYPE
{
unsigned char reclen; /* Record length */
unsigned char rectyp; /* Record type */
unsigned long off; /* BP-relative offset */
unsigned short typind; /* Type index */
char name[1]; /* Length-prefixed name */
} BPSYMTYPE;
typedef struct LABSYMTYPE //Obsolete
{
unsigned char reclen; /* Record length */
unsigned char rectyp; /* Record type */
unsigned long off; /* Offset in code seg */
char rtntyp; /* Return type (NEAR/FAR) */
char name[1]; /* Length-prefixed name */
} LABSYMTYPE;
typedef struct LOCSYMTYPE
{
unsigned char reclen; /* Record length */
unsigned char rectyp; /* Record type */
unsigned long off; /* Offset in segment */
unsigned short seg; /* Segment address */
unsigned short typind; /* Type index */
char name[1]; /* Length-prefixed name */
} LOCSYMTYPE;
typedef struct REGSYMTYPE
{
unsigned char reclen; /* Record length */
unsigned char rectyp; /* Record type */
unsigned short typind; /* Type index */
char reg; /* Which register */
char name[1]; /* Length-prefixed name */
} REGSYMTYPE;
typedef struct CONSYMTYPE
{
unsigned char reclen; /* Record length */
unsigned char rectyp; /* Record type */
unsigned short typind; /* Type index */
char value[1]; /* Variable-length value */
char name[1]; /* Length-prefixed name */
} CONSYMTYPE;
typedef struct TYPEDEFSYMTYPE
{
unsigned char reclen; /* Record length */
unsigned char rectyp; /* Record type */
unsigned short typind; /* Type index */
char name[1]; /* Length-prefixed name */
} TYPEDEFSYMTYPE;
typedef struct CV4PROCSYMTYPE
{
unsigned char reclen; /* Record length */
unsigned char rectyp; /* Record type */
unsigned long parentsym; /* Offset of sym of enclosing proc */
unsigned long endsym; /* matching end */
unsigned long nextsym; /* Sym of closest following proc */
unsigned long off; /* Offset in code seg */
unsigned short seg; /* Seg of proc */
unsigned short typind; /* Type index */
unsigned long len; /* Proc length */
unsigned long startoff; /* Debug start offset */
unsigned long endoff; /* Debug end offset */
char rtntyp; /* Return type (NEAR/FAR) */
char name[1]; /* Length-prefixed name */
} CV4PROCSYMTYPE;
typedef struct THUNKSYMTYPE
{
unsigned char reclen; /* Record length */
unsigned char rectyp; /* Record type */
unsigned long parentsym; /* Offset of sym of enclosing proc */
unsigned long endsym; /* matching end */
unsigned long nextsym; /* Sym of closest following proc */
char ord; /* Type of thunk */
unsigned long off; /* Offset in code seg */
unsigned short seg; /* Seg of proc */
unsigned short len; /* Thunk length */
char name[1]; /* Thunk name */
union {
struct {
short delta; /* Size of adjustment */
char name[1]; /* Name of target function */
} adjustor;
short vtaboff; /* Offset into the vtable */
} variant;
} THUNKSYMTYPE;
typedef struct CV4BLKSYMTYPE
{
unsigned char reclen; /* Record length */
unsigned char rectyp; /* Record type */
unsigned long parentsym; /* Offset of sym of enclosing proc */
unsigned long endsym; /* matching end */
unsigned long off; /* Offset in code seg */
unsigned short seg; /* Segment of code */
unsigned long len; /* Block length */
char name[1]; /* Length-prefixed name */
} CV4BLKSYMTYPE;
typedef struct CV4WITHSYMTYPE
{
unsigned char reclen; /* Record length */
unsigned char rectyp; /* Record type */
unsigned long parentsym; /* Offset of sym of enclosing proc */
unsigned long endsym; /* matching end */
unsigned long off; /* Offset in code seg */
unsigned short seg; /* Segment of code */
unsigned long len; /* Length of scope */
char name[1]; /* String to be evaluated */
} CV4WITHSYMTYPE;
typedef struct CV4LABSYMTYPE
{
unsigned char reclen; /* Record length */
unsigned char rectyp; /* Record type */
unsigned long off; /* Offset in code seg */
unsigned short seg; /* Segment of code */
char rtntyp; /* Return type (NEAR/FAR) */
char name[1]; /* Length-prefixed name */
} CV4LABSYMTYPE;
typedef struct CV4CHANGESYMTYPE
{
unsigned char reclen; /* Record length */
unsigned char rectyp; /* Record type */
unsigned long off; /* Offset in code seg */
unsigned short seg; /* Segment of code */
char model; /* Execution model to change to */
char var[1]; /* Variant info (unspecified) */
} CV4CHANGESYMTYPE;
/* Far pointer definitions */
typedef BLKSYMTYPE *BLKSYMPTR; // Obsolete
typedef CONSYMTYPE *CONSYMPTR;
typedef REGSYMTYPE *REGSYMPTR;
typedef LOCSYMTYPE *LOCSYMPTR;
typedef LABSYMTYPE *LABSYMPTR; // Obsolete
typedef BPSYMTYPE *BPSYMPTR;
typedef WITHSYMTYPE *WITHSYMPTR; // Obsolete
typedef PROCSYMTYPE *PROCSYMPTR; // Obsolete
typedef TYPEDEFSYMTYPE *TYPEDEFSYMPTR;
typedef CV4PROCSYMTYPE *CV4PROCSYMPTR;
typedef THUNKSYMTYPE *THUNKSYMPTR;
typedef CV4BLKSYMTYPE *CV4BLKSYMPTR;
typedef CV4WITHSYMTYPE *CV4WITHSYMPTR;
typedef CV4LABSYMTYPE *CV4LABSYMPTR;
typedef CV4CHANGESYMTYPE *CV4CHANGESYMPTR;