| 1526 | } |
| 1527 | |
| 1528 | void DeinterceptPage(unsigned long long PagePa) |
| 1529 | { |
| 1530 | Callable::DpcOnEachCpu([](void* Arg) |
| 1531 | { |
| 1532 | VMCALLS::VmmCall([](void* Arg) -> unsigned long long |
| 1533 | { |
| 1534 | auto Page = reinterpret_cast<unsigned long long>(Arg); |
| 1535 | g_Shared.Processors[KeGetCurrentProcessorNumber()].VmData->EptInterceptor->DeinterceptPage(Page); |
| 1536 | return 0; |
| 1537 | }, Arg); |
| 1538 | }, reinterpret_cast<void*>(PagePa)); |
| 1539 | } |
| 1540 | |
| 1541 | static unsigned long long ExtractSegmentBaseAddress(const SEGMENT_DESCRIPTOR_LONG* SegmentDescriptor) |
| 1542 | { |
no test coverage detected