typedef struct _ETHREAD {
KTHREAD Tcb;//内嵌了KTHREAD对象作为第一个数据成员
LARGE_INTEGER CreateTime;//包含了线程创建时间,他是在线程创建时被赋值的。
union {
LARGE_INTEGER ExitTime;//包含了线程的退出时间,
LIST_ENTRY LpcReplyChain;//跨进程通信
LIST_ENTRY KeyedWaitChain;//代建事件的等待链表
};
union {
NTSTATUS ExitStatus;//线程的退出状态。
PVOID OfsChain;
};
//
// Registry
//
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
//
struct _ETHREAD *ReaperLink;//单链表节点,它仅在线程退出时使用,当线程被终止时,该节点被挂到PsReaperListHead.
//
// Keyvalue being waited for
//
PVOID KeyedWaitValue;//带键事件的键值。
};
KSPIN_LOCK ActiveTimerListLock;//操作次链表的自旋锁
LIST_ENTRY ActiveTimerListHead;//双链表头,包含了当前线程的所有的定时器
CLIENT_ID Cid;//包含了线程的唯一标识符。
//
// Lpc
//
union {
KSEMAPHORE LpcReplySemaphore;//用于LPC应答通知
KSEMAPHORE KeyedWaitSemaphore;//用于处理代建的事件
};
union {
PVOID LpcReplyMessage; // -> Message that contains t
执行体线程--ETHREAD
最新推荐文章于 2022-07-27 05:42:55 发布