|
| 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.