ETHREAD 结构体属性介绍

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;
    };

    
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值