|
HyperDbg Debugger
|
Implementation of exported functions from hypervisor. More...
#include "pch.h"Functions | |
| VOID | VmFuncPerformRipIncrement (UINT32 CoreId) |
| Perform the incrementation of RIP. | |
| VOID | VmFuncSuppressRipIncrement (UINT32 CoreId) |
| Suppress the incrementation of RIP. | |
| VOID | VmFuncChangeMtfUnsettingState (UINT32 CoreId, BOOLEAN Set) |
| Suppress unsetting MTF. | |
| VOID | VmFuncChangeIgnoreOneMtfState (UINT32 CoreId, BOOLEAN Set) |
| Change ignore one MTF state. | |
| VOID | VmFuncSetInstrumentationStepInState (UINT32 CoreId) |
| Set instrumentation step in MTF (used for single stepping with MTF). | |
| VOID | VmFuncUnsetInstrumentationStepInState (UINT32 CoreId) |
| Unset instrumentation step in MTF (used for single stepping with MTF). | |
| BOOLEAN | VmFuncQueryInstrumentationStepInState (UINT32 CoreId) |
| Query instrumentation step in MTF state. | |
| VOID | VmFuncSetMonitorTrapFlag (BOOLEAN Set) |
| Set the monitor trap flag. | |
| VOID | VmFuncSetRflagTrapFlag (BOOLEAN Set) |
| Set Rflag's trap flag. | |
| VOID | VmFuncSetLoadDebugControls (UINT32 CoreId, BOOLEAN Set) |
| Set LOAD DEBUG CONTROLS on Vm-entry controls. | |
| VOID | VmFuncSetLoadGuestIa32LbrCtl (UINT32 CoreId, BOOLEAN Set) |
| Set LOAD GUEST IA32_LBR_CTL on Vm-entry controls. | |
| VOID | VmFuncSetSaveDebugControls (UINT32 CoreId, BOOLEAN Set) |
| Set SAVE DEBUG CONTROLS on Vm-exit controls. | |
| VOID | VmFuncSetClearGuestIa32LbrCtl (UINT32 CoreId, BOOLEAN Set) |
| Set CLEAR GUEST IA32_LBR_CTL on Vm-exit controls. | |
| VOID | VmFuncSetPmcVmexit (BOOLEAN Set) |
| Set vm-exit for rdpmc instructions. | |
| VOID | VmFuncSetMovControlRegsExiting (BOOLEAN Set, UINT64 ControlRegister, UINT64 MaskRegister) |
| Set vm-exit for mov-to-cr0/4. | |
| VOID | VmFuncSetMovToCr3Vmexit (UINT32 CoreId, BOOLEAN Set) |
| Set vm-exit for mov-to-cr3. | |
| VOID | VmFuncWriteExceptionBitmap (UINT32 BitmapMask) |
| Write on exception bitmap in VMCS DO NOT CALL IT DIRECTLY, instead use HvSetExceptionBitmap. | |
| UINT32 | VmFuncReadExceptionBitmap () |
| Read exception bitmap in VMCS. | |
| VOID | VmFuncSetInterruptWindowExiting (BOOLEAN Set) |
| Set Interrupt-window exiting. | |
| VOID | VmFuncSetNmiWindowExiting (BOOLEAN Set) |
| Set NMI-window exiting. | |
| VOID | VmFuncSetNmiExiting (BOOLEAN Set) |
| Set the NMI Exiting. | |
| VOID | VmFuncSetExceptionBitmap (UINT32 CoreId, UINT32 IdtIndex) |
| Set exception bitmap in VMCS. | |
| VOID | VmFuncUnsetExceptionBitmap (UINT32 CoreId, UINT32 IdtIndex) |
| Unset exception bitmap in VMCS. | |
| VOID | VmFuncSetExternalInterruptExiting (UINT32 CoreId, BOOLEAN Set) |
| Set the External Interrupt Exiting. | |
| VOID | VmFuncSetRdtscExiting (UINT32 CoreId, BOOLEAN Set) |
| Set the RDTSC/P Exiting. | |
| VOID | VmFuncSetMovDebugRegsExiting (UINT32 CoreId, BOOLEAN Set) |
| Set or unset the Mov to Debug Registers Exiting. | |
| UINT64 | VmFuncGetLastVmexitRip (UINT32 CoreId) |
| get the last vm-exit RIP | |
| VOID | VmFuncInjectPendingExternalInterrupts (UINT32 CoreId) |
| Inject pending external interrupts. | |
| UINT16 | VmFuncGetCsSelector () |
| Read CS selector. | |
| UINT64 | VmFuncGetRflags () |
| Read guest's RFLAGS. | |
| VOID | VmFuncSetRflags (UINT64 Rflags) |
| Set guest's RFLAGS. | |
| UINT64 | VmFuncGetRip () |
| Read guest's RIP. | |
| VOID | VmFuncSetRip (UINT64 Rip) |
| Set guest's RIP. | |
| UINT64 | VmFuncGetDebugctl () |
| Get the guest state of IA32_DEBUGCTL. | |
| UINT64 | VmFuncGetDebugctlVmcallOnTargetCore () |
| Get the guest state of IA32_DEBUGCTL on the target core from VMCS using VMCALL. | |
| UINT64 | VmFuncGetGuestIa32LbrCtl () |
| Get the guest state of IA32_LBR_CTL. | |
| UINT64 | VmFuncGetGuestIa32LbrCtlVmcallOnTargetCore () |
| Get the guest state of IA32_LBR_CTL on the target core from VMCS. | |
| BOOLEAN | VmFuncCheckCpuSupportForSaveAndLoadDebugControls () |
| Check if CPU support save and load debug controls on exit and load entries. | |
| BOOLEAN | VmFuncCheckCpuSupportForLoadAndClearGuestIa32LbrCtlControls () |
| Check if CPU support load and clear guest IA32_LBR_CTL controls on VM-entry and VM-exit. | |
| VOID | VmFuncSetDebugctl (UINT64 Value) |
| Set the guest state of IA32_DEBUGCTL. | |
| VOID | VmFuncSetDebugctlVmcallOnTargetCore (UINT64 Value) |
| Set the guest state of IA32_DEBUGCTL on the target core from VMCS using VMCALL. | |
| VOID | VmFuncSetGuestIa32LbrCtl (UINT64 Value) |
| Set the guest state of IA32_LBR_CTL. | |
| VOID | VmFuncSetGuestIa32LbrCtlVmcallOnTargetCore (UINT64 Value) |
| Set the guest state of IA32_LBR_CTL on the target core from VMCS using VMCALL. | |
| VOID | VmFuncSetLbrSelect (UINT64 FilterOptions) |
| Set the guest state of MSR_LEGACY_LBR_SELECT. | |
| VOID | VmFuncSetLbrSelectVmcallOnTargetCore (UINT64 FilterOptions) |
| Set the guest state of MSR_LEGACY_LBR_SELECT on the target core from VMCS using VMCALL. | |
| VOID | VmFuncSetLoadDebugControlsVmcallOnTargetCore (BOOLEAN Set) |
| Set LOAD DEBUG CONTROLS on VM-entry controls on the target core from VMCS using VMCALL. | |
| VOID | VmFuncSetLoadGuestIa32LbrCtlVmcallOnTargetCore (BOOLEAN Set) |
| Set LOAD GUEST IA32_LBR_CTL on VM-entry controls on the target core from VMCS using VMCALL. | |
| VOID | VmFuncSetSaveDebugControlsVmcallOnTargetCore (BOOLEAN Set) |
| Set SAVE DEBUG CONTROLS on VM-exit controls on the target core from VMCS using VMCALL. | |
| VOID | VmFuncSetClearGuestIa32LbrCtlVmcallOnTargetCore (BOOLEAN Set) |
| Set CLEAR GUEST IA32_LBR_CTL on VM-exit controls on the target core from VMCS using VMCALL. | |
| VOID | VmFuncSetDebugReg7 (UINT64 Value) |
| Set the guest state of DR7. | |
| UINT64 | VmFuncGetInterruptibilityState () |
| Read guest's interruptibility state. | |
| UINT64 | VmFuncClearSteppingBits (UINT64 Interruptibility) |
| Clear STI and MOV SS bits. | |
| VOID | VmFuncSetInterruptibilityState (UINT64 InterruptibilityState) |
| Set guest's interruptibility state. | |
| BOOLEAN | VmFuncNmiBroadcastRequest (UINT32 CoreId) |
| Broadcast NMI requests. | |
| BOOLEAN | VmFuncNmiBroadcastInvalidateEptSingleContext (UINT32 CoreId) |
| Broadcast NMI requests for single-context EPT invalidation. | |
| BOOLEAN | VmFuncNmiBroadcastInvalidateEptAllContexts (UINT32 CoreId) |
| Broadcast NMI requests for all contexts EPT invalidation. | |
| VOID | VmFuncInvalidateEptSingleContext (UINT32 CoreId) |
| Requests for single-context EPT invalidation. | |
| VOID | VmFuncInvalidateEptAllContexts () |
| Requests for all contexts EPT invalidation. | |
| VOID | VmFuncCheckAndEnableExternalInterrupts (UINT32 CoreId) |
| Check and enable external interrupts. | |
| VOID | VmFuncDisableExternalInterruptsAndInterruptWindow (UINT32 CoreId) |
| Disable external-interrupts and interrupt window. | |
| BOOLEAN | VmFuncInitVmm (VMM_CALLBACKS *VmmCallbacks) |
| Initializes hypervisor. | |
| VOID | VmFuncUninitVmm () |
| Uninitialize Terminate Vmx on all logical cores. | |
| BOOLEAN | VmFuncVmxGetCurrentExecutionMode () |
| Get the current VMX operation state. | |
| BOOLEAN | VmFuncQueryModeExecTrap () |
| Get the current state of mode exec trap mechanism. | |
| VOID | VmFuncSetTriggerEventForVmcalls (BOOLEAN Set) |
| Set triggering events for VMCALLs. | |
| VOID | VmFuncSetTriggerEventForCpuids (BOOLEAN Set) |
| Set triggering events for CPUIDs. | |
| VOID | VmFuncSetTriggerEventForXsetbvs (BOOLEAN Set) |
| Set trigger event for XSETBVs. | |
| UINT32 | VmFuncVmxCompatibleStrlen (const CHAR *s) |
| VMX-root compatible strlen. | |
| UINT32 | VmFuncVmxCompatibleWcslen (const WCHAR *s) |
| VMX-root compatible strlen. | |
| VOID | VmFuncVmxCompatibleMicroSleep (UINT64 Us) |
| VMX-root compatible micro sleep. | |
| VOID | VmFuncEventInjectPageFaultWithCr2 (UINT32 CoreId, UINT64 Address, UINT32 PageFaultCode) |
| Inject #PF and configure CR2 register. | |
| VOID | VmFuncEventInjectPageFaultRangeAddress (UINT32 CoreId, UINT64 AddressFrom, UINT64 AddressTo, UINT32 PageFaultCode) |
| Inject a range of page-faults. | |
| VOID | VmFuncEventInjectInterruption (UINT32 InterruptionType, UINT32 Vector, BOOLEAN DeliverErrorCode, UINT32 ErrorCode) |
| Inject interrupt/faults/exceptions. | |
| NTSTATUS | VmFuncVmxVmcall (UINT64 VmcallNumber, UINT64 OptionalParam1, UINT64 OptionalParam2, UINT64 OptionalParam3) |
| Export for running VMX VMCALLs. | |
| VOID | VmFuncVmxBroadcastInitialize () |
| Export for initialize the VMX Broadcast mechanism. | |
| VOID | VmFuncVmxBroadcastUninitialize () |
| Export for uninitialize the VMX Broadcast mechanism. | |
| VOID | VmFuncEventInjectBreakpoint () |
| Inject #BP to the guest (Event Injection). | |
| INT32 | VmFuncVmxCompatibleStrcmp (const CHAR *Address1, const CHAR *Address2) |
| VMX-root compatible strcmp. | |
| INT32 | VmFuncVmxCompatibleStrncmp (const CHAR *Address1, const CHAR *Address2, SIZE_T Num) |
| VMX-root compatible strncmp. | |
| INT32 | VmFuncVmxCompatibleWcscmp (const WCHAR *Address1, const WCHAR *Address2) |
| VMX-root compatible wcscmp. | |
| INT32 | VmFuncVmxCompatibleWcsncmp (const WCHAR *Address1, const WCHAR *Address2, SIZE_T Num) |
| VMX-root compatible wcsncmp. | |
| INT32 | VmFuncVmxCompatibleMemcmp (const CHAR *Address1, const CHAR *Address2, SIZE_T Count) |
| VMX-root compatible memcmp. | |
| VOID | VmFuncEnableMtfAndChangeExternalInterruptState (UINT32 CoreId) |
| Enables MTF and adjust external interrupt state. | |
| VOID | VmFuncEnableAndCheckForPreviousExternalInterrupts (UINT32 CoreId) |
| Checks to enable and reinject previous interrupts. | |
| BOOLEAN | VmFuncApicStoreLocalApicFields (PLAPIC_PAGE LocalApicBuffer, PBOOLEAN IsUsingX2APIC) |
| Store the details Local APIC in xapic or x2apic modes. | |
| BOOLEAN | VmFuncApicStoreIoApicFields (IO_APIC_ENTRY_PACKETS *IoApicPackets) |
| Store the details of I/O APIC. | |
| VOID | VmFuncIdtQueryEntries (PINTERRUPT_DESCRIPTOR_TABLE_ENTRIES_PACKETS IdtQueryRequest, BOOLEAN ReadFromVmxRoot) |
| Perform query for IDT entries. | |
| BOOLEAN | VmFuncSmmPerformSmiOperation (SMI_OPERATION_PACKETS *SmiOperationRequest, BOOLEAN ApplyFromVmxRootMode) |
| Perform actions related to System Management Interrupts (SMIs). | |
Implementation of exported functions from hypervisor.
| BOOLEAN VmFuncApicStoreIoApicFields | ( | IO_APIC_ENTRY_PACKETS * | IoApicPackets | ) |
Store the details of I/O APIC.
| IoApicPackets |
| BOOLEAN VmFuncApicStoreLocalApicFields | ( | PLAPIC_PAGE | LocalApicBuffer, |
| PBOOLEAN | IsUsingX2APIC ) |
Store the details Local APIC in xapic or x2apic modes.
| LocalApicBuffer | |
| IsUsingX2APIC |
Change ignore one MTF state.
| CoreId | Target core's ID |
| Set | State of setting or unsetting |
Suppress unsetting MTF.
| CoreId | Target core's ID |
| Set | State of setting or unsetting |
| VOID VmFuncCheckAndEnableExternalInterrupts | ( | UINT32 | CoreId | ) |
Check and enable external interrupts.
| CoreId | Target core's ID |
| BOOLEAN VmFuncCheckCpuSupportForLoadAndClearGuestIa32LbrCtlControls | ( | ) |
Check if CPU support load and clear guest IA32_LBR_CTL controls on VM-entry and VM-exit.
| BOOLEAN VmFuncCheckCpuSupportForSaveAndLoadDebugControls | ( | ) |
Check if CPU support save and load debug controls on exit and load entries.
| UINT64 VmFuncClearSteppingBits | ( | UINT64 | Interruptibility | ) |
Clear STI and MOV SS bits.
| VOID VmFuncDisableExternalInterruptsAndInterruptWindow | ( | UINT32 | CoreId | ) |
Disable external-interrupts and interrupt window.
| CoreId |
| VOID VmFuncEnableAndCheckForPreviousExternalInterrupts | ( | UINT32 | CoreId | ) |
Checks to enable and reinject previous interrupts.
| CoreId |
| VOID VmFuncEnableMtfAndChangeExternalInterruptState | ( | UINT32 | CoreId | ) |
Enables MTF and adjust external interrupt state.
| CoreId |
| VOID VmFuncEventInjectBreakpoint | ( | ) |
Inject #BP to the guest (Event Injection).
| VOID VmFuncEventInjectInterruption | ( | UINT32 | InterruptionType, |
| UINT32 | Vector, | ||
| BOOLEAN | DeliverErrorCode, | ||
| UINT32 | ErrorCode ) |
Inject interrupt/faults/exceptions.
| InterruptionType | |
| Vector | |
| DeliverErrorCode | |
| ErrorCode |
| VOID VmFuncEventInjectPageFaultRangeAddress | ( | UINT32 | CoreId, |
| UINT64 | AddressFrom, | ||
| UINT64 | AddressTo, | ||
| UINT32 | PageFaultCode ) |
Inject a range of page-faults.
| CoreId | Target core's ID |
| AddressFrom | Page-fault address (from) |
| AddressTo | Page-fault address (to) |
| Address | Page-fault address |
| PageFaultCode | Page-fault error code |
Inject #PF and configure CR2 register.
| CoreId | Target core's ID |
| Address | Page-fault address |
| PageFaultCode | Page-fault error code |
| UINT64 VmFuncGetDebugctl | ( | ) |
Get the guest state of IA32_DEBUGCTL.
| UINT64 VmFuncGetDebugctlVmcallOnTargetCore | ( | ) |
Get the guest state of IA32_DEBUGCTL on the target core from VMCS using VMCALL.
| UINT64 VmFuncGetGuestIa32LbrCtl | ( | ) |
Get the guest state of IA32_LBR_CTL.
| UINT64 VmFuncGetGuestIa32LbrCtlVmcallOnTargetCore | ( | ) |
Get the guest state of IA32_LBR_CTL on the target core from VMCS.
| UINT64 VmFuncGetInterruptibilityState | ( | ) |
Read guest's interruptibility state.
| UINT64 VmFuncGetLastVmexitRip | ( | UINT32 | CoreId | ) |
get the last vm-exit RIP
| CoreId | Target core's ID |
| UINT64 VmFuncGetRflags | ( | ) |
Read guest's RFLAGS.
| UINT64 VmFuncGetRip | ( | ) |
| VOID VmFuncIdtQueryEntries | ( | PINTERRUPT_DESCRIPTOR_TABLE_ENTRIES_PACKETS | IdtQueryRequest, |
| BOOLEAN | ReadFromVmxRoot ) |
Perform query for IDT entries.
| IdtQueryRequest | |
| ReadFromVmxRoot |
| BOOLEAN VmFuncInitVmm | ( | VMM_CALLBACKS * | VmmCallbacks | ) |
| VOID VmFuncInjectPendingExternalInterrupts | ( | UINT32 | CoreId | ) |
Inject pending external interrupts.
| CoreId | Target core's ID |
| VOID VmFuncInvalidateEptAllContexts | ( | ) |
Requests for all contexts EPT invalidation.
| VOID VmFuncInvalidateEptSingleContext | ( | UINT32 | CoreId | ) |
Requests for single-context EPT invalidation.
| CoreId | Target core's ID |
Broadcast NMI requests for all contexts EPT invalidation.
| CoreId | Target core's ID |
Broadcast NMI requests for single-context EPT invalidation.
| CoreId | Target core's ID |
Broadcast NMI requests.
| CoreId | Target core's ID |
| VOID VmFuncPerformRipIncrement | ( | UINT32 | CoreId | ) |
Perform the incrementation of RIP.
| CoreId | Target core's ID |
| BOOLEAN VmFuncQueryModeExecTrap | ( | ) |
Get the current state of mode exec trap mechanism.
| UINT32 VmFuncReadExceptionBitmap | ( | ) |
Read exception bitmap in VMCS.
Should be called in vmx-root
Set CLEAR GUEST IA32_LBR_CTL on Vm-exit controls.
| CoreId | target core id |
| Set | Set or unset |
| VOID VmFuncSetClearGuestIa32LbrCtlVmcallOnTargetCore | ( | BOOLEAN | Set | ) |
Set CLEAR GUEST IA32_LBR_CTL on VM-exit controls on the target core from VMCS using VMCALL.
| Set | Set or unset |
| VOID VmFuncSetDebugctl | ( | UINT64 | Value | ) |
Set the guest state of IA32_DEBUGCTL.
| Value |
| VOID VmFuncSetDebugctlVmcallOnTargetCore | ( | UINT64 | Value | ) |
Set the guest state of IA32_DEBUGCTL on the target core from VMCS using VMCALL.
| Value |
| VOID VmFuncSetDebugReg7 | ( | UINT64 | Value | ) |
Set the guest state of DR7.
| Value |
Set exception bitmap in VMCS.
Should be called in vmx-root
| CoreId | Target core's ID |
| IdtIndex | Interrupt Descriptor Table index of exception |
Set the External Interrupt Exiting.
| CoreId | Target core's ID |
| Set | Set or unset the External Interrupt Exiting |
| VOID VmFuncSetGuestIa32LbrCtl | ( | UINT64 | Value | ) |
Set the guest state of IA32_LBR_CTL.
| Value |
| VOID VmFuncSetGuestIa32LbrCtlVmcallOnTargetCore | ( | UINT64 | Value | ) |
Set the guest state of IA32_LBR_CTL on the target core from VMCS using VMCALL.
| Value |
| VOID VmFuncSetInstrumentationStepInState | ( | UINT32 | CoreId | ) |
Set instrumentation step in MTF (used for single stepping with MTF).
| CoreId | Target core's ID |
| VOID VmFuncSetInterruptibilityState | ( | UINT64 | InterruptibilityState | ) |
Set guest's interruptibility state.
| InterruptibilityState |
| VOID VmFuncSetInterruptWindowExiting | ( | BOOLEAN | Set | ) |
Set Interrupt-window exiting.
| Set | Set or unset the Interrupt-window exiting |
| VOID VmFuncSetLbrSelect | ( | UINT64 | FilterOptions | ) |
Set the guest state of MSR_LEGACY_LBR_SELECT.
| FilterOptions |
| VOID VmFuncSetLbrSelectVmcallOnTargetCore | ( | UINT64 | FilterOptions | ) |
Set the guest state of MSR_LEGACY_LBR_SELECT on the target core from VMCS using VMCALL.
| FilterOptions |
Set LOAD DEBUG CONTROLS on Vm-entry controls.
| CoreId | target core id |
| Set | Set or unset |
| VOID VmFuncSetLoadDebugControlsVmcallOnTargetCore | ( | BOOLEAN | Set | ) |
Set LOAD DEBUG CONTROLS on VM-entry controls on the target core from VMCS using VMCALL.
| Set | Set or unset |
Set LOAD GUEST IA32_LBR_CTL on Vm-entry controls.
| CoreId | target core id |
| Set | Set or unset |
| VOID VmFuncSetLoadGuestIa32LbrCtlVmcallOnTargetCore | ( | BOOLEAN | Set | ) |
Set LOAD GUEST IA32_LBR_CTL on VM-entry controls on the target core from VMCS using VMCALL.
| Set | Set or unset |
| VOID VmFuncSetMonitorTrapFlag | ( | BOOLEAN | Set | ) |
Set the monitor trap flag.
| Set | Set or unset the MTFs |
| VOID VmFuncSetMovControlRegsExiting | ( | BOOLEAN | Set, |
| UINT64 | ControlRegister, | ||
| UINT64 | MaskRegister ) |
Set vm-exit for mov-to-cr0/4.
Should be called in vmx-root
| Set | or unset the vm-exits |
| Control | Register |
| Mask | Register |
Set or unset the Mov to Debug Registers Exiting.
| CoreId | Target core's ID |
| Set | Set or unset the Mov to Debug Registers Exiting |
Set vm-exit for mov-to-cr3.
Should be called in vmx-root
| CoreId | target core id |
| Set | Set or unset the vm-exits |
| VOID VmFuncSetNmiExiting | ( | BOOLEAN | Set | ) |
Set the NMI Exiting.
| Set | Set or unset the NMI Exiting |
| VOID VmFuncSetNmiWindowExiting | ( | BOOLEAN | Set | ) |
Set NMI-window exiting.
| Set | Set or unset the NMI-window exiting |
| VOID VmFuncSetPmcVmexit | ( | BOOLEAN | Set | ) |
Set vm-exit for rdpmc instructions.
Should be called in vmx-root
| Set | Set or unset the vm-exits |
Set the RDTSC/P Exiting.
| CoreId | Target core's ID |
| Set | Set or unset the RDTSC/P Exiting |
| VOID VmFuncSetRflags | ( | UINT64 | Rflags | ) |
| VOID VmFuncSetRflagTrapFlag | ( | BOOLEAN | Set | ) |
Set Rflag's trap flag.
| Set | Set or unset the TF |
| VOID VmFuncSetRip | ( | UINT64 | Rip | ) |
Set SAVE DEBUG CONTROLS on Vm-exit controls.
| CoreId | target core id |
| Set | Set or unset |
| VOID VmFuncSetSaveDebugControlsVmcallOnTargetCore | ( | BOOLEAN | Set | ) |
Set SAVE DEBUG CONTROLS on VM-exit controls on the target core from VMCS using VMCALL.
| Set | Set or unset |
| VOID VmFuncSetTriggerEventForCpuids | ( | BOOLEAN | Set | ) |
Set triggering events for CPUIDs.
| Set | Set or unset the trigger |
| VOID VmFuncSetTriggerEventForVmcalls | ( | BOOLEAN | Set | ) |
Set triggering events for VMCALLs.
| Set | Set or unset the trigger |
| VOID VmFuncSetTriggerEventForXsetbvs | ( | BOOLEAN | Set | ) |
Set trigger event for XSETBVs.
| Set | Set or unset the trigger |
| BOOLEAN VmFuncSmmPerformSmiOperation | ( | SMI_OPERATION_PACKETS * | SmiOperationRequest, |
| BOOLEAN | ApplyFromVmxRootMode ) |
Perform actions related to System Management Interrupts (SMIs).
| SmiOperationRequest | |
| ApplyFromVmxRootMode |
| VOID VmFuncSuppressRipIncrement | ( | UINT32 | CoreId | ) |
Suppress the incrementation of RIP.
| CoreId | Target core's ID |
| VOID VmFuncUninitVmm | ( | ) |
Uninitialize Terminate Vmx on all logical cores.
Unset exception bitmap in VMCS.
Should be called in vmx-root
| CoreId | Target core's ID |
| IdtIndex | Interrupt Descriptor Table index of exception |
| VOID VmFuncUnsetInstrumentationStepInState | ( | UINT32 | CoreId | ) |
Unset instrumentation step in MTF (used for single stepping with MTF).
| CoreId | Target core's ID |
| VOID VmFuncVmxBroadcastInitialize | ( | ) |
Export for initialize the VMX Broadcast mechanism.
| VOID VmFuncVmxBroadcastUninitialize | ( | ) |
Export for uninitialize the VMX Broadcast mechanism.
VMX-root compatible memcmp.
| Address1 | |
| Address2 | |
| Count |
| VOID VmFuncVmxCompatibleMicroSleep | ( | UINT64 | Us | ) |
VMX-root compatible micro sleep.
| Us | Delay in micro seconds |
VMX-root compatible strcmp.
| Address1 | |
| Address2 |
VMX-root compatible strlen.
| s | A pointer to the string |
| INT32 VmFuncVmxCompatibleWcscmp | ( | const WCHAR * | Address1, |
| const WCHAR * | Address2 ) |
VMX-root compatible wcscmp.
| Address1 | |
| Address2 |
| UINT32 VmFuncVmxCompatibleWcslen | ( | const WCHAR * | s | ) |
VMX-root compatible strlen.
| s | A pointer to the string |
| INT32 VmFuncVmxCompatibleWcsncmp | ( | const WCHAR * | Address1, |
| const WCHAR * | Address2, | ||
| SIZE_T | Num ) |
| BOOLEAN VmFuncVmxGetCurrentExecutionMode | ( | ) |
Get the current VMX operation state.
| NTSTATUS VmFuncVmxVmcall | ( | UINT64 | VmcallNumber, |
| UINT64 | OptionalParam1, | ||
| UINT64 | OptionalParam2, | ||
| UINT64 | OptionalParam3 ) |
Export for running VMX VMCALLs.
| VmcallNumber | |
| OptionalParam1 | |
| OptionalParam2 | |
| OptionalParam3 |
| VOID VmFuncWriteExceptionBitmap | ( | UINT32 | BitmapMask | ) |
Write on exception bitmap in VMCS DO NOT CALL IT DIRECTLY, instead use HvSetExceptionBitmap.
Should be called in vmx-root
| BitmapMask | The content to write on exception bitmap |