Delen via


Methode ICorDebugModule2::ApplyChanges

Hiermee worden de wijzigingen in de metagegevens en de wijzigingen in de algemene tussentaalcode (CIL) toegepast op het actieve proces.

Syntaxis

HRESULT ApplyChanges (
    [in] ULONG                       cbMetadata,
    [in, size_is(cbMetadata)] BYTE   pbMetadata[],
    [in] ULONG                       cbIL,
    [in, size_is(cbIL)] BYTE         pbIL[]
);

Parameterwaarden

cbMetadata [in] Grootte, in bytes, van de deltametagegevens.

pbMetadata [in] Buffer die de deltametagegevens bevat. Het adres van de buffer wordt geretourneerd vanuit de methode IMetaDataEmit2::SaveDeltaToMemory .

De relatieve virtuele adressen (RVA's) in de metagegevens moeten relatief zijn ten opzichte van het begin van de CIL-code.

cbIL [in] Grootte, in bytes, van de delta-CIL-code.

pbIL [in] Buffer die de bijgewerkte CIL-code bevat.

Opmerkingen

De pbMetadata parameter heeft een speciale indeling voor deltametagegevens (als uitvoer door IMetaDataEmit2::SaveDeltaToMemory). pbMetadata neemt eerdere metagegevens als basis en beschrijft afzonderlijke wijzigingen die op die basis moeten worden toegepast.

De parameter ] bevat daarentegen pbIL[de nieuwe CIL voor de bijgewerkte methode en is bedoeld om de vorige CIL voor die methode volledig te vervangen

Wanneer de delta-CIL en de metagegevens zijn gemaakt in het geheugen van het foutopsporingsprogramma, roept het foutopsporingsprogramma ApplyChanges aan om de wijzigingen naar de Common Language Runtime (CLR) te verzenden. De runtime werkt de metagegevenstabellen bij, plaatst de nieuwe CIL in het proces en stelt een JIT-compilatie (Just-In-Time) van de nieuwe CIL in. Wanneer de wijzigingen zijn toegepast, moet het foutopsporingsprogramma IMetaDataEmit2::ResetENCLog aanroepen om de volgende bewerkingssessie voor te bereiden. Het foutopsporingsprogramma kan vervolgens doorgaan met het proces.

Wanneer het foutopsporingsprogramma een module aanroept met deltametagegevens, moet het ook IMetaDataEmit::ApplyEditAndContinue aanroepen ApplyChanges met dezelfde deltametagegevens op alle kopieën van de metagegevens van die module, met uitzondering van de kopie die wordt gebruikt om de wijzigingen te verzenden. Als een kopie van de metagegevens op een of andere manier niet meer wordt gesynchroniseerd met de werkelijke metagegevens, kan het foutopsporingsprogramma die kopie altijd weggooien en een nieuwe kopie verkrijgen.

Als de ApplyChanges methode mislukt, heeft de foutopsporingssessie een ongeldige status en moet deze opnieuw worden gestart.

Requirements

Platformen: Zie ondersteunde besturingssystemen van .NET.

Rubriek: CorDebug.idl, CorDebug.h

Bibliotheek: CorGuids.lib

.NET-versies: Beschikbaar sinds .NET Framework 2.0