HyperPlatform Programmer's Reference
Classes | Functions
ept.h File Reference

Declares interfaces to EPT functions. More...

#include <fltKernel.h>
Include dependency graph for ept.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

union  EptCommonEntry
 A structure made up of mutual fields across all EPT entry types. More...
 

Functions

bool EptIsEptAvailable ()
 Checks if the system supports EPT technology sufficient enough. More...
 
ULONG64 EptGetEptPointer (_In_ EptData *ept_data)
 Returns an EPT pointer from ept_data. More...
 
void EptInitializeMtrrEntries ()
 Reads and stores all MTRRs to set a correct memory type for EPT. More...
 
EptDataEptInitialization ()
 Builds EPT, allocates pre-allocated entires, initializes and returns EptData. More...
 
void EptTermination (_In_ EptData *ept_data)
 De-allocates ept_data and all resources referenced in it. More...
 
void EptHandleEptViolation (_In_ EptData *ept_data)
 Handles VM-exit triggered by EPT violation. More...
 
EptCommonEntryEptGetEptPtEntry (_In_ EptData *ept_data, _In_ ULONG64 physical_address)
 Returns an EPT entry corresponds to physical_address. More...
 

Detailed Description

Declares interfaces to EPT functions.

Definition in file ept.h.

Function Documentation

◆ EptGetEptPointer()

ULONG64 EptGetEptPointer ( _In_ EptData ept_data)

Returns an EPT pointer from ept_data.

Parameters
ept_dataEptData to get an EPT pointer
Returns
An EPT pointer

◆ EptGetEptPtEntry()

EptCommonEntry* EptGetEptPtEntry ( _In_ EptData ept_data,
_In_ ULONG64  physical_address 
)

Returns an EPT entry corresponds to physical_address.

Parameters
ept_dataEptData to get an EPT entry
physical_addressPhysical address to get an EPT entry
Returns
An EPT entry, or nullptr if not allocated yet

◆ EptHandleEptViolation()

void EptHandleEptViolation ( _In_ EptData ept_data)

Handles VM-exit triggered by EPT violation.

Parameters
ept_dataEptData to get an EPT pointer

◆ EptInitialization()

EptData* EptInitialization ( )

Builds EPT, allocates pre-allocated entires, initializes and returns EptData.

Returns
An allocated EptData on success, or nullptr

A driver must call EptTermination() with a returned value when this function succeeded.

Definition at line 399 of file ept.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ EptInitializeMtrrEntries()

void EptInitializeMtrrEntries ( )

Reads and stores all MTRRs to set a correct memory type for EPT.

Definition at line 193 of file ept.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ EptIsEptAvailable()

bool EptIsEptAvailable ( )

Checks if the system supports EPT technology sufficient enough.

Returns
true if the system supports EPT

Definition at line 163 of file ept.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ EptTermination()

void EptTermination ( _In_ EptData ept_data)

De-allocates ept_data and all resources referenced in it.

Parameters
ept_dataA returned value of EptInitialization()