void * HalHdrSwapHandle
HAL headers swap handle. Used only if HAL is not protected, and the headers are not read automaticall...
INTSTATUS IntWinHalUnprotectHalHeapExecs(void)
Deactivates the HAL heap execution protection.
struct _WIN_HAL_DATA * PWIN_HAL_DATA
INTSTATUS IntWinHalProtectHalIntCtrl(void)
Protects the HAL interrupt controller against writes.
void * HalPerfIntegrityObj
The HAL Performance Counter integrity hook object.
INTSTATUS IntWinHalCreateHalData(void)
Initializes gHalData.
LIST_ENTRY InitSwapHandles
A list containing the swap handles for the swapped out sections which should be read in HalBuffer...
void IntWinHalUninit(void)
Frees any resources held by gHalData and removes all the HAL protections.
int INTSTATUS
The status data type.
Describes a kernel driver.
INTSTATUS IntWinHalProtectHalDispatchTable(void)
Activates the HAL dispatch table protection.
DWORD HalBufferSize
The size of HAL buffer.
void * HalIntCtrlWriteHook
The HAL interrupt controller write hook object.
INTSTATUS IntWinHalUnprotectHalDispatchTable(void)
Deactivates the HAL dispatch table protection.
DWORD HalHeapSize
The size of the HAL heap.
void * HalDispatchIntegrityHook
The HAL dispatch table integrity hook object.
DWORD RemainingSections
The number of sections which are not yet read into HAL buffer.
BYTE * HalBuffer
A buffer containing the whole HAL image.
struct _WIN_HAL_DATA WIN_HAL_DATA
Hal information.
INTSTATUS IntWinHalUnprotectHalIntCtrl(void)
Deactivates the HAL interrupt controller write protection.
QWORD HalHeapAddress
The guest virtual address of the HAL heap.
DWORD HalDispatchTableSize
The size of the HAL dispatch table.
KERNEL_DRIVER * OwnerHalModule
The hal.dll kernel module or ntoskrnl.exe.
INTSTATUS IntWinHalUpdateProtection(void)
Updates any of the HAL protections.
QWORD HalDispatchTableAddress
The guest virtual address of the HAL dispatch table.
QWORD HalIntCtrlAddress
The guest virtual address of the HAL interrupt controller.
INTSTATUS IntWinHalProtectHalPerfCounter(void)
Enables protection on HalPerformanceCounter function pointer.
void * HalHeapExecHook
The HAL heap execution hook object.
INTSTATUS IntWinHalUnprotectHalPerfCounter(void)
Removes the protection on HalPerformanceCounter.
QWORD HalPerfCounterAddress
The guest virtual address of the HAL performance counter.
INTSTATUS IntWinHalProtectHalHeapExecs(void)
Hooks the HAL heap against execution.