typedef struct _ETHREAD {
KTHREAD Tcb;
// 线程创建时间
LARGE_INTEGER CreateTime;
union {
// 线程退出时间
LARGE_INTEGER ExitTime;
// 用于跨进程通信
LIST_ENTRY LpcReplyChain;
// 带键事件等待链表
LIST_ENTRY KeyedWaitChain;
};
union {
// 线程退出状态
NTSTATUS ExitStatus;
// WRK不使用
PVOID OfsChain;
};
//
// Registry
//
// PCM_POST_BLOCK 链表头,用于线程向配置管理器登记注册表键的变化通知
LIST_ENTRY PostBlockList;
//
// Single linked list of termination blocks
//
union {
//
// List of termination ports
//
// 线程退出时,系统通知所有已经登记过要接收其终止事件的端口
PTERMINATION_PORT TerminationPort;
//
// List of threads to be reaped. Only used at thread exit
//
// 线程退出时,该节点挂到 PsReaperListHead 链表上,在线程回收器(reaper)
// 的工作项目(WorkItem)中该线程的内核栈得以收回。
struct _ETHREAD *ReaperLink;
//
// Keyvalue being waited for
//
// 带键事件的键值
PVOID KeyedWaitValue;
};
// 定时器链表自旋锁
KSPIN_LOCK ActiveTimerListLock;
// 包含当前线程的所有定时器
LIST_ENTRY ActiveTimerListHead;
// 线程唯一标识符,由两部分组成,UniqueProcess 和 UniqueThread,
// UniqueProcess 等于所属进程的 UniqueProcessId ,UniqueThread 等于
// 此线程对象在进程句柄表中的句柄
CLIENT_ID Cid;
//
// Lpc
//
union {
// LPC应答通知
KSEMAPHORE LpcReplySemaphore;
// 用于处理带键的事件
KSEMAPHORE KeyedWaitSemaphore;
};
ETHREAD 结构体属性介绍
最新推荐文章于 2023-05-08 09:53:07 发布
本文详细剖析了ETHREAD结构体在操作系统中的关键属性,包括线程上下文、调度信息、同步状态等,帮助读者深化对操作系统内核线程管理的理解。
摘要由CSDN通过智能技术生成