DacpSyncBlockData-Struktur

Definiert einen Transportpuffer für Synchronisierungsblockinformationen.

Note

Diese API wurde ursprünglich für die interne Verwendung in der Runtime entwickelt. Obwohl sie jetzt für die Verwendung durch Dritte unterstützt wird, wird empfohlen, nach Möglichkeit mit den APIs ICorDebug und ICorProfiler zu arbeiten.

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);
    }
};

Elemente

Mitglied Beschreibung
Object Die Adresse des Objekts, das dem Synchronisierungsblock zugeordnet ist.
bFree Ein Wert, der angibt, ob der Synchronisierungsblock frei ist. Wenn dieses Element festgelegt ist, sind keine anderen Felder nützlich.
SyncBlockPointer Die Adresse des Synchronisierungsblocks.
COMFlags Flags, die COM-Interoperabilitätsdaten beschreiben, die dem Synchronisierungsblock zugeordnet sind.
MonitorHeld Die Häufigkeit, mit der der Monitor gehalten wird.
Recursion Die Anzahl der Monitor rekursion.
HoldingThread Die Adresse des Threads, der den Monitor enthält.
AdditionalThreadCount Die Anzahl zusätzlicher Threads, die dem Synchronisierungsblock zugeordnet sind.
appDomainPtr Die Adresse der Anwendungsdomäne, die dem Synchronisierungsblock zugeordnet ist.
SyncBlockCount Die Anzahl der Synchronisierungsblöcke. Synchronisierungsblöcke können von 1 bis diesem Wert angefordert werden.
Request Füllt die Struktur auf, indem sie aufgerufen wird ISOSDacInterface::GetSyncBlockData.

Remarks

Diese Struktur befindet sich innerhalb der Laufzeit und wird nicht über Kopfzeilen oder Bibliotheksdateien verfügbar gemacht. Um sie zu verwenden, definieren Sie die Struktur wie oben angegeben.

Anforderungen

Plattformen: Informationen finden Sie unter Systemanforderungen.
Kopfball: Nichts
Bibliothek: Nichts
.NET Framework-Versionen: Seit 4.7 verfügbar

Siehe auch