Структура DacpSyncBlockData

Определяет буфер транспорта для сведений о блоке синхронизации.

Note

Этот API изначально был разработан для внутреннего использования во время выполнения. Хотя она теперь поддерживается для 3-го стороннего использования, мы рекомендуем по возможности работать с ICorDebugICorProfiler и 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: доступно с версии 4.7

См. также