| 1309 | } |
| 1310 | |
| 1311 | bool HandleRead(unsigned long long Pa) |
| 1312 | { |
| 1313 | unsigned long long Pa4Kb = ALIGN_DOWN_BY(Pa, PageSize); |
| 1314 | auto Handler = m_Handlers.find(Pa4Kb); |
| 1315 | if (Handler == m_Handlers.end()) |
| 1316 | { |
| 1317 | return false; |
| 1318 | } |
| 1319 | |
| 1320 | auto& Entry = Handler->second; |
| 1321 | auto PteEntry = Entry.Handlers.OnRead; |
| 1322 | if (!PteEntry.Value) |
| 1323 | { |
| 1324 | return false; |
| 1325 | } |
| 1326 | |
| 1327 | *Entry.Pte = PteEntry; |
| 1328 | invept(); |
| 1329 | |
| 1330 | return true; |
| 1331 | } |
| 1332 | |
| 1333 | bool HandleWrite(unsigned long long Pa, const void* NextInstruction) |
| 1334 | { |
no test coverage detected