定义运行时线程信息的传输缓冲区。
Note
此 API 最初旨在供运行时内部使用。 尽管现在支持第三方使用,但我们建议尽量使用 ICorDebug 和 ICorProfiler 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 起可用