同期ブロック情報のトランスポート バッファーを定義します。
Note
この API はもともと、ランタイムで内部使用するために設計されました。 現在はサードパーティによる使用がサポートされていますが、可能な場合は API ICorDebug および ICorProfiler を使用することをお勧めします。
構文
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を呼び出して構造体を設定します。 |
注釈
この構造体はランタイム内に存在し、ヘッダーまたはライブラリ ファイルを介して公開されることはありません。 これを使用するには、上で指定した構造を定義します。
必要条件
:「システム要件」を参照してください。
ヘッダ: 何一つ
図書館: 何一つ
.NET Framework のバージョン: 4.7 以降で利用可能
こちらも参照ください
GitHub で Microsoft と共同作業する
このコンテンツのソースは GitHub にあります。そこで、issue や pull request を作成および確認することもできます。 詳細については、共同作成者ガイドを参照してください。
.NET