| 2476 | } |
| 2477 | |
| 2478 | void InitHandlersTable() |
| 2479 | { |
| 2480 | for (auto i = 0u; i < ARRAYSIZE(HandlersTable); ++i) |
| 2481 | { |
| 2482 | HandlersTable[i] = EmptyHandler; |
| 2483 | } |
| 2484 | |
| 2485 | InsertHandler(VMX::VMX_EXIT_REASON::EXIT_REASON_CPUID , CpuidHandler); |
| 2486 | InsertHandler(VMX::VMX_EXIT_REASON::EXIT_REASON_XSETBV , XsetbvHandler); |
| 2487 | InsertHandler(VMX::VMX_EXIT_REASON::EXIT_REASON_EPT_VIOLATION, EptViolationHandler); |
| 2488 | InsertHandler(VMX::VMX_EXIT_REASON::EXIT_REASON_EPT_MISCONFIGURATION, EptMisconfigurationHandler); |
| 2489 | InsertHandler(VMX::VMX_EXIT_REASON::EXIT_REASON_MONITOR_TRAP_FLAG, MonitorTrapFlagHandler); |
| 2490 | InsertHandler(VMX::VMX_EXIT_REASON::EXIT_REASON_EXCEPTION_OR_NMI, ExceptionOrNmiHandler); |
| 2491 | InsertHandler(VMX::VMX_EXIT_REASON::EXIT_REASON_VMCALL , VmcallHandler); |
| 2492 | InsertHandler(VMX::VMX_EXIT_REASON::EXIT_REASON_RDMSR , RdmsrHandler); |
| 2493 | InsertHandler(VMX::VMX_EXIT_REASON::EXIT_REASON_WRMSR , WrmsrHandler); |
| 2494 | |
| 2495 | InsertHandler(VMX::VMX_EXIT_REASON::EXIT_REASON_VMCLEAR , VmxRelatedHandler); |
| 2496 | InsertHandler(VMX::VMX_EXIT_REASON::EXIT_REASON_VMLAUNCH, VmxRelatedHandler); |
| 2497 | InsertHandler(VMX::VMX_EXIT_REASON::EXIT_REASON_VMPTRLD , VmxRelatedHandler); |
| 2498 | InsertHandler(VMX::VMX_EXIT_REASON::EXIT_REASON_VMPTRST , VmxRelatedHandler); |
| 2499 | InsertHandler(VMX::VMX_EXIT_REASON::EXIT_REASON_VMREAD , VmxRelatedHandler); |
| 2500 | InsertHandler(VMX::VMX_EXIT_REASON::EXIT_REASON_VMWRITE , VmxRelatedHandler); |
| 2501 | InsertHandler(VMX::VMX_EXIT_REASON::EXIT_REASON_VMXOFF , VmxRelatedHandler); |
| 2502 | InsertHandler(VMX::VMX_EXIT_REASON::EXIT_REASON_VMXON , VmxRelatedHandler); |
| 2503 | InsertHandler(VMX::VMX_EXIT_REASON::EXIT_REASON_INVVPID , VmxRelatedHandler); |
| 2504 | InsertHandler(VMX::VMX_EXIT_REASON::EXIT_REASON_INVEPT , VmxRelatedHandler); |
| 2505 | |
| 2506 | _mm_sfence(); |
| 2507 | } |
| 2508 | } |
| 2509 | |
| 2510 | _IRQL_requires_same_ |
no test coverage detected