|
|
1.1 root 1: /*++
2:
3:
4: Copyright (c) 1992 Microsoft Corporation
5:
6: Module Name:
7:
8: symcvt.h
9:
10: Abstract:
11:
12: This file contains all of the type definitions and prototypes
13: necessary to access the symcvt library.
14:
15: Author:
16:
17: Wesley A. Witt (wesw) 19-April-1993
18:
19: Environment:
20:
21: Win32, User Mode
22:
23: --*/
24:
25:
26: typedef struct tagPTRINFO {
27: DWORD size;
28: DWORD count;
29: PUCHAR ptr;
30: } PTRINFO, *PPTRINFO;
31:
32: typedef struct tagIMAGEPOINTERS {
33: char szName[MAX_PATH];
34: HANDLE hFile;
35: HANDLE hMap;
36: DWORD fsize;
37: PUCHAR fptr;
38: PIMAGE_DOS_HEADER dosHdr;
39: PIMAGE_NT_HEADERS ntHdr;
40: PIMAGE_FILE_HEADER fileHdr;
41: PIMAGE_OPTIONAL_HEADER optHdr;
42: PIMAGE_SEPARATE_DEBUG_HEADER sepHdr;
43: int cDebugDir;
44: PIMAGE_DEBUG_DIRECTORY * rgDebugDir;
45: PIMAGE_SECTION_HEADER sectionHdrs;
46: PIMAGE_SECTION_HEADER debugSection;
47: PIMAGE_SYMBOL AllSymbols;
48: PUCHAR stringTable;
49: int numberOfSymbols;
50: int numberOfSections;
51: PCHAR * rgpbDebugSave;
52: } IMAGEPOINTERS, *PIMAGEPOINTERS;
53:
54: #define COFF_DIR(x) ((x)->rgDebugDir[IMAGE_DEBUG_TYPE_COFF])
55: #define CV_DIR(x) ((x)->rgDebugDir[IMAGE_DEBUG_TYPE_CODEVIEW])
56:
57: typedef struct tagPOINTERS {
58: IMAGEPOINTERS iptrs; // input file pointers
59: IMAGEPOINTERS optrs; // output file pointers
60: PTRINFO pCvStart; // start of cv info
61: PUCHAR pCvCurr; // current cv pointer
62: PTRINFO pCvModules; // module information
63: PTRINFO pCvPublics; // publics information
64: PTRINFO pCvSegName; // segment names
65: PTRINFO pCvSegMap; // segment map
66: PTRINFO pCvSymHash; // symbol hash table
67: PTRINFO pCvAddrSort; // address sort table
68: } POINTERS, *PPOINTERS;
69:
70: typedef char * (* CONVERTPROC) (HANDLE, char *);
71:
72: BOOL MapInputFile ( PPOINTERS p, HANDLE hFile, char *fname);
73: BOOL UnMapInputFile ( PPOINTERS p );
74: BOOL CalculateNtImagePointers( PIMAGEPOINTERS p );
75:
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.