Bitdefender Hypervisor Memory Introspection
_HOOK_PTS_ENTRY Struct Reference

#include <hook_pts.h>

Data Fields

HOOK_HEADER Header
 Hook header - must be present for every hook. More...
 
PHOOK_PTM PtPaHook
 
QWORD PtPaAddress
 Physical address of the PT/PD/PDP/PML4/PML5 entry associated to this particular page. More...
 
BOOLEAN PtPaHookSet
 True if a hook is placed on the PT entry. More...
 
BOOLEAN IsLeaf
 
BOOLEAN IsValid
 This referrers to the entry contained by this PTE. If true, it points to a valid table. More...
 
BOOLEAN IsPs
 True if this entry is a page size extension, and points to a 2M/4M/1G page. More...
 
BYTE EntrySize
 4 (32 bit paging) or 8 (PAE or 64 bit paging) More...
 
BYTE Level
 Page table level (1 - PT, 5 - PML5) More...
 
HOOK_PTEWS WriteState
 Write state. More...
 
LIST_ENTRY Link
 Link inside the containing list. More...
 
LIST_HEAD ChildrenEntries
 Children entries. Will be empty for leafs. Each entry is a HOOK_PTS_ENTRY. More...
 
LIST_HEAD ContextEntries
 The actual contexts. Each context will be a HOOK_PTS structure. More...
 
DWORD RefCount
 Number of references. More...
 
WORD EntryOffset
 Entry offset inside the monitored page-table. More...
 

Detailed Description

Describes one page table entry hook. Please note that "Page Table" is being generically referred to, as it may be any level page table (PT, PD, PDP, PML4, PML5). Each monitored page-table entry will have exactly one such structure attached. If multiple virtual addresses which translate through this entry are monitored, the ref count will simply be incremented accordingly.

Definition at line 57 of file hook_pts.h.

Field Documentation

◆ ChildrenEntries

LIST_HEAD _HOOK_PTS_ENTRY::ChildrenEntries

Children entries. Will be empty for leafs. Each entry is a HOOK_PTS_ENTRY.

Definition at line 72 of file hook_pts.h.

Referenced by IntHookPtsCreateEntry(), and IntHookPtsSetHook().

◆ ContextEntries

LIST_HEAD _HOOK_PTS_ENTRY::ContextEntries

The actual contexts. Each context will be a HOOK_PTS structure.

Definition at line 73 of file hook_pts.h.

Referenced by IntHookPtsCreateEntry(), IntHookPtsHandleModification(), and IntHookPtsSetHook().

◆ EntryOffset

WORD _HOOK_PTS_ENTRY::EntryOffset

Entry offset inside the monitored page-table.

Definition at line 75 of file hook_pts.h.

Referenced by IntHookPtsCreateEntry(), and IntHookPtsHandleModification().

◆ EntrySize

BYTE _HOOK_PTS_ENTRY::EntrySize

4 (32 bit paging) or 8 (PAE or 64 bit paging)

Definition at line 68 of file hook_pts.h.

Referenced by IntHookPtsCreateEntry(), IntHookPtsHandleModification(), and IntHookPtsWriteCallback().

◆ Header

HOOK_HEADER _HOOK_PTS_ENTRY::Header

Hook header - must be present for every hook.

Definition at line 59 of file hook_pts.h.

Referenced by IntHookPtsCleanupList(), IntHookPtsCreateEntry(), IntHookPtsRemoveHookInternal(), and IntHookPtsWriteCallback().

◆ IsLeaf

BOOLEAN _HOOK_PTS_ENTRY::IsLeaf

True if this is the last level of translation.

Definition at line 64 of file hook_pts.h.

Referenced by IntHookPtsCreateEntry(), and IntHookPtsSetHook().

◆ IsPs

BOOLEAN _HOOK_PTS_ENTRY::IsPs

True if this entry is a page size extension, and points to a 2M/4M/1G page.

Definition at line 67 of file hook_pts.h.

Referenced by IntHookPtsCreateEntry().

◆ IsValid

BOOLEAN _HOOK_PTS_ENTRY::IsValid

This referrers to the entry contained by this PTE. If true, it points to a valid table.

Definition at line 66 of file hook_pts.h.

Referenced by IntHookPtsCreateEntry().

◆ Level

BYTE _HOOK_PTS_ENTRY::Level

Page table level (1 - PT, 5 - PML5)

Definition at line 69 of file hook_pts.h.

Referenced by IntHookPtsCreateEntry().

◆ Link

LIST_ENTRY _HOOK_PTS_ENTRY::Link

Link inside the containing list.

Definition at line 71 of file hook_pts.h.

Referenced by IntHookPtsCreateEntry(), and IntHookPtsSetHook().

◆ PtPaAddress

QWORD _HOOK_PTS_ENTRY::PtPaAddress

Physical address of the PT/PD/PDP/PML4/PML5 entry associated to this particular page.

Definition at line 62 of file hook_pts.h.

Referenced by IntHookPtsCreateEntry(), IntHookPtsDump(), IntHookPtsFindEntry(), and IntHookPtsSetHook().

◆ PtPaHook

PHOOK_PTM _HOOK_PTS_ENTRY::PtPaHook

The PA hook on the PT/PD/PDP/PML4/PML5 entry.

Definition at line 60 of file hook_pts.h.

Referenced by IntHookPtsCreateEntry().

◆ PtPaHookSet

BOOLEAN _HOOK_PTS_ENTRY::PtPaHookSet

True if a hook is placed on the PT entry.

Definition at line 63 of file hook_pts.h.

Referenced by IntHookPtsCreateEntry().

◆ RefCount

DWORD _HOOK_PTS_ENTRY::RefCount

◆ WriteState


The documentation for this struct was generated from the following file: