ReXGlue SDK
Loading...
Searching...
No Matches
rex::kernel::XAPC Struct Reference

#include <rex/kernel/types/thread.h>

Public Attributes

u16 type
u8 apc_mode
u8 enqueued
be_u32 thread_ptr
X_LIST_ENTRY list_entry
be_u32 kernel_routine
be_u32 rundown_routine
be_u32 normal_routine
be_u32 normal_context
be_u32 arg1
be_u32 arg2

Static Public Attributes

static constexpr u32 kSize = 40
static constexpr u32 kDummyKernelRoutine = 0xF00DFF00
static constexpr u32 kDummyRundownRoutine = 0xF00DFF01

Detailed Description

Kernel APC in guest memory, 40 bytes. NT has a reserved dword at +4 that this layout omits.

Member Data Documentation

◆ apc_mode

u8 rex::kernel::XAPC::apc_mode

Index into X_KTHREAD::apc_lists, 0 for kernel and 1 for user.

◆ arg1

be_u32 rex::kernel::XAPC::arg1

Second argument of the normal routine, set when queued.

◆ arg2

be_u32 rex::kernel::XAPC::arg2

Third argument of the normal routine, set when queued.

◆ enqueued

u8 rex::kernel::XAPC::enqueued

1 while the APC is in a list of the thread.

◆ kDummyKernelRoutine

u32 rex::kernel::XAPC::kDummyKernelRoutine = 0xF00DFF00
staticconstexpr

Kernel routine address that marks an APC the host queued itself, never called.

◆ kDummyRundownRoutine

u32 rex::kernel::XAPC::kDummyRundownRoutine = 0xF00DFF01
staticconstexpr

Rundown routine address stored beside kDummyKernelRoutine in an APC the host queued itself.

◆ kSize

u32 rex::kernel::XAPC::kSize = 40
staticconstexpr

Size in bytes of an APC block, allocated for each APC the host queues.

◆ list_entry

X_LIST_ENTRY rex::kernel::XAPC::list_entry

Links the APC in a list of the thread.

◆ normal_context

be_u32 rex::kernel::XAPC::normal_context

First argument of the normal routine.

◆ normal_routine

be_u32 rex::kernel::XAPC::normal_routine

Guest address of the normal routine, 0 for a kernel only APC.

◆ type

u16 rex::kernel::XAPC::type

Object type, 18 for an APC.


The documentation for this struct was generated from the following file: