Code
Hub
Workspaces
Following
Trending
Connect
MCP
copy
Create free account
hub
/
github.com/Gbps/gbhv
/ functions
Functions
113 in github.com/Gbps/gbhv
⨍
Functions
113
◇
Types & classes
899
↓ 46 callers
Function
HvUtilLogError
* Print an error to the kernel debugger with a format. */
gbhv/util.c:91
↓ 16 callers
Function
ArchGetHostMSR
* Get an MSR by its address and convert it to the specified type. */
gbhv/arch.c:12
↓ 14 callers
Function
HvUtilLogDebug
* Print a debug message to the kernel debugger. */
gbhv/util.c:66
↓ 9 callers
Function
OsFreeNonpagedMemory
* Free memory allocated with OsAllocateNonpagedMemory. */
gbhv/os_nt.c:99
↓ 9 callers
Function
OsVirtualToPhysical
* Convert a virtual address to a physical address. */
gbhv/os_nt.c:107
↓ 9 callers
Function
OsZeroMemory
* Zero out Length bytes of a region of memory. */
gbhv/os_nt.c:126
↓ 6 callers
Function
HvUtilLog
* Print a message to the kernel debugger. */
gbhv/util.c:54
↓ 5 callers
Function
HvUtilEncodeMustBeBits
* 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 callers
Function
HvUtilLogSuccess
* Print a success message to the kernel debugger. */
gbhv/util.c:79
↓ 5 callers
Function
OsAllocateContiguousAlignedPages
* 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 callers
Function
OsGetCurrentProcessorNumber
* Get the current CPU number of the processor executing this function. */
gbhv/os_nt.c:21
↓ 4 callers
Function
OsAllocateNonpagedMemory
* Allocate generic, nonpaged r/w memory. * * Returns NULL if the bytes could not be allocated. */
gbhv/os_nt.c:62
↓ 4 callers
Function
OsFreeContiguousAlignedPages
* Free a region of pages allocated by OsAllocateContiguousAlignedPages. */
gbhv/os_nt.c:52
↓ 3 callers
Function
HvGetCurrentCPUContext
* Get the current CPU context object from the global context by reading the current processor number. */
gbhv/vmm.c:310
↓ 3 callers
Function
HvUtilBitIsSet
* Check if a bit is set in the bit field. */
gbhv/util.c:8
↓ 3 callers
Function
OsGetCPUCount
* Get the number of CPUs on the system */
gbhv/os_nt.c:13
↓ 3 callers
Function
VmxExitRootMode
* 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 callers
Function
HvEptFreeLogicalProcessorContext
* Free memory allocated by EPT functions. */
gbhv/ept.c:575
↓ 2 callers
Function
HvEptHookWriteAbsoluteJump
Write an absolute x64 jump to an arbitrary address to a buffer. */
gbhv/ept.c:598
↓ 2 callers
Function
HvFreeVmmContext
* Free global VMM context and all logical processor contexts. */
gbhv/vmm.c:150
↓ 2 callers
Function
InitializeListHead
gbhv/phnt/ntrtl.h:29
↓ 2 callers
Function
InsertHeadList
gbhv/phnt/ntrtl.h:102
↓ 1 callers
Function
ArchCaptureSpecialRegisters
gbhv/arch.c:103
↓ 1 callers
Function
ArchDisableVmxe
* Disable "Virtual Machine Extensions Enable" bit in CR4 (bit 13) */
gbhv/arch.c:89
↓ 1 callers
Function
ArchEnableVmxe
* Enables "Virtual Machine Extensions Enable" bit in CR4 (bit 13) */
gbhv/arch.c:69
↓ 1 callers
Function
ArchGetBasicVmxCapabilities
* Get the IA32_VMX_BASIC MSR. * * Reporting Register of Basic VMX Capabilities. */
gbhv/arch.c:57
↓ 1 callers
Function
ArchGetCPUID
* Get a CPUID register. */
gbhv/arch.c:20
↓ 1 callers
Function
ArchIsCPUFeaturePresent
* Returns TRUE if the CPU feature is present. */
gbhv/arch.c:32
↓ 1 callers
Function
ArchIsVMXAvailable
* Check if VMX support is enabled on the processor. */
gbhv/arch.c:44
↓ 1 callers
Function
HvAllocateLogicalProcessorContext
* Allocates a logical processor context. * * Contains: * - VMXON region * - The Host stack, the stack used during exit handlers *
gbhv/vmm.c:204
↓ 1 callers
Function
HvAllocateVmcsRegion
* Allocate a VMCS memory region and write the revision identifier. */
gbhv/vmm.c:275
↓ 1 callers
Function
HvAllocateVmmContext
* 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 callers
Function
HvAllocateVmxonRegion
* Allocate and setup the VMXON region for the logical processor context. */
gbhv/vmm.c:171
↓ 1 callers
Function
HvEptAddPageHook
gbhv/ept.c:683
↓ 1 callers
Function
HvEptAllocateAndCreateIdentityPageTable
gbhv/ept.c:167
↓ 1 callers
Function
HvEptBuildMTRRMap
* 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 callers
Function
HvEptCheckFeatures
* Checks to ensure that the processor supports all EPT features that we want to use. */
gbhv/ept.c:11
↓ 1 callers
Function
HvEptGetPml1Entry
* 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 callers
Function
HvEptGetPml2Entry
* Get the PML2 entry for this physical address. */
gbhv/ept.c:281
↓ 1 callers
Function
HvEptGlobalInitialize
* 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 callers
Function
HvEptHookInstructionMemory
gbhv/ept.c:629
↓ 1 callers
Function
HvEptLogicalProcessorInitialize
* 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 callers
Function
HvEptSetupPML2Entry
* 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 callers
Function
HvEptSplitLargePage
* 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 callers
Function
HvExitDispatchFunction
* Dispatch to the correct handler function given the exit code. */
gbhv/exit.c:104
↓ 1 callers
Function
HvExitHandleCpuid
gbhv/exit.c:52
↓ 1 callers
Function
HvExitHandleEptMisconfiguration
gbhv/exit.c:77
↓ 1 callers
Function
HvExitHandleEptViolation
* 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 callers
Function
HvExitHandlePageHookExit
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 callers
Function
HvExitHandleUnknownExit
gbhv/exit.c:89
↓ 1 callers
Function
HvFreeLogicalProcessorContext
* Free a logical processor context allocated by HvAllocateLogicalProcessorContext */
gbhv/vmm.c:296
↓ 1 callers
Function
HvInitializeAllProcessors
* Initialize all logical processors on the system for hypervisor execution. * * This function performs the following actions: * - Uses the CP
gbhv/vmm.c:21
↓ 1 callers
Function
HvSetupVmcsControlFields
gbhv/vmcs.c:350
↓ 1 callers
Function
HvSetupVmcsControlPinBased
* Configure the Pin-based Control settings of the VMCS. */
gbhv/vmcs.c:455
↓ 1 callers
Function
HvSetupVmcsControlProcessor
* Configure the Processor-Based VM-Execution Controls of the VMCS. */
gbhv/vmcs.c:490
↓ 1 callers
Function
HvSetupVmcsControlSecondaryProcessor
* Configure the Secondary Processor-Based VM-Execution Controls settings of the VMCS. */
gbhv/vmcs.c:556
↓ 1 callers
Function
HvSetupVmcsControlVmEntry
* Configure the VM-Entry Controls settings of the VMCS. */
gbhv/vmcs.c:642
↓ 1 callers
Function
HvSetupVmcsControlVmExit
* Configure the VM-Exit Controls settings of the VMCS. */
gbhv/vmcs.c:700
↓ 1 callers
Function
HvSetupVmcsDefaults
gbhv/vmcs.c:7
↓ 1 callers
Function
HvSetupVmcsGuestArea
* 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 callers
Function
HvSetupVmcsHostArea
* 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 callers
Function
HvUtilBitClearBit
* Clear a bit in a bit field. */
gbhv/util.c:24
↓ 1 callers
Function
OsAllocateExecutableNonpagedMemory
* Allocate generic, nonpaged, executable r/w memory. * * Returns NULL if the bytes could not be allocated. */
gbhv/os_nt.c:81
↓ 1 callers
Function
OsCaptureContext
* OS-dependent version of RtlCaptureContext from NT. */
gbhv/os_nt.c:134
↓ 1 callers
Function
OsPhysicalToVirtual
* Convert a physical address to a virtual address. */
gbhv/os_nt.c:115
↓ 1 callers
Function
VmxEnterRootMode
* 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 callers
Function
VmxGetSegmentDescriptorFromSelector
* 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 callers
Function
VmxInitializeExitContext
* Intialize fields of the exit context based on values read from the VMCS. */
gbhv/exit.c:7
↓ 1 callers
Function
VmxLaunchProcessor
* Execute VMLAUNCH and launch the processor. * * Should never return, except on error. */
gbhv/vmx.c:9
↓ 1 callers
Function
VmxPrintErrorState
* Give a printout when VMX instructions or vmexits fail. * * Reads the instruction error from the VMCS. */
gbhv/vmx.c:29
↓ 1 callers
Function
VmxSetFixedBits
* 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
Function
AppendTailList
gbhv/phnt/ntrtl.h:116
Function
DriverEntry
gbhv/entry.c:12
Function
DriverUnload
gbhv/entry.c:73
Function
ExitRootModeOnAllProcessors
* DPC to exit VMX on all processors. */
gbhv/entry.c:36
Function
HvHandleVmExit
* 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
Function
HvHandleVmExitFailure
* 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
Function
HvInitializeLogicalProcessor
* 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
Function
HvSetupVmcsGuestSegment
* 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
Function
HvUtilBitSetBit
* Set a bit in a bit field. */
gbhv/util.c:16
Function
HvpDPCBroadcastFunction
* Called by HvInitializeAllProcessors to initialize VMX on a specific logical processor. */
gbhv/vmm.c:327
Function
InsertTailList
gbhv/phnt/ntrtl.h:88
Function
IsListEmpty
gbhv/phnt/ntrtl.h:36
Function
NtCreateFileHook
gbhv/ept.c:466
Function
NtGetTickCount
gbhv/phnt/ntexapi.h:3738
Function
NtGetTickCount64
gbhv/phnt/ntexapi.h:3711
Function
OsRestoreContext
* OS-dependent version of RtlRestoreContext from NT. */
gbhv/os_nt.c:142
Function
PLIST_ENTRY RemoveHeadList
gbhv/phnt/ntrtl.h:58
Function
PLIST_ENTRY RemoveTailList
gbhv/phnt/ntrtl.h:73
Function
PSINGLE_LIST_ENTRY PopEntryList
gbhv/phnt/ntrtl.h:129
Function
PushEntryList
gbhv/phnt/ntrtl.h:143
Function
RemoveEntryList
gbhv/phnt/ntrtl.h:43
Function
RtlActiveEnumeratorsHashTable
gbhv/phnt/ntrtl.h:721
Function
RtlConvertLongToLuid
gbhv/phnt/ntrtl.h:4378
Function
RtlConvertUlongToLuid
gbhv/phnt/ntrtl.h:4392
Function
RtlEmptyBucketsHashTable
gbhv/phnt/ntrtl.h:703
Function
RtlExitUserProcess_R
gbhv/phnt/ntrtl.h:2652
Function
RtlExitUserThread_R
gbhv/phnt/ntrtl.h:2811
Function
RtlInitAnsiString
gbhv/phnt/ntrtl.h:1282
Function
RtlInitEmptyUnicodeString
gbhv/phnt/ntrtl.h:1406
next →
1–100 of 113, ranked by callers