|
static memory_type | EptpGetMemoryType (_In_ ULONG64 physical_address) |
|
static EptCommonEntry * | EptpConstructTables (_In_ EptCommonEntry *table, _In_ ULONG table_level, _In_ ULONG64 physical_address, _In_opt_ EptData *ept_data) |
|
static void | EptpDestructTables (_In_ EptCommonEntry *table, _In_ ULONG table_level) |
|
static EptCommonEntry * | EptpAllocateEptEntry (_In_opt_ EptData *ept_data) |
|
static EptCommonEntry * | EptpAllocateEptEntryFromPreAllocated (_In_ EptData *ept_data) |
|
static EptCommonEntry * | EptpAllocateEptEntryFromPool () |
|
static void | EptpInitTableEntry (_In_ EptCommonEntry *Entry, _In_ ULONG table_level, _In_ ULONG64 physical_address) |
|
static ULONG64 | EptpAddressToPxeIndex (_In_ ULONG64 physical_address) |
|
static ULONG64 | EptpAddressToPpeIndex (_In_ ULONG64 physical_address) |
|
static ULONG64 | EptpAddressToPdeIndex (_In_ ULONG64 physical_address) |
|
static ULONG64 | EptpAddressToPteIndex (_In_ ULONG64 physical_address) |
|
static bool | EptpIsDeviceMemory (_In_ ULONG64 physical_address) |
|
static EptCommonEntry * | EptpGetEptPtEntry (_In_ EptCommonEntry *table, _In_ ULONG table_level, _In_ ULONG64 physical_address) |
|
static void | EptpFreeUnusedPreAllocatedEntries (_Pre_notnull_ __drv_freesMem(Mem) EptCommonEntry **preallocated_entries, _In_ long used_count) |
|
bool | EptIsEptAvailable () |
| Checks if the system supports EPT technology sufficient enough. More...
|
|
ULONG64 | EptGetEptPointer (EptData *ept_data) |
|
void | EptInitializeMtrrEntries () |
| Reads and stores all MTRRs to set a correct memory type for EPT. More...
|
|
static memory_type | EptpGetMemoryType (ULONG64 physical_address) |
|
EptData * | EptInitialization () |
| Builds EPT, allocates pre-allocated entires, initializes and returns EptData. More...
|
|
static EptCommonEntry * | EptpConstructTables (EptCommonEntry *table, ULONG table_level, ULONG64 physical_address, EptData *ept_data) |
|
static EptCommonEntry * | EptpAllocateEptEntry (EptData *ept_data) |
|
static EptCommonEntry * | EptpAllocateEptEntryFromPreAllocated (EptData *ept_data) |
|
static void | EptpInitTableEntry (EptCommonEntry *entry, ULONG table_level, ULONG64 physical_address) |
|
static ULONG64 | EptpAddressToPxeIndex (ULONG64 physical_address) |
|
static ULONG64 | EptpAddressToPpeIndex (ULONG64 physical_address) |
|
static ULONG64 | EptpAddressToPdeIndex (ULONG64 physical_address) |
|
static ULONG64 | EptpAddressToPteIndex (ULONG64 physical_address) |
|
void | EptHandleEptViolation (EptData *ept_data) |
|
static bool | EptpIsDeviceMemory (ULONG64 physical_address) |
|
EptCommonEntry * | EptGetEptPtEntry (EptData *ept_data, ULONG64 physical_address) |
|
static EptCommonEntry * | EptpGetEptPtEntry (EptCommonEntry *table, ULONG table_level, ULONG64 physical_address) |
|
void | EptTermination (EptData *ept_data) |
|
static void | EptpFreeUnusedPreAllocatedEntries (EptCommonEntry **preallocated_entries, long used_count) |
|
static void | EptpDestructTables (EptCommonEntry *table, ULONG table_level) |
|
Implements EPT functions.
Definition in file ept.cpp.