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

Public Attributes

X_DISPATCH_HEADER header
X_KTIMER wait_timeout_timer
X_KWAIT_BLOCK wait_timeout_block
rex::be_u32 kernel_time
be_u32 stack_base
be_u32 stack_limit
be_u32 stack_kernel
be_u32 tls_address
u8 thread_state
u8 priority
u8 fpu_exceptions_on
u8 process_type_dup
u8 process_type
kernel::X_TYPED_LIST< XAPC, offsetof(XAPC, list_entry)> apc_lists [2]
be_ptr< X_KPROCESS > process
u8 may_queue_apcs
X_KSPINLOCK apc_lock
be_u32 msr_mask
i32 apc_disable_count
u8 boost_disabled
u8 suspend_count
u8 was_preempted
u8 terminated
u8 current_cpu
be_ptr< X_KPRCB > prcb
be_ptr< X_KPRCB > prcb_alias
be_u32 stack_alloc_base
X_LIST_ENTRY process_threads
be_u64 create_time
be_u64 exit_time
be_u32 exit_status
X_LIST_ENTRY timer_list
be_u32 thread_id
be_u32 start_address
X_LIST_ENTRY unk_154
u8 unk_15c [0x4]
be_u32 last_error
be_u32 fiber_ptr
u8 unk_168 [0x4]
be_u32 creation_flags
u8 unk_170 [0xC]
be_u32 unk_17c
u8 unk_180 [0x930]
be_u32 unk_10
be_u32 unk_14
u8 alerted [2]
u8 alertable
u8 executing_kernel_apc
u8 deferred_apc_software_interrupt_state
u8 user_apc_pending
be_u32 num_context_switches_to
X_LIST_ENTRY ready_prcb_entry
rex::BE< X_STATUS > wait_result
u8 wait_irql
u8 unk_a5 [0xB]
be_i32 quantum
u8 unk_b8
u8 unk_b9
u8 unk_ba
u8 unk_c8
u8 unk_c9
u8 unk_ca
u8 unk_cb
X_KSPINLOCK timer_list_lock
XAPC on_suspend
X_KSEMAPHORE suspend_sema
be_u32 unk_118
X_LIST_ENTRY queue_related
be_u32 unk_124
be_u32 unk_128
be_u32 unk_12c

Member Data Documentation

◆ alertable

u8 rex::kernel::X_KTHREAD::alertable

Reserved.

◆ alerted

u8 rex::kernel::X_KTHREAD::alerted[2]

Reserved.

◆ apc_disable_count

i32 rex::kernel::X_KTHREAD::apc_disable_count

Count of entered critical regions, 0 or below. APCs wait until it is 0.

◆ apc_lists

kernel::X_TYPED_LIST<XAPC, offsetof(XAPC, list_entry)> rex::kernel::X_KTHREAD::apc_lists[2]

APC lists, one per processor mode.

◆ apc_lock

X_KSPINLOCK rex::kernel::X_KTHREAD::apc_lock

Guards the APC lists and the enqueued state of their APCs.

◆ boost_disabled

u8 rex::kernel::X_KTHREAD::boost_disabled

Nonzero while priority boosts are disabled for the thread.

◆ create_time

be_u64 rex::kernel::X_KTHREAD::create_time

Guest system time at creation.

◆ deferred_apc_software_interrupt_state

u8 rex::kernel::X_KTHREAD::deferred_apc_software_interrupt_state

Reserved.

◆ executing_kernel_apc

u8 rex::kernel::X_KTHREAD::executing_kernel_apc

Reserved.

◆ fiber_ptr

be_u32 rex::kernel::X_KTHREAD::fiber_ptr

Guest address of the X_FIBER_CONTEXT in use, 0 for none.

◆ fpu_exceptions_on

u8 rex::kernel::X_KTHREAD::fpu_exceptions_on

Reserved.

◆ kernel_time

rex::be_u32 rex::kernel::X_KTHREAD::kernel_time

CPU time in milliseconds when last written.

◆ last_error

be_u32 rex::kernel::X_KTHREAD::last_error

Last error code of the thread, 0 at creation.

◆ may_queue_apcs

u8 rex::kernel::X_KTHREAD::may_queue_apcs

Nonzero while APCs can be queued to the thread.

◆ msr_mask

be_u32 rex::kernel::X_KTHREAD::msr_mask

Set to 0xFDFFD7FF at creation.

◆ num_context_switches_to

be_u32 rex::kernel::X_KTHREAD::num_context_switches_to

Reserved.

◆ on_suspend

XAPC rex::kernel::X_KTHREAD::on_suspend

Reserved.

◆ prcb

be_ptr<X_KPRCB> rex::kernel::X_KTHREAD::prcb

Guest address of the processor control block in the X_KPCR.

◆ prcb_alias

be_ptr<X_KPRCB> rex::kernel::X_KTHREAD::prcb_alias

Same as prcb.

◆ priority

u8 rex::kernel::X_KTHREAD::priority

Priority of the thread, clamped to 0 through 31.

◆ process

be_ptr<X_KPROCESS> rex::kernel::X_KTHREAD::process

Guest address of the process that owns the thread.

◆ process_threads

X_LIST_ENTRY rex::kernel::X_KTHREAD::process_threads

Links the thread in the thread list of its process.

◆ process_type

u8 rex::kernel::X_KTHREAD::process_type

Process type of the thread, copied from its process.

◆ process_type_dup

u8 rex::kernel::X_KTHREAD::process_type_dup

Same as process_type.

◆ quantum

be_i32 rex::kernel::X_KTHREAD::quantum

Reserved.

◆ queue_related

X_LIST_ENTRY rex::kernel::X_KTHREAD::queue_related

Reserved.

◆ ready_prcb_entry

X_LIST_ENTRY rex::kernel::X_KTHREAD::ready_prcb_entry

Reserved.

◆ stack_alloc_base

be_u32 rex::kernel::X_KTHREAD::stack_alloc_base

Guest address of the base of the stack allocation.

◆ stack_base

be_u32 rex::kernel::X_KTHREAD::stack_base

Guest address of the high end of the stack.

◆ stack_kernel

be_u32 rex::kernel::X_KTHREAD::stack_kernel

240 bytes below stack_base, set at creation.

◆ stack_limit

be_u32 rex::kernel::X_KTHREAD::stack_limit

Guest address of the low end of the stack.

◆ suspend_count

u8 rex::kernel::X_KTHREAD::suspend_count

Number of pending suspends, the thread is suspended while nonzero.

◆ suspend_sema

X_KSEMAPHORE rex::kernel::X_KTHREAD::suspend_sema

Reserved.

◆ terminated

u8 rex::kernel::X_KTHREAD::terminated

1 once the thread has exited.

◆ thread_state

u8 rex::kernel::X_KTHREAD::thread_state

One of the X_KTHREAD_STATE_FLAGS values.

◆ timer_list

X_LIST_ENTRY rex::kernel::X_KTHREAD::timer_list

List head set empty at creation.

◆ timer_list_lock

X_KSPINLOCK rex::kernel::X_KTHREAD::timer_list_lock

Reserved.

◆ tls_address

be_u32 rex::kernel::X_KTHREAD::tls_address

Guest address of the dynamic TLS block of the thread.

◆ unk_10

be_u32 rex::kernel::X_KTHREAD::unk_10

Part of an empty list head that points at itself.

◆ unk_118

be_u32 rex::kernel::X_KTHREAD::unk_118

Reserved.

◆ unk_124

be_u32 rex::kernel::X_KTHREAD::unk_124

Reserved.

◆ unk_128

be_u32 rex::kernel::X_KTHREAD::unk_128

Reserved.

◆ unk_12c

be_u32 rex::kernel::X_KTHREAD::unk_12c

Reserved.

◆ unk_14

be_u32 rex::kernel::X_KTHREAD::unk_14

Part of an empty list head that points at itself.

◆ unk_154

X_LIST_ENTRY rex::kernel::X_KTHREAD::unk_154

List head set empty at creation.

◆ unk_15c

u8 rex::kernel::X_KTHREAD::unk_15c[0x4]

Reserved.

◆ unk_168

u8 rex::kernel::X_KTHREAD::unk_168[0x4]

Reserved.

◆ unk_170

u8 rex::kernel::X_KTHREAD::unk_170[0xC]

Reserved.

◆ unk_17c

be_u32 rex::kernel::X_KTHREAD::unk_17c

Set to 1 at creation.

◆ unk_180

u8 rex::kernel::X_KTHREAD::unk_180[0x930]

Reserved.

◆ unk_a5

u8 rex::kernel::X_KTHREAD::unk_a5[0xB]

Reserved.

◆ unk_b8

u8 rex::kernel::X_KTHREAD::unk_b8

Reserved.

◆ unk_b9

u8 rex::kernel::X_KTHREAD::unk_b9

Reserved.

◆ unk_ba

u8 rex::kernel::X_KTHREAD::unk_ba

Reserved.

◆ unk_c8

u8 rex::kernel::X_KTHREAD::unk_c8

Reserved.

◆ unk_c9

u8 rex::kernel::X_KTHREAD::unk_c9

Reserved.

◆ unk_ca

u8 rex::kernel::X_KTHREAD::unk_ca

Reserved.

◆ unk_cb

u8 rex::kernel::X_KTHREAD::unk_cb

Reserved.

◆ user_apc_pending

u8 rex::kernel::X_KTHREAD::user_apc_pending

Reserved.

◆ wait_irql

u8 rex::kernel::X_KTHREAD::wait_irql

Reserved.

◆ wait_result

rex::BE<X_STATUS> rex::kernel::X_KTHREAD::wait_result

Reserved.

◆ wait_timeout_block

X_KWAIT_BLOCK rex::kernel::X_KTHREAD::wait_timeout_block

Wait block set at creation for the timeout of a wait.

◆ wait_timeout_timer

X_KTIMER rex::kernel::X_KTHREAD::wait_timeout_timer

Reserved.

◆ was_preempted

u8 rex::kernel::X_KTHREAD::was_preempted

Reserved.


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