35 #define HOOK_FLG_GLOBAL_MASK 0xFFFF0000 39 #define HOOK_FLG_INTERNAL_MASK 0x0000FFFF 44 #define HOOK_FLG_REMOVE 0x80000000 45 #define HOOK_FLG_DISABLED 0x40000000 47 #define HOOK_FLG_CHAIN_DELETE 0x20000000 49 #define HOOK_FLG_PAGING_STRUCTURE 0x08000000 50 #define HOOK_FLG_PAE_ROOT 0x04000000 51 #define HOOK_FLG_PT_UM_ROOT 0x02000000 53 #define HOOK_FLG_HIGH_PRIORITY 0x01000000 57 #define HOOK_PAGE_TABLE_FLAGS (HOOK_FLG_PAGING_STRUCTURE|HOOK_FLG_PAE_ROOT|HOOK_FLG_PT_UM_ROOT)
BOOLEAN Dirty
Set whenever hooks are added or removed.
void * Context
User-defined data that will be supplied to the callback.
INTSTATUS IntHookInit(void)
Initialize the global hook system.
INTSTATUS IntHookRemoveChain(PHOOK_GPA HookGpa)
Removes a hook chain, starting with the given GPA hook.
struct _HOOK_STATE * PHOOK_STATE
HOOK_GVA_STATE GvaHooks
GVA hooks state.
INTSTATUS IntHookCommitAllHooks(void)
Commits all the hooks.
Used by the internal page monitor (used by PTS).
struct _HOOK_STATE HOOK_STATE
QWORD IntHookGetGlaFromGpaHook(HOOK_GPA const *Hook, QWORD Address)
Gets the GLA from a GPA hook.
BYTE EptHookType
The type of the hook in EPT (see IG_EPT_HOOK_TYPE)
An entire hook region, consisting of multiple GVA hooks.
int INTSTATUS
The status data type.
HOOK_STATE * gHooks
Global hooks state.
BYTE HookType
The type of the hook structure (see _HOOK_TYPE)
INTSTATUS IntHookUninit(void)
Uninit the global hooks system.
struct _HOOK_HEADER * PHOOK_HEADER
void * ParentHook
The parent hook. For a GPA hook, for example, a GVA hook or a PagedHook will be the parent hook...
HOOK_PTM_STATE PtmHooks
Page table monitoring (internal) state.
HOOK_GPA_STATE GpaHooks
GPA hooks state.
HOOK_OBJECT_STATE Objects
Object hooks state.
HOOK_PTS_STATE PtsHooks
PTS hooks state (public page-table monitoring).
struct _HOOK_HEADER HOOK_HEADER
Used by an internal page monitored using PTM.
Used by page-table hooks.
DWORD Flags
Generic flags. Check out EPT Hook flags.
Used by an internal page monitored using PTS.