|
HyperDbg Debugger
|
Routines for Advanced Programmable Interrupt Controller (APIC). More...
#include "pch.h"Functions | |
| UINT64 | IoApicRead (volatile IO_APIC_ENT *IoApicBaseVa, UINT32 Reg) |
| Perform read I/O APIC. | |
| VOID | IoApicWrite (volatile IO_APIC_ENT *IoApicBaseVa, UINT32 Reg, UINT64 Data) |
| Perform write to I/O APIC. | |
| VOID | ApicDumpIoApic (IO_APIC_ENTRY_PACKETS *IoApicPackets) |
| Dump I/O APIC. | |
| VOID | XApicIcrWrite (UINT32 Low, UINT32 High) |
| Trigger NMI on XAPIC. | |
| VOID | X2ApicIcrWrite (UINT32 Low, UINT32 High) |
| Trigger NMI on X2APIC. | |
| UINT64 | X2ApicRead (UINT32 Offset) |
| Read x2APIC mode. | |
| BOOLEAN | ApicStoretLocalApicInXApicMode (PLAPIC_PAGE LApicBuffer) |
| Store the local APIC in XAPIC mode. | |
| BOOLEAN | ApicStoreLocalApicInX2ApicMode (PLAPIC_PAGE LApicBuffer) |
| Store the local APIC in X2APIC mode. | |
| VOID | ApicTriggerGenericNmi () |
| Trigger NMI on X2APIC or APIC based on Current system. | |
| VOID | ApicTriggerGenericSmi () |
| Trigger NMI on X2APIC or APIC based on Current system. | |
| BOOLEAN | ApicStoreLocalApicFields (PLAPIC_PAGE LApicBuffer, PBOOLEAN IsUsingX2APIC) |
| Store the details of APIC in xAPIC and x2APIC mode. | |
| BOOLEAN | ApicStoreIoApicFields (IO_APIC_ENTRY_PACKETS *IoApicPackets) |
| Store the details of I/O APIC. | |
| BOOLEAN | ApicInitialize () |
| Initialize APIC. | |
| VOID | ApicUninitialize () |
| Uninitialize APIC. | |
| VOID | ApicSelfIpi (UINT32 Vector) |
| Self IPI the current core. | |
Routines for Advanced Programmable Interrupt Controller (APIC).
The code is derived from (https://www.cpl0.com/blog/?p=46) and the code for showing the APIC details in the XAPIC is derived from bitdefender/napoca project which is enhanced to support X2APIC mode in HyperDbg
| VOID ApicDumpIoApic | ( | IO_APIC_ENTRY_PACKETS * | IoApicPackets | ) |
Dump I/O APIC.
| IoApicPackets |
| BOOLEAN ApicInitialize | ( | ) |
Initialize APIC.
| VOID ApicSelfIpi | ( | UINT32 | Vector | ) |
Self IPI the current core.
| Vector |
| BOOLEAN ApicStoreIoApicFields | ( | IO_APIC_ENTRY_PACKETS * | IoApicPackets | ) |
Store the details of I/O APIC.
| IoApicPackets |
| BOOLEAN ApicStoreLocalApicFields | ( | PLAPIC_PAGE | LApicBuffer, |
| PBOOLEAN | IsUsingX2APIC ) |
Store the details of APIC in xAPIC and x2APIC mode.
| LApicBuffer | |
| IsUsingX2APIC |
| BOOLEAN ApicStoreLocalApicInX2ApicMode | ( | PLAPIC_PAGE | LApicBuffer | ) |
Store the local APIC in X2APIC mode.
| BOOLEAN ApicStoretLocalApicInXApicMode | ( | PLAPIC_PAGE | LApicBuffer | ) |
Store the local APIC in XAPIC mode.
| VOID ApicTriggerGenericNmi | ( | ) |
Trigger NMI on X2APIC or APIC based on Current system.
| VOID ApicTriggerGenericSmi | ( | ) |
Trigger NMI on X2APIC or APIC based on Current system.
| VOID ApicUninitialize | ( | ) |
Uninitialize APIC.
| UINT64 IoApicRead | ( | volatile IO_APIC_ENT * | IoApicBaseVa, |
| UINT32 | Reg ) |
Perform read I/O APIC.
| IoApicBaseVa | |
| Reg |
| VOID IoApicWrite | ( | volatile IO_APIC_ENT * | IoApicBaseVa, |
| UINT32 | Reg, | ||
| UINT64 | Data ) |
Perform write to I/O APIC.
| IoApicBaseVa | |
| Reg | |
| Data |
Trigger NMI on X2APIC.
| Low | |
| High |
| UINT64 X2ApicRead | ( | UINT32 | Offset | ) |
Read x2APIC mode.
| Offset |
Trigger NMI on XAPIC.
| Low | |
| High |