VMX based mechanisms.  
More...
#include "pch.h"
VMX based mechanisms. 
- Author
- Sina Karvandi (sina@.nosp@m.hype.nosp@m.rdbg..nosp@m.org)
- Version
- 0.1 
- Date
- 2021-12-16
- Copyright
- This project is released under the GNU Public License v3. 
◆ VmxMechanismCreateImmediateVmexit()
Create an immediate vm-exit after vm-entry. 
- Parameters
- 
  
  
- Returns
- VOID 
   75{
   76    
   77    
   78    
   79    
   80    
   81    
   82 
   83    
   84    
   85    
   87 
   88    
   89    
   90    
   92 
   93    
   94    
   95    
   97}
#define TRUE
Definition BasicTypes.h:55
VOID HvSetExternalInterruptExiting(VIRTUAL_MACHINE_STATE *VCpu, BOOLEAN Set)
Set the External Interrupt Exiting.
Definition Hv.c:1055
VOID VmxMechanismCreateImmediateVmexitBySelfIpi()
Create an immediate vm-exit after vm-entry by using self-ipi.
Definition VmxMechanisms.c:59
BOOLEAN WaitForImmediateVmexit
Definition State.h:295
 
 
◆ VmxMechanismCreateImmediateVmexitBySelfIpi()
      
        
          | VOID VmxMechanismCreateImmediateVmexitBySelfIpi | ( |  | ) |  | 
      
 
Create an immediate vm-exit after vm-entry by using self-ipi. 
- Returns
- VOID 
   60{
   61    
   62    
   63    
   65}
VOID ApicSelfIpi(UINT32 Vector)
Self IPI the current core.
Definition Apic.c:114
#define IMMEDIATE_VMEXIT_MECHANISM_VECTOR_FOR_SELF_IPI
Definition VmxMechanisms.h:18
 
 
◆ VmxMechanismCreateImmediateVmexitByVmxPreemptionTimer()
      
        
          | VOID VmxMechanismCreateImmediateVmexitByVmxPreemptionTimer | ( |  | ) |  | 
      
 
Create an immediate vm-exit after vm-entry by using VMX Preemption Timer. 
- Returns
- VOID 
   21{
   22    
   23    
   24    
   26 
   27    
   28    
   29    
   30    
   31    
   33}
VOID CounterSetPreemptionTimer(UINT32 TimerValue)
Set the timer value for preemption timer.
Definition Counters.c:80
VOID HvSetVmxPreemptionTimerExiting(BOOLEAN Set)
Set the VMX preemption timer.
Definition Hv.c:989
 
 
◆ VmxMechanismDisableImmediateVmexitByVmxPreemptionTimer()
      
        
          | VOID VmxMechanismDisableImmediateVmexitByVmxPreemptionTimer | ( |  | ) |  | 
      
 
Disable the immediate vm-exit after vm-entry by using VMX Preemption Timer. 
- Returns
- VOID 
   43{
   45 
   46    
   47    
   48    
   50}
#define FALSE
Definition BasicTypes.h:54
VOID CounterClearPreemptionTimer()
Clears the preemption timer.
Definition Counters.c:94
 
 
◆ VmxMechanismHandleImmediateVmexit()
Handle immediate vm-exit after vm-entry. 
- Parameters
- 
  
    | VCpu | The virtual processor's state |  
 
- Returns
- VOID 
  107{
  108    
  109    
  110    
  112 
  113    
  114    
  115    
  117}