DacpSyncBlockData 構造体

同期ブロック情報のトランスポート バッファーを定義します。

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 以降で利用可能

こちらも参照ください