50 lines
1.5 KiB
C++
50 lines
1.5 KiB
C++
#ifndef _IMAGE_VXDOBJECT_HPP_
|
|
#define _IMAGE_VXDOBJECT_HPP_
|
|
#ifndef _COMMON_WINDOWS_HPP_
|
|
#include <common/windows.hpp>
|
|
#endif
|
|
#ifndef _COMMON_STRING_HPP_
|
|
#include <common/string.hpp>
|
|
#endif
|
|
|
|
class PureViewOfFile;
|
|
|
|
class VxDObject
|
|
{
|
|
public:
|
|
enum Flags{Readable=0x0001,Writeable=0x0002,Executable=0x0004,Resource=0x0008,Discardable=0x0010,
|
|
Shared=0x0020,HasPreloadPages=0x0040,HasInvalidPages=0x0080,HasZeroFilledPages=0x0100,
|
|
IsResident=0x0200,IsResidentAndContiguous=0x0300,IsResidentAndLongLockable=0x0400,
|
|
Reserved=0x0800,Alias1616Required=0x1000,Big=0x2000,IsCodeConforming=0x4000,
|
|
IOPrivilegeLevel=0x8000};
|
|
VxDObject(void);
|
|
VxDObject(const VxDObject &someVxDObject);
|
|
virtual ~VxDObject();
|
|
VxDObject &operator=(const VxDObject &someVxDObject);
|
|
BOOL operator<<(PureViewOfFile &pureView);
|
|
operator String(void)const;
|
|
DWORD virtualSize(void)const;
|
|
void virtualSize(DWORD virtualSize);
|
|
DWORD relocationBaseAddress(void)const;
|
|
void relocationBaseAddress(DWORD relocationBaseAddress);
|
|
DWORD flags(void)const;
|
|
void flags(DWORD flags);
|
|
DWORD pageTableIndex(void)const;
|
|
void pageTableIndex(DWORD pageTableIndex);
|
|
DWORD pageTableEntries(void)const;
|
|
void pageTableEntries(DWORD pageTableEntries);
|
|
DWORD reserved(void)const;
|
|
void reserved(DWORD reserved);
|
|
BOOL has(Flags flagBit)const;
|
|
private:
|
|
void zeroInit(void);
|
|
|
|
DWORD mVirtualSize;
|
|
DWORD mRelocationBaseAddress;
|
|
DWORD mFlags;
|
|
DWORD mPageTableIndex;
|
|
DWORD mPageTableEntries;
|
|
DWORD mReserved;
|
|
};
|
|
#endif
|