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.
 
 
 
 
 
 

91 lines
2.9 KiB

/*++
Copyright (c) 1992 Microsoft Corporation
Module Name:
symcvt.h
Abstract:
This file contains all of the type definitions and prototypes
necessary to access the symcvt library.
Author:
Wesley A. Witt (wesw) 19-April-1993
Environment:
Win32, User Mode
--*/
typedef struct tagPTRINFO {
DWORD size;
DWORD count;
PUCHAR ptr;
} PTRINFO, *PPTRINFO;
typedef struct tagIMAGEPOINTERS {
char szName[MAX_PATH];
HANDLE hFile;
BOOL CloseFile; // TRUE if symcvt opened file
HANDLE hMap;
DWORD fsize;
PUCHAR fptr;
BOOLEAN fRomImage;
PIMAGE_DOS_HEADER dosHdr;
PIMAGE_NT_HEADERS ntHdr;
PIMAGE_ROM_HEADERS romHdr;
PIMAGE_FILE_HEADER fileHdr;
PIMAGE_OPTIONAL_HEADER optHdr;
PIMAGE_SEPARATE_DEBUG_HEADER sepHdr;
int cDebugDir;
PIMAGE_DEBUG_DIRECTORY * rgDebugDir;
PIMAGE_SECTION_HEADER sectionHdrs;
PIMAGE_SECTION_HEADER debugSection;
PIMAGE_SYMBOL AllSymbols;
PUCHAR stringTable;
int numberOfSymbols;
int numberOfSections;
PCHAR * rgpbDebugSave;
} IMAGEPOINTERS, *PIMAGEPOINTERS;
#define COFF_DIR(x) ((x)->rgDebugDir[IMAGE_DEBUG_TYPE_COFF])
#define CV_DIR(x) ((x)->rgDebugDir[IMAGE_DEBUG_TYPE_CODEVIEW])
typedef struct _MODULEINFO {
DWORD iMod;
DWORD cb;
DWORD SrcModule;
LPSTR name;
} MODULEINFO, *LPMODULEINFO;
typedef struct tagPOINTERS {
IMAGEPOINTERS iptrs; // input file pointers
IMAGEPOINTERS optrs; // output file pointers
PTRINFO pCvStart; // start of cv info
PUCHAR pCvCurr; // current cv pointer
PTRINFO pCvModules; // module information
PTRINFO pCvSrcModules; // source module information
PTRINFO pCvPublics; // publics information
PTRINFO pCvSegName; // segment names
PTRINFO pCvSegMap; // segment map
PTRINFO pCvSymHash; // symbol hash table
PTRINFO pCvAddrSort; // address sort table
LPMODULEINFO pMi;
DWORD modcnt;
} POINTERS, *PPOINTERS;
typedef char * (* CONVERTPROC) (HANDLE, char *);
BOOL MapInputFile ( PPOINTERS p, HANDLE hFile, char *fname);
BOOL UnMapInputFile ( PPOINTERS p );
BOOL CalculateNtImagePointers( PIMAGEPOINTERS p );
#define align(_n) ((4 - (( (DWORD)_n ) % 4 )) & 3)
#include "heap.h"