Files
Work/image/VXDOBJ.HPP
2024-08-07 09:16:27 -04:00

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