source: trunk/include/winimagepe2lx.h@ 1566

Last change on this file since 1566 was 1327, checked in by bird, 26 years ago

Exception throwing is removed. Separate init method instead.

File size: 2.0 KB
RevLine 
[1327]1/* $Id: winimagepe2lx.h,v 1.3 1999-10-17 01:52:20 bird Exp $ */
[953]2
3/*
4 * Win32 PE2LX Image base class
5 *
6 * Copyright 1999 Sander van Leeuwen (sandervl@xs4all.nl)
[1274]7 * Copyright 1999 knut st. osmundsen (knut.stange.osmundsen@pmsc.no)
[953]8 *
9 * Project Odin Software License can be found in LICENSE.TXT
10 *
11 */
12#ifndef __WINIMAGEPE2LX_H__
13#define __WINIMAGEPE2LX_H__
14
15#include <winimagebase.h>
16
17
[1274]18/**
19 * Section struct - used to translate RVAs to pointers.
20 */
21typedef struct _Section
22{
23 ULONG ulRVA; /* RVA of section. If not a PE section ~0UL. */
24 ULONG cbVirtual; /* Virtual size (the larger of the physical and virtual) of the section. */
25 ULONG ulAddress; /* Current load address of the section. */
26} SECTION, *PSECTION;
[953]27
28
[1274]29
30/**
31 * Base class for Pe2lx (and Win32k) dlls. There is currently no difference between
32 * Pe2Lx and Win32k images, though the image on disk is different...
33 * @shortdesc Pe2Lx and Win32k base image class.
34 * @author knut st. osmundsen, Sander van Leeuwen
35 * @approval -
36 */
[953]37class Win32Pe2LxImage : public virtual Win32ImageBase
38{
39public:
[1274]40 /** @cat constructor and destructor */
[1327]41 Win32Pe2LxImage(HINSTANCE hinstance, BOOL fWin32k);
[1274]42 virtual ~Win32Pe2LxImage();
[1327]43 virtual BOOL init();
[953]44
[1274]45private:
46 /** @cat constructor helpers */
47 ULONG getSections();
48 ULONG setSectionRVAs();
49 VOID cleanup();
[953]50
51protected:
[1274]52 /** @cat RVA -> pointer */
53 /* this should be moved to winimagebase some day... */
54 PVOID getPointerFromRVA(ULONG ulRVA);
[953]55
[1274]56 PSECTION paSections; /* Used by getPointerFromRVA and created by getSections and
57 * setSectionRVAs. */
58 WORD cSections; /* Count of entires in the section array (paSection) */
[953]59
[1274]60 /** @cat Misc */
61 PIMAGE_NT_HEADERS pNtHdrs; /* Pointer to NT headers. */
62 BOOL fWin32k; /* flag which indicates wether this is a Win32k loaded
63 * module (TRUE) or and Pe2Lx module (FALSE). */
64};
[953]65
66
67#endif //__WINIMAGEPE2LX_H__
68
Note: See TracBrowser for help on using the repository browser.