DacpThreadData 结构

定义运行时线程信息的传输缓冲区。

Note

此 API 最初旨在供运行时内部使用。 尽管现在支持第三方使用,但我们建议尽量使用 ICorDebugICorProfiler API。

Syntax

struct DacpThreadData : ZeroInit<DacpThreadData>
{
    DWORD corThreadId;
    DWORD osThreadId;
    int state;
    ULONG preemptiveGCDisabled;
    CLRDATA_ADDRESS allocContextPtr;
    CLRDATA_ADDRESS allocContextLimit;
    CLRDATA_ADDRESS context;
    CLRDATA_ADDRESS domain;
    CLRDATA_ADDRESS pFrame;
    DWORD lockCount;
    CLRDATA_ADDRESS firstNestedException; // Pass this pointer to DacpNestedExceptionInfo
    CLRDATA_ADDRESS teb;
    CLRDATA_ADDRESS fiberData;
    CLRDATA_ADDRESS lastThrownObjectHandle;
    CLRDATA_ADDRESS nextThread;

    HRESULT Request(ISOSDacInterface *sos, CLRDATA_ADDRESS addr)
    {
        return sos->GetThreadData(addr, this);
    }
};

Members

成员 说明
corThreadId 托管线程标识符。
osThreadId 操作系统线程标识符。
state 线程状态标志。
preemptiveGCDisabled 一个值,该值指示是否为线程禁用抢占性垃圾回收。
allocContextPtr 线程的当前分配上下文指针。
allocContextLimit 线程的分配上下文限制。
context 线程上下文的地址。
domain 线程的应用程序域的地址。
pFrame 当前帧的地址。
lockCount 线程持有的锁数。
firstNestedException 第一个嵌套异常的地址。 将此指针传递给 DacpNestedExceptionInfo.
teb 线程环境块的地址。
fiberData 光纤数据的地址。
lastThrownObjectHandle 在线程上引发的最后一个对象的句柄。
nextThread 运行时线程列表中的下一个线程的地址。
Request 通过调用 ISOSDacInterface::GetThreadData填充结构。

Remarks

此结构位于运行时内,不会通过任何标头或库文件公开。 若要使用它,请定义上面指定的结构。

要求

平台:请参阅系统要求
页眉: 没有
图书馆: 没有
.NET Framework 版本:自 4.7 起可用

另见