Initial
This commit is contained in:
137
image/VXDOBJ.CPP
Normal file
137
image/VXDOBJ.CPP
Normal file
@@ -0,0 +1,137 @@
|
||||
#include <image/vxdobj.hpp>
|
||||
#include <common/pview.hpp>
|
||||
|
||||
VxDObject::VxDObject(void)
|
||||
{
|
||||
zeroInit();
|
||||
}
|
||||
|
||||
VxDObject::VxDObject(const VxDObject &someVxDObject)
|
||||
{
|
||||
*this=someVxDObject;
|
||||
}
|
||||
|
||||
VxDObject::~VxDObject()
|
||||
{
|
||||
}
|
||||
|
||||
VxDObject &VxDObject::operator=(const VxDObject &someVxDObject)
|
||||
{
|
||||
virtualSize(someVxDObject.virtualSize());
|
||||
relocationBaseAddress(someVxDObject.relocationBaseAddress());
|
||||
flags(someVxDObject.flags());
|
||||
pageTableIndex(someVxDObject.pageTableIndex());
|
||||
pageTableEntries(someVxDObject.pageTableEntries());
|
||||
reserved(someVxDObject.reserved());
|
||||
return *this;
|
||||
}
|
||||
|
||||
BOOL VxDObject::operator<<(PureViewOfFile &pureView)
|
||||
{
|
||||
if(!pureView.read(mVirtualSize))return FALSE;
|
||||
if(!pureView.read(mRelocationBaseAddress))return FALSE;
|
||||
if(!pureView.read(mFlags))return FALSE;
|
||||
if(!pureView.read(mPageTableIndex))return FALSE;
|
||||
if(!pureView.read(mPageTableEntries))return FALSE;
|
||||
if(!pureView.read(mReserved))return FALSE;
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
VxDObject::operator String(void)const
|
||||
{
|
||||
String strFlags;
|
||||
|
||||
if(has(Readable))strFlags+="Readable";
|
||||
if(has(Writeable)){if(!strFlags.isNull())strFlags+=",";strFlags+="Writeable";}
|
||||
if(has(Executable)){if(!strFlags.isNull())strFlags+=",";strFlags+="Executable";}
|
||||
if(has(Resource)){if(!strFlags.isNull())strFlags+=",";strFlags+="Resource";}
|
||||
if(has(Discardable)){if(!strFlags.isNull())strFlags+=",";strFlags+="Discardable";}
|
||||
if(has(Shared)){if(!strFlags.isNull())strFlags+=",";strFlags+="Shared";}
|
||||
if(has(HasPreloadPages)){if(!strFlags.isNull())strFlags+=",";strFlags+="HasPreloadPages";}
|
||||
if(has(HasInvalidPages)){if(!strFlags.isNull())strFlags+=",";strFlags+="HasInvalidPages";}
|
||||
if(has(HasZeroFilledPages)){if(!strFlags.isNull())strFlags+=",";strFlags+="HasZeroFilledPages";}
|
||||
if(has(IsResident)){if(!strFlags.isNull())strFlags+=",";strFlags+="IsResident";}
|
||||
if(has(IsResidentAndContiguous)){if(!strFlags.isNull())strFlags+=",";strFlags+="IsResidentAndContiguous";}
|
||||
if(has(IsResidentAndLongLockable)){if(!strFlags.isNull())strFlags+=",";strFlags+="IsResidentAndLongLockable";}
|
||||
if(has(Reserved)){if(!strFlags.isNull())strFlags+=",";strFlags+="Reserved";}
|
||||
if(has(Alias1616Required)){if(!strFlags.isNull())strFlags+=",";strFlags+="Alias1616Required";}
|
||||
if(has(Big)){if(!strFlags.isNull())strFlags+=",";strFlags+="Big";}
|
||||
if(has(IsCodeConforming)){if(!strFlags.isNull())strFlags+=",";strFlags+="IsCodeConforming";}
|
||||
if(has(IOPrivilegeLevel)){if(!strFlags.isNull())strFlags+=",";strFlags+="IOPrivilegeLevel";}
|
||||
return strFlags;
|
||||
}
|
||||
|
||||
DWORD VxDObject::virtualSize(void)const
|
||||
{
|
||||
return mVirtualSize;
|
||||
}
|
||||
|
||||
void VxDObject::virtualSize(DWORD virtualSize)
|
||||
{
|
||||
mVirtualSize=virtualSize;
|
||||
}
|
||||
|
||||
DWORD VxDObject::relocationBaseAddress(void)const
|
||||
{
|
||||
return mRelocationBaseAddress;
|
||||
}
|
||||
|
||||
void VxDObject::relocationBaseAddress(DWORD relocationBaseAddress)
|
||||
{
|
||||
mRelocationBaseAddress=relocationBaseAddress;
|
||||
}
|
||||
|
||||
DWORD VxDObject::flags(void)const
|
||||
{
|
||||
return mFlags;
|
||||
}
|
||||
|
||||
void VxDObject::flags(DWORD flags)
|
||||
{
|
||||
mFlags=flags;
|
||||
}
|
||||
|
||||
DWORD VxDObject::pageTableIndex(void)const
|
||||
{
|
||||
return mPageTableIndex;
|
||||
}
|
||||
|
||||
void VxDObject::pageTableIndex(DWORD pageTableIndex)
|
||||
{
|
||||
mPageTableIndex=pageTableIndex;
|
||||
}
|
||||
|
||||
DWORD VxDObject::pageTableEntries(void)const
|
||||
{
|
||||
return mPageTableEntries;
|
||||
}
|
||||
|
||||
void VxDObject::pageTableEntries(DWORD pageTableEntries)
|
||||
{
|
||||
mPageTableEntries=pageTableEntries;
|
||||
}
|
||||
|
||||
DWORD VxDObject::reserved(void)const
|
||||
{
|
||||
return mReserved;
|
||||
}
|
||||
|
||||
void VxDObject::reserved(DWORD reserved)
|
||||
{
|
||||
mReserved=reserved;
|
||||
}
|
||||
|
||||
BOOL VxDObject::has(Flags flagBit)const
|
||||
{
|
||||
return mFlags&(DWORD)flagBit;
|
||||
}
|
||||
|
||||
void VxDObject::zeroInit(void)
|
||||
{
|
||||
mVirtualSize=0;
|
||||
mRelocationBaseAddress=0;
|
||||
mFlags=0;
|
||||
mPageTableIndex=0;
|
||||
mPageTableEntries=0;
|
||||
mReserved=0;
|
||||
}
|
||||
Reference in New Issue
Block a user