mirror of
https://github.com/reactos/reactos.git
synced 2025-05-30 14:39:46 +00:00
[NDK]: Add all the definitions regarding VADs.
svn path=/trunk/; revision=48172
This commit is contained in:
parent
1ceb6d5850
commit
23e18538f1
1 changed files with 122 additions and 0 deletions
|
@ -171,6 +171,21 @@ typedef enum _SECTION_INFORMATION_CLASS
|
||||||
SectionImageInformation,
|
SectionImageInformation,
|
||||||
} SECTION_INFORMATION_CLASS;
|
} SECTION_INFORMATION_CLASS;
|
||||||
|
|
||||||
|
//
|
||||||
|
// Kinds of VADs
|
||||||
|
//
|
||||||
|
typedef enum _MI_VAD_TYPE
|
||||||
|
{
|
||||||
|
VadNone,
|
||||||
|
VadDevicePhysicalMemory,
|
||||||
|
VadImageMap,
|
||||||
|
VadAwe,
|
||||||
|
VadWriteWatch,
|
||||||
|
VadLargePages,
|
||||||
|
VadRotatePhysical,
|
||||||
|
VadLargePageSection
|
||||||
|
} MI_VAD_TYPE, *PMI_VAD_TYPE;
|
||||||
|
|
||||||
#ifdef NTOS_MODE_USER
|
#ifdef NTOS_MODE_USER
|
||||||
|
|
||||||
//
|
//
|
||||||
|
@ -614,6 +629,113 @@ typedef struct _MM_AVL_TABLE
|
||||||
PVOID NodeFreeHint;
|
PVOID NodeFreeHint;
|
||||||
} MM_AVL_TABLE, *PMM_AVL_TABLE;
|
} MM_AVL_TABLE, *PMM_AVL_TABLE;
|
||||||
|
|
||||||
|
//
|
||||||
|
// Virtual Adress List used in VADs
|
||||||
|
//
|
||||||
|
typedef struct _MMADDRESS_LIST
|
||||||
|
{
|
||||||
|
ULONG StartVpn;
|
||||||
|
ULONG EndVpn;
|
||||||
|
} MMADDRESS_LIST, *PMMADDRESS_LIST;
|
||||||
|
|
||||||
|
//
|
||||||
|
// Flags used in the VAD
|
||||||
|
//
|
||||||
|
typedef struct _MMVAD_FLAGS
|
||||||
|
{
|
||||||
|
ULONG CommitCharge:19;
|
||||||
|
ULONG NoChange:1;
|
||||||
|
ULONG VadType:3;
|
||||||
|
ULONG MemCommit:1;
|
||||||
|
ULONG Protection:5;
|
||||||
|
ULONG Spare:2;
|
||||||
|
ULONG PrivateMemory:1;
|
||||||
|
} MMVAD_FLAGS, *PMMVAD_FLAGS;
|
||||||
|
|
||||||
|
//
|
||||||
|
// Extended flags used in the VAD
|
||||||
|
//
|
||||||
|
typedef struct _MMVAD_FLAGS2
|
||||||
|
{
|
||||||
|
ULONG FileOffset:24;
|
||||||
|
ULONG SecNoChange:1;
|
||||||
|
ULONG OneSecured:1;
|
||||||
|
ULONG MultipleSecured:1;
|
||||||
|
ULONG ReadOnly:1;
|
||||||
|
ULONG LongVad:1;
|
||||||
|
ULONG ExtendableFile:1;
|
||||||
|
ULONG Inherit:1;
|
||||||
|
ULONG CopyOnWrite:1;
|
||||||
|
} MMVAD_FLAGS2, *PMMVAD_FLAGS2;
|
||||||
|
|
||||||
|
//
|
||||||
|
// Virtual Address Descriptor (VAD) Structure
|
||||||
|
//
|
||||||
|
typedef struct _MMVAD
|
||||||
|
{
|
||||||
|
union
|
||||||
|
{
|
||||||
|
LONG_PTR Balance:2;
|
||||||
|
struct _MMVAD *Parent;
|
||||||
|
} u1;
|
||||||
|
struct _MMVAD *LeftChild;
|
||||||
|
struct _MMVAD *RightChild;
|
||||||
|
ULONG StartingVpn;
|
||||||
|
ULONG EndingVpn;
|
||||||
|
union
|
||||||
|
{
|
||||||
|
ULONG LongFlags;
|
||||||
|
MMVAD_FLAGS VadFlags;
|
||||||
|
} u;
|
||||||
|
PCONTROL_AREA ControlArea;
|
||||||
|
PMMPTE FirstPrototypePte;
|
||||||
|
PMMPTE LastContiguousPte;
|
||||||
|
union
|
||||||
|
{
|
||||||
|
ULONG LongFlags2;
|
||||||
|
MMVAD_FLAGS2 VadFlags2;
|
||||||
|
} u2;
|
||||||
|
} MMVAD, *PMMVAD;
|
||||||
|
|
||||||
|
//
|
||||||
|
// Long VAD used in section and private allocations
|
||||||
|
//
|
||||||
|
typedef struct _MMVAD_LONG
|
||||||
|
{
|
||||||
|
union
|
||||||
|
{
|
||||||
|
LONG_PTR Balance:2;
|
||||||
|
PMMVAD Parent;
|
||||||
|
} u1;
|
||||||
|
PMMVAD LeftChild;
|
||||||
|
PMMVAD RightChild;
|
||||||
|
ULONG StartingVpn;
|
||||||
|
ULONG EndingVpn;
|
||||||
|
union
|
||||||
|
{
|
||||||
|
ULONG LongFlags;
|
||||||
|
MMVAD_FLAGS VadFlags;
|
||||||
|
} u;
|
||||||
|
PCONTROL_AREA ControlArea;
|
||||||
|
PMMPTE FirstPrototypePte;
|
||||||
|
PMMPTE LastContiguousPte;
|
||||||
|
union
|
||||||
|
{
|
||||||
|
ULONG LongFlags2;
|
||||||
|
MMVAD_FLAGS2 VadFlags2;
|
||||||
|
} u2;
|
||||||
|
union
|
||||||
|
{
|
||||||
|
LIST_ENTRY List;
|
||||||
|
MMADDRESS_LIST Secured;
|
||||||
|
} u3;
|
||||||
|
union
|
||||||
|
{
|
||||||
|
PVOID Banked;
|
||||||
|
PMMEXTEND_INFO ExtendedInfo;
|
||||||
|
} u4;
|
||||||
|
} MMVAD_LONG, *PMMVAD_LONG;
|
||||||
|
|
||||||
//
|
//
|
||||||
// Actual Section Object
|
// Actual Section Object
|
||||||
//
|
//
|
||||||
|
|
Loading…
Reference in a new issue