39 lines
843 B
C
39 lines
843 B
C
|
typedef struct _IA32_BIOS_REGISTER_STATE {
|
||
|
|
||
|
// general registers
|
||
|
ULONG eax;
|
||
|
ULONG ecx;
|
||
|
ULONG edx;
|
||
|
ULONG ebx;
|
||
|
ULONG esp;
|
||
|
|
||
|
// stack registers
|
||
|
ULONG ebp;
|
||
|
ULONG esi;
|
||
|
ULONG edi;
|
||
|
|
||
|
// eflags
|
||
|
ULONG efalgs;
|
||
|
|
||
|
// instruction pointer
|
||
|
ULONG cs;
|
||
|
ULONG ds;
|
||
|
ULONG es;
|
||
|
ULONG fs;
|
||
|
ULONG gs;
|
||
|
ULONG ss;
|
||
|
|
||
|
// LDT/GDT table pointer and LDT selector
|
||
|
ULONGLONG *LDTTable; // 64 bit pointer to LDT table
|
||
|
ULONGLONG *GDTTable; // 64 bit pointer to GDT table
|
||
|
ULONG ldt_selector;
|
||
|
} IA32_BIOS_REGISTER_STATE, *PIA32_BIOS_REGISTER_STATE;
|
||
|
|
||
|
typedef union _BIT32_AND_BIT16 {
|
||
|
ULONG Part32;
|
||
|
struct {
|
||
|
USHORT LowPart16;
|
||
|
USHORT HighPart16;
|
||
|
};
|
||
|
} BIT32_AND_BIT16;
|