|
static bool | VmpIsVmxAvailable () |
|
static NTSTATUS | VmpSetLockBitCallback (_In_opt_ void *context) |
|
static SharedProcessorData * | VmpInitializeSharedData () |
|
static void * | VmpBuildMsrBitmap () |
|
static UCHAR * | VmpBuildIoBitmaps () |
|
static NTSTATUS | VmpStartVm (_In_opt_ void *context) |
|
static void | VmpInitializeVm (_In_ ULONG_PTR guest_stack_pointer, _In_ ULONG_PTR guest_instruction_pointer, _In_opt_ void *context) |
|
static bool | VmpEnterVmxMode (_Inout_ ProcessorData *processor_data) |
|
static bool | VmpInitializeVmcs (_Inout_ ProcessorData *processor_data) |
|
static bool | VmpSetupVmcs (_In_ const ProcessorData *processor_data, _In_ ULONG_PTR guest_stack_pointer, _In_ ULONG_PTR guest_instruction_pointer, _In_ ULONG_PTR vmm_stack_pointer) |
|
static void | VmpLaunchVm () |
|
static ULONG | VmpGetSegmentAccessRight (_In_ USHORT segment_selector) |
|
static ULONG_PTR | VmpGetSegmentBase (_In_ ULONG_PTR gdt_base, _In_ USHORT segment_selector) |
|
static SegmentDescriptor * | VmpGetSegmentDescriptor (_In_ ULONG_PTR descriptor_table_base, _In_ USHORT segment_selector) |
|
static ULONG_PTR | VmpGetSegmentBaseByDescriptor (_In_ const SegmentDescriptor *segment_descriptor) |
|
static ULONG | VmpAdjustControlValue (_In_ Msr msr, _In_ ULONG requested_value) |
|
static NTSTATUS | VmpStopVm (_In_opt_ void *context) |
|
static void | VmpFreeProcessorData (_In_opt_ ProcessorData *processor_data) |
|
static void | VmpFreeSharedData (_In_ ProcessorData *processor_data) |
|
static bool | VmpIsHyperPlatformInstalled () |
|
ULONG | GetSegmentLimit (_In_ ULONG selector) |
|
NTSTATUS | VmInitialization () |
| Virtualizes all processors. More...
|
|
static NTSTATUS | VmpSetLockBitCallback (void *context) |
|
static NTSTATUS | VmpStartVm (void *context) |
|
static void | VmpInitializeVm (ULONG_PTR guest_stack_pointer, ULONG_PTR guest_instruction_pointer, void *context) |
|
static bool | VmpEnterVmxMode (ProcessorData *processor_data) |
|
static bool | VmpInitializeVmcs (ProcessorData *processor_data) |
|
static bool | VmpSetupVmcs (const ProcessorData *processor_data, ULONG_PTR guest_stack_pointer, ULONG_PTR guest_instruction_pointer, ULONG_PTR vmm_stack_pointer) |
|
static ULONG | VmpGetSegmentAccessRight (USHORT segment_selector) |
|
static ULONG_PTR | VmpGetSegmentBase (ULONG_PTR gdt_base, USHORT segment_selector) |
|
static SegmentDescriptor * | VmpGetSegmentDescriptor (ULONG_PTR descriptor_table_base, USHORT segment_selector) |
|
static ULONG_PTR | VmpGetSegmentBaseByDescriptor (const SegmentDescriptor *segment_descriptor) |
|
static ULONG | VmpAdjustControlValue (Msr msr, ULONG requested_value) |
|
void | VmTermination () |
| De-virtualize all processors. More...
|
|
static NTSTATUS | VmpStopVm (void *context) |
|
static void | VmpFreeProcessorData (ProcessorData *processor_data) |
|
static void | VmpFreeSharedData (ProcessorData *processor_data) |
|
NTSTATUS | VmHotplugCallback (const PROCESSOR_NUMBER &proc_num) |
| Virtualizes the specified processor. More...
|
|
Implements VMM initialization functions.
Definition in file vm.cpp.
NTSTATUS VmInitialization |
( |
| ) |
|
Virtualizes all processors.
- Returns
- STATUS_SUCCESS on success
Initializes a VMCS region and virtualizes (ie, enters the VMX non-root operation mode) for each processor. Returns non STATUS_SUCCESS value if any of processors failed to do so. In that case, this function de-virtualize already virtualized processors.
Definition at line 143 of file vm.cpp.