DacpSyncBlockData (estructura)

Define un búfer de transporte para la información del bloque de sincronización.

Note

Esta API se diseñó originalmente para su uso interno en tiempo de ejecución. Aunque ahora es compatible con el uso de terceros, se recomienda trabajar con las API ICorDebug y ICorProfiler siempre que sea posible.

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

Miembro Descripción
Object Dirección del objeto asociado al bloque de sincronización.
bFree Valor que indica si el bloque de sincronización es libre. Si se establece este miembro, no es útil ningún otro campo.
SyncBlockPointer Dirección del bloque de sincronización.
COMFlags Marcas que describen los datos de interoperabilidad COM asociados al bloque de sincronización.
MonitorHeld Número de veces que se mantiene el monitor.
Recursion Recuento de recursividad del monitor.
HoldingThread Dirección del subproceso que contiene el monitor.
AdditionalThreadCount Número de subprocesos adicionales asociados al bloque de sincronización.
appDomainPtr Dirección del dominio de aplicación asociado al bloque de sincronización.
SyncBlockCount Número de bloques de sincronización. Los bloques de sincronización se pueden solicitar de 1 a este valor.
Request Rellena la estructura llamando a ISOSDacInterface::GetSyncBlockData.

Remarks

Esta estructura reside dentro del tiempo de ejecución y no se expone a través de ningún encabezado o archivo de biblioteca. Para usarlo, defina la estructura como se especificó anteriormente.

Requisitos

Plataformas: Consulte Requisitos del sistema.
Encabezado: Ninguno
Biblioteca: Ninguno
versiones de .NET Framework: disponibles desde la versión 4.7

Consulte también