定义同步块信息的传输缓冲区。
Note
此 API 最初旨在供运行时内部使用。 尽管现在支持第三方使用,但我们建议尽量使用 ICorDebug 和 ICorProfiler API。
Syntax
struct DacpSyncBlockData : ZeroInit<DacpSyncBlockData>
{
CLRDATA_ADDRESS Object;
BOOL bFree; // if set, no other fields are useful
// fields below provide data from this, so it's just for display
CLRDATA_ADDRESS SyncBlockPointer;
DWORD COMFlags;
UINT MonitorHeld;
UINT Recursion;
CLRDATA_ADDRESS HoldingThread;
UINT AdditionalThreadCount;
CLRDATA_ADDRESS appDomainPtr;
// SyncBlockCount will always be filled in with the number of SyncBlocks.
// SyncBlocks may be requested from [1,SyncBlockCount]
UINT SyncBlockCount;
// SyncBlockNumber must be from [1,SyncBlockCount]
// If there are no SyncBlocks, a call to Request with SyncBlockCount = 1
// will return E_FAIL.
HRESULT Request(ISOSDacInterface *sos, UINT SyncBlockNumber)
{
return sos->GetSyncBlockData(SyncBlockNumber, this);
}
};
Members
| 成员 | 说明 |
|---|---|
Object |
与同步块关联的对象的地址。 |
bFree |
一个值,该值指示同步块是否可用。 如果设置了此成员,则没有其他字段很有用。 |
SyncBlockPointer |
同步块的地址。 |
COMFlags |
描述与同步块关联的 COM 互操作数据的标志。 |
MonitorHeld |
监视的保留次数。 |
Recursion |
监视器递归计数。 |
HoldingThread |
保存监视器的线程的地址。 |
AdditionalThreadCount |
与同步块关联的其他线程数。 |
appDomainPtr |
与同步块关联的应用程序域的地址。 |
SyncBlockCount |
同步块数。 可以通过此值从 1 请求同步块。 |
Request |
通过调用 ISOSDacInterface::GetSyncBlockData填充结构。 |
Remarks
此结构位于运行时内,不会通过任何标头或库文件公开。 若要使用它,请定义上面指定的结构。
要求
平台:请参阅系统要求。
页眉: 没有
图书馆: 没有
.NET Framework 版本:自 4.7 起可用