Bitdefender Hypervisor Memory Introspection
vecore.h
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2020 Bitdefender
3  * SPDX-License-Identifier: Apache-2.0
4  */
5 #ifndef _VECORE_H_
6 #define _VECORE_H_
7 
8 #include "thread_safeness.h"
9 
10 
13  _In_ DWORD CpuNumber
14  );
15 
18  void
19  );
20 
23  _In_ DWORD AgOpts
24  );
25 
26 QWORD
28  void
29  );
30 
31 BOOLEAN
33  _In_ QWORD Ptr,
34  _In_ THS_PTR_TYPE Type
35  );
36 
37 BOOLEAN
39  void
40  );
41 
43 IntVeInit(
44  void
45  );
46 
49  void
50  );
51 
52 void
54  void
55  );
56 
57 void
59  void
60  );
61 
64  _In_ IG_EPT_ACCESS AccessType,
65  _Out_ INTRO_ACTION *Action
66  );
67 
68 void
70  void
71  );
72 
75  _In_ QWORD Address,
76  _In_ BOOLEAN Monitored
77  );
78 
79 BOOLEAN
81  _In_ QWORD Gla
82  );
83 
84 #endif // _VECORE_H_
#define _Out_
Definition: intro_sal.h:22
_Bool BOOLEAN
Definition: intro_types.h:58
#define _In_
Definition: intro_sal.h:21
void IntVeDumpStats(void)
Dump VE statistics.
Definition: vecore.c:2719
INTSTATUS IntVeHandleHypercall(DWORD CpuNumber)
Handles hyper calls initiated by the VE agent.
Definition: vecore.c:1985
BOOLEAN IntVeIsCurrentRipInAgent(void)
Check if the current RIP points inside the VE agent.
Definition: vecore.c:2253
int INTSTATUS
The status data type.
Definition: introstatus.h:24
INTSTATUS IntVeUnInit(void)
Uninit the VE system.
Definition: vecore.c:2654
void IntVeHandleGuestResumeFromSleep(void)
Simply set the VeAgentWaiting variable to true if VE is enabled.
Definition: vecore.c:2787
INTSTATUS IntVeUpdateCacheEntry(QWORD Address, BOOLEAN Monitored)
Update an address inside the VE cache.
Definition: vecore.c:2799
unsigned long long QWORD
Definition: intro_types.h:53
INTSTATUS IntVeInit(void)
Initialize the VE system.
Definition: vecore.c:2493
INTSTATUS IntVeRemoveAgent(DWORD AgOpts)
Removes the VE agent from guest memory.
Definition: vecore.c:2116
INTSTATUS IntVeHandleEPTViolationInProtectedView(IG_EPT_ACCESS AccessType, INTRO_ACTION *Action)
Handle an EPT violation inside the protected EPT view.
Definition: vecore.c:234
uint32_t DWORD
Definition: intro_types.h:49
BYTE IG_EPT_ACCESS
Definition: glueiface.h:303
enum _INTRO_ACTION INTRO_ACTION
Event actions.
BOOLEAN IntVeIsPtrInAgent(QWORD Ptr, THS_PTR_TYPE Type)
Check if an address points inside the VE agent.
Definition: vecore.c:2214
THS_PTR_TYPE
The type of pointer to be checked.
BOOLEAN IntVeIsAgentRemapped(QWORD Gla)
Checks if a given guest linear address belongs to the VE agent.
Definition: vecore.c:2899
QWORD IntVeGetDriverAddress(void)
Gets the guest virtual address of the VE agent.
Definition: vecore.c:2200
INTSTATUS IntVeDeployAgent(void)
Inject the VE agent inside the guest.
Definition: vecore.c:2063
void IntVeDumpVeInfoPages(void)
Dumps the VE info pages on all VCPUs.
Definition: vecore.c:2698