96 lines
3.1 KiB
C
96 lines
3.1 KiB
C
|
/*++
|
||
|
|
||
|
|
||
|
Copyright 1996 - 1997 Microsoft Corporation
|
||
|
|
||
|
Module Name:
|
||
|
|
||
|
symcvt.h
|
||
|
|
||
|
Abstract:
|
||
|
|
||
|
This file contains all of the type definitions and prototypes
|
||
|
necessary to access the symcvt library.
|
||
|
|
||
|
Environment:
|
||
|
|
||
|
Win32, User Mode
|
||
|
|
||
|
--*/
|
||
|
|
||
|
|
||
|
typedef struct tagPTRINFO {
|
||
|
DWORD size;
|
||
|
DWORD count;
|
||
|
PUCHAR ptr;
|
||
|
} PTRINFO, *PPTRINFO;
|
||
|
|
||
|
typedef struct tagIMAGEPOINTERS {
|
||
|
char szName[MAX_PATH];
|
||
|
HANDLE hFile;
|
||
|
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 *);
|
||
|
|
||
|
#define align(_n) ((4 - (( (DWORD)_n ) % 4 )) & 3)
|
||
|
|
||
|
#ifdef _SYMCVT_SOURCE_
|
||
|
#define SYMCVTAPI
|
||
|
#else
|
||
|
#define SYMCVTAPI DECLSPEC_IMPORT
|
||
|
#endif
|
||
|
|
||
|
PUCHAR SYMCVTAPI ConvertSymbolsForImage( HANDLE, char * );
|
||
|
BOOL SYMCVTAPI ConvertCoffToCv( PPOINTERS p );
|
||
|
BOOL SYMCVTAPI ConvertSymToCv( PPOINTERS p );
|
||
|
BOOL SYMCVTAPI MapInputFile ( PPOINTERS p, HANDLE hFile, char *fname);
|
||
|
BOOL SYMCVTAPI UnMapInputFile ( PPOINTERS p );
|
||
|
BOOL SYMCVTAPI CalculateNtImagePointers( PIMAGEPOINTERS p );
|
||
|
|
||
|
|