DacpSyncBlockData, structure

Définit une mémoire tampon de transport pour les informations de bloc de synchronisation.

Note

Cette API a été conçue à l’origine pour une utilisation interne dans le runtime. Bien qu’elle soit désormais prise en charge pour une utilisation tierce, nous vous recommandons, autant que possible, d’utiliser les API ICorDebug et ICorProfiler.

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

Membre Description
Object Adresse de l’objet associé au bloc de synchronisation.
bFree Valeur qui indique si le bloc de synchronisation est libre. Si ce membre est défini, aucun autre champ n’est utile.
SyncBlockPointer Adresse du bloc de synchronisation.
COMFlags Indicateurs qui décrivent les données d’interopérabilité COM associées au bloc de synchronisation.
MonitorHeld Nombre de fois où le moniteur est conservé.
Recursion Nombre de récursivités du moniteur.
HoldingThread Adresse du thread qui contient le moniteur.
AdditionalThreadCount Nombre de threads supplémentaires associés au bloc de synchronisation.
appDomainPtr Adresse du domaine d’application associé au bloc de synchronisation.
SyncBlockCount Nombre de blocs de synchronisation. Les blocs de synchronisation peuvent être demandés de 1 à cette valeur.
Request Remplit la structure en appelant ISOSDacInterface::GetSyncBlockData.

Remarks

Cette structure se trouve à l’intérieur du runtime et n’est pas exposée par le biais d’en-têtes ou de fichiers de bibliothèque. Pour l’utiliser, définissez la structure comme indiqué ci-dessus.

Exigences

Plateformes : Consultez Configuration requise.
En-tête: Aucun
Bibliothèque: Aucun
versions de .NET Framework : disponible depuis la version 4.7

Voir aussi