MCPcopy Create free account

hub / github.com/Gbps/gbhv / functions

Functions113 in github.com/Gbps/gbhv

↓ 46 callersFunctionHvUtilLogError
* Print an error to the kernel debugger with a format. */
gbhv/util.c:91
↓ 16 callersFunctionArchGetHostMSR
* Get an MSR by its address and convert it to the specified type. */
gbhv/arch.c:12
↓ 14 callersFunctionHvUtilLogDebug
* Print a debug message to the kernel debugger. */
gbhv/util.c:66
↓ 9 callersFunctionOsFreeNonpagedMemory
* Free memory allocated with OsAllocateNonpagedMemory. */
gbhv/os_nt.c:99
↓ 9 callersFunctionOsVirtualToPhysical
* Convert a virtual address to a physical address. */
gbhv/os_nt.c:107
↓ 9 callersFunctionOsZeroMemory
* Zero out Length bytes of a region of memory. */
gbhv/os_nt.c:126
↓ 6 callersFunctionHvUtilLog
* Print a message to the kernel debugger. */
gbhv/util.c:54
↓ 5 callersFunctionHvUtilEncodeMustBeBits
* Certain control MSRs in VMX will ask that certain bits always be 0, and some always be 1. * * In these MSR formats, the lower 32-bits specify the
gbhv/util.c:38
↓ 5 callersFunctionHvUtilLogSuccess
* Print a success message to the kernel debugger. */
gbhv/util.c:79
↓ 5 callersFunctionOsAllocateContiguousAlignedPages
* Allocate a number of page-aligned, contiguous pages of memory and return a pointer to the region. * * Returns NULL if the pages could not be allo
gbhv/os_nt.c:31
↓ 5 callersFunctionOsGetCurrentProcessorNumber
* Get the current CPU number of the processor executing this function. */
gbhv/os_nt.c:21
↓ 4 callersFunctionOsAllocateNonpagedMemory
* Allocate generic, nonpaged r/w memory. * * Returns NULL if the bytes could not be allocated. */
gbhv/os_nt.c:62
↓ 4 callersFunctionOsFreeContiguousAlignedPages
* Free a region of pages allocated by OsAllocateContiguousAlignedPages. */
gbhv/os_nt.c:52
↓ 3 callersFunctionHvGetCurrentCPUContext
* Get the current CPU context object from the global context by reading the current processor number. */
gbhv/vmm.c:310
↓ 3 callersFunctionHvUtilBitIsSet
* Check if a bit is set in the bit field. */
gbhv/util.c:8
↓ 3 callersFunctionOsGetCPUCount
* Get the number of CPUs on the system */
gbhv/os_nt.c:13
↓ 3 callersFunctionVmxExitRootMode
* Exits VMX Root Mode on a processor currently in VMX operation mode. * * This function will: * - Clear the current VMCS * - Execute VMXOFF * -
gbhv/vmx.c:128
↓ 2 callersFunctionHvEptFreeLogicalProcessorContext
* Free memory allocated by EPT functions. */
gbhv/ept.c:575
↓ 2 callersFunctionHvEptHookWriteAbsoluteJump
Write an absolute x64 jump to an arbitrary address to a buffer. */
gbhv/ept.c:598
↓ 2 callersFunctionHvFreeVmmContext
* Free global VMM context and all logical processor contexts. */
gbhv/vmm.c:150
↓ 2 callersFunctionInitializeListHead
gbhv/phnt/ntrtl.h:29
↓ 2 callersFunctionInsertHeadList
gbhv/phnt/ntrtl.h:102
↓ 1 callersFunctionArchCaptureSpecialRegisters
gbhv/arch.c:103
↓ 1 callersFunctionArchDisableVmxe
* Disable "Virtual Machine Extensions Enable" bit in CR4 (bit 13) */
gbhv/arch.c:89
↓ 1 callersFunctionArchEnableVmxe
* Enables "Virtual Machine Extensions Enable" bit in CR4 (bit 13) */
gbhv/arch.c:69
↓ 1 callersFunctionArchGetBasicVmxCapabilities
* Get the IA32_VMX_BASIC MSR. * * Reporting Register of Basic VMX Capabilities. */
gbhv/arch.c:57
↓ 1 callersFunctionArchGetCPUID
* Get a CPUID register. */
gbhv/arch.c:20
↓ 1 callersFunctionArchIsCPUFeaturePresent
* Returns TRUE if the CPU feature is present. */
gbhv/arch.c:32
↓ 1 callersFunctionArchIsVMXAvailable
* Check if VMX support is enabled on the processor. */
gbhv/arch.c:44
↓ 1 callersFunctionHvAllocateLogicalProcessorContext
* Allocates a logical processor context. * * Contains: * - VMXON region * - The Host stack, the stack used during exit handlers *
gbhv/vmm.c:204
↓ 1 callersFunctionHvAllocateVmcsRegion
* Allocate a VMCS memory region and write the revision identifier. */
gbhv/vmm.c:275
↓ 1 callersFunctionHvAllocateVmmContext
* Allocate the global VMM context used by all processors. * * - Allocates a VMM_GLOBAL_CONTEXT structure, containing information about hv operation
gbhv/vmm.c:93
↓ 1 callersFunctionHvAllocateVmxonRegion
* Allocate and setup the VMXON region for the logical processor context. */
gbhv/vmm.c:171
↓ 1 callersFunctionHvEptAddPageHook
gbhv/ept.c:683
↓ 1 callersFunctionHvEptAllocateAndCreateIdentityPageTable
gbhv/ept.c:167
↓ 1 callersFunctionHvEptBuildMTRRMap
* Uses the Memory Type Range Register MSRs to build a map of the physical memory on the system. * This will be used to build an identity mapped EPT P
gbhv/ept.c:44
↓ 1 callersFunctionHvEptCheckFeatures
* Checks to ensure that the processor supports all EPT features that we want to use. */
gbhv/ept.c:11
↓ 1 callersFunctionHvEptGetPml1Entry
* Get the PML1 entry for this physical address if the page is split. Return NULL if the address is invalid * or the page wasn't already split. */
gbhv/ept.c:304
↓ 1 callersFunctionHvEptGetPml2Entry
* Get the PML2 entry for this physical address. */
gbhv/ept.c:281
↓ 1 callersFunctionHvEptGlobalInitialize
* Initializes any EPT components that are not local to a particular processor. * * Checks to ensure EPT is supported by the processor and builds a
gbhv/ept.c:259
↓ 1 callersFunctionHvEptHookInstructionMemory
gbhv/ept.c:629
↓ 1 callersFunctionHvEptLogicalProcessorInitialize
* Initialize EPT for an individual logical processor. * * Creates an identity mapped page table and sets up an EPTP to be applied to the VMCS later
gbhv/ept.c:523
↓ 1 callersFunctionHvEptSetupPML2Entry
* Creates a 2MB identity mapped PML2 entry with a cacheability type specified by system MTRRs. * * We must ensure that we map each 2MB entry with t
gbhv/ept.c:107
↓ 1 callersFunctionHvEptSplitLargePage
* Split a large 2MB page into 512 smaller 4096 pages. * * In order to set discrete EPT permissions on a singular 4096 byte page, we need to split o
gbhv/ept.c:358
↓ 1 callersFunctionHvExitDispatchFunction
* Dispatch to the correct handler function given the exit code. */
gbhv/exit.c:104
↓ 1 callersFunctionHvExitHandleCpuid
gbhv/exit.c:52
↓ 1 callersFunctionHvExitHandleEptMisconfiguration
gbhv/exit.c:77
↓ 1 callersFunctionHvExitHandleEptViolation
* Handle VM exits for EPT violations. Violations are thrown whenever an operation is performed * on an EPT entry that does not provide permissions to
gbhv/ept.c:892
↓ 1 callersFunctionHvExitHandlePageHookExit
Check if this exit is due to a violation caused by a currently hooked page. Returns FALSE * if the violation was not due to a page hook. * * If th
gbhv/ept.c:810
↓ 1 callersFunctionHvExitHandleUnknownExit
gbhv/exit.c:89
↓ 1 callersFunctionHvFreeLogicalProcessorContext
* Free a logical processor context allocated by HvAllocateLogicalProcessorContext */
gbhv/vmm.c:296
↓ 1 callersFunctionHvInitializeAllProcessors
* Initialize all logical processors on the system for hypervisor execution. * * This function performs the following actions: * - Uses the CP
gbhv/vmm.c:21
↓ 1 callersFunctionHvSetupVmcsControlFields
gbhv/vmcs.c:350
↓ 1 callersFunctionHvSetupVmcsControlPinBased
* Configure the Pin-based Control settings of the VMCS. */
gbhv/vmcs.c:455
↓ 1 callersFunctionHvSetupVmcsControlProcessor
* Configure the Processor-Based VM-Execution Controls of the VMCS. */
gbhv/vmcs.c:490
↓ 1 callersFunctionHvSetupVmcsControlSecondaryProcessor
* Configure the Secondary Processor-Based VM-Execution Controls settings of the VMCS. */
gbhv/vmcs.c:556
↓ 1 callersFunctionHvSetupVmcsControlVmEntry
* Configure the VM-Entry Controls settings of the VMCS. */
gbhv/vmcs.c:642
↓ 1 callersFunctionHvSetupVmcsControlVmExit
* Configure the VM-Exit Controls settings of the VMCS. */
gbhv/vmcs.c:700
↓ 1 callersFunctionHvSetupVmcsDefaults
gbhv/vmcs.c:7
↓ 1 callersFunctionHvSetupVmcsGuestArea
* Sets up all fields of the guest area of the VMCS. * * GuestRIP: The RIP to set when swapping back to the guest. * GuestRSP: The RSP to set when
gbhv/vmcs.c:215
↓ 1 callersFunctionHvSetupVmcsHostArea
* Sets up all fields of the host area of the VMCS. * * HostRIP: The RIP that vmexits will jump to initially, similar to how interrupts work. * HostRS
gbhv/vmcs.c:82
↓ 1 callersFunctionHvUtilBitClearBit
* Clear a bit in a bit field. */
gbhv/util.c:24
↓ 1 callersFunctionOsAllocateExecutableNonpagedMemory
* Allocate generic, nonpaged, executable r/w memory. * * Returns NULL if the bytes could not be allocated. */
gbhv/os_nt.c:81
↓ 1 callersFunctionOsCaptureContext
* OS-dependent version of RtlCaptureContext from NT. */
gbhv/os_nt.c:134
↓ 1 callersFunctionOsPhysicalToVirtual
* Convert a physical address to a virtual address. */
gbhv/os_nt.c:115
↓ 1 callersFunctionVmxEnterRootMode
* Enter VMX Root Mode on the processor. * * This function will: * - Enable VMX-enabled bit in CR4 * - Ensure the VMX fixed bits are set in CR0 an
gbhv/vmx.c:85
↓ 1 callersFunctionVmxGetSegmentDescriptorFromSelector
* VMX has a very specific layout for its segment descriptor fields that needs to be populated from the GDT entries of the OS. * * This function inp
gbhv/vmx.c:156
↓ 1 callersFunctionVmxInitializeExitContext
* Intialize fields of the exit context based on values read from the VMCS. */
gbhv/exit.c:7
↓ 1 callersFunctionVmxLaunchProcessor
* Execute VMLAUNCH and launch the processor. * * Should never return, except on error. */
gbhv/vmx.c:9
↓ 1 callersFunctionVmxPrintErrorState
* Give a printout when VMX instructions or vmexits fail. * * Reads the instruction error from the VMCS. */
gbhv/vmx.c:29
↓ 1 callersFunctionVmxSetFixedBits
* In VMX operation, processors may fix certain bits in CR0 and CR4 to specific values and not support other * values. * * Ensures these CR0 and CR
gbhv/vmx.c:53
FunctionAppendTailList
gbhv/phnt/ntrtl.h:116
FunctionDriverEntry
gbhv/entry.c:12
FunctionDriverUnload
gbhv/entry.c:73
FunctionExitRootModeOnAllProcessors
* DPC to exit VMX on all processors. */
gbhv/entry.c:36
FunctionHvHandleVmExit
* This function is the main handler of all exits that take place during VMM execution. * * This function is initially called from HvEnterFromGuest
gbhv/vmm.c:436
FunctionHvHandleVmExitFailure
* If we're at this point, that means HvEnterFromGuest failed to enter back to the guest. * Print out the error informaiton and some state of the proc
gbhv/vmm.c:494
FunctionHvInitializeLogicalProcessor
* Initialize VMCS and enter VMX root-mode. * * This function should never return, except on error. Execution will continue on the guest on success.
gbhv/vmm.c:377
FunctionHvSetupVmcsGuestSegment
* Very carefully populates the segmentation parts of one of the guest segmentation VMCS fields according to the values of the currently running system
gbhv/vmcs.c:172
FunctionHvUtilBitSetBit
* Set a bit in a bit field. */
gbhv/util.c:16
FunctionHvpDPCBroadcastFunction
* Called by HvInitializeAllProcessors to initialize VMX on a specific logical processor. */
gbhv/vmm.c:327
FunctionInsertTailList
gbhv/phnt/ntrtl.h:88
FunctionIsListEmpty
gbhv/phnt/ntrtl.h:36
FunctionNtCreateFileHook
gbhv/ept.c:466
FunctionNtGetTickCount
gbhv/phnt/ntexapi.h:3738
FunctionNtGetTickCount64
gbhv/phnt/ntexapi.h:3711
FunctionOsRestoreContext
* OS-dependent version of RtlRestoreContext from NT. */
gbhv/os_nt.c:142
FunctionPLIST_ENTRY RemoveHeadList
gbhv/phnt/ntrtl.h:58
FunctionPLIST_ENTRY RemoveTailList
gbhv/phnt/ntrtl.h:73
FunctionPSINGLE_LIST_ENTRY PopEntryList
gbhv/phnt/ntrtl.h:129
FunctionPushEntryList
gbhv/phnt/ntrtl.h:143
FunctionRemoveEntryList
gbhv/phnt/ntrtl.h:43
FunctionRtlActiveEnumeratorsHashTable
gbhv/phnt/ntrtl.h:721
FunctionRtlConvertLongToLuid
gbhv/phnt/ntrtl.h:4378
FunctionRtlConvertUlongToLuid
gbhv/phnt/ntrtl.h:4392
FunctionRtlEmptyBucketsHashTable
gbhv/phnt/ntrtl.h:703
FunctionRtlExitUserProcess_R
gbhv/phnt/ntrtl.h:2652
FunctionRtlExitUserThread_R
gbhv/phnt/ntrtl.h:2811
FunctionRtlInitAnsiString
gbhv/phnt/ntrtl.h:1282
FunctionRtlInitEmptyUnicodeString
gbhv/phnt/ntrtl.h:1406
next →1–100 of 113, ranked by callers