Delen via


<> NetFx40_PInvokeStackResilience element

Hiermee geeft u op of de runtime automatisch onjuiste platformaanroepdeclaraties tijdens runtime oplost, ten koste van tragere overgangen tussen beheerde en onbeheerde code.

<configuratie>
  <Runtime>
    <NetFx40_PInvokeStackResilience>

Syntax

<NetFx40_PInvokeStackResilience  enabled="1|0"/>

Kenmerken en elementen

In de volgende secties worden kenmerken, onderliggende elementen en bovenliggende elementen beschreven.

Kenmerken

Kenmerk Beschrijving
enabled Vereist kenmerk.

Hiermee geeft u op of de runtime onjuiste platformaanroepdeclaraties detecteert en de stack automatisch corrigeert tijdens runtime op 32-bits platforms.

ingeschakeld kenmerk

Waarde Beschrijving
0 De runtime maakt gebruik van de snellere interop marshalling-architectuur die is geïntroduceerd in de .NET Framework 4, waarmee onjuiste aanroepdeclaraties voor platformen niet worden gedetecteerd en opgelost. Dit is de standaardinstelling.
1 De runtime maakt gebruik van tragere overgangen waarmee onjuiste declaraties voor platformaanroepen worden gedetecteerd en opgelost.

Onderliggende elementen

Geen.

Bovenliggende elementen

Element Beschrijving
configuration Het hoofdelement in elk configuratiebestand dat wordt gebruikt door de common language runtime en .NET Framework toepassingen.
runtime Bevat informatie over opties voor runtime-initialisatie.

Opmerkingen

Met dit element kunt u snellere interop marshalling ruilen voor runtime-tolerantie tegen onjuiste declaraties voor platformaanroepen.

Vanaf de .NET Framework 4 biedt een gestroomlijnde interop marshalling-architectuur een aanzienlijke prestatieverbetering voor overgangen van beheerde code naar onbeheerde code. In eerdere versies van de .NET Framework heeft de marshalllaag onjuiste platformaanroepdeclaraties op 32-bits platforms gedetecteerd en de stack automatisch hersteld. De nieuwe marshallarchitectuur elimineert deze stap. Als gevolg hiervan zijn overgangen zeer snel, maar een onjuiste aanroepdeclaratie van het platform kan een programmafout veroorzaken.

Om het gemakkelijker te maken om onjuiste declaraties tijdens de ontwikkeling te detecteren, is de foutopsporingservaring van Visual Studio verbeterd. De PInvokeStackImbalance Managed Debugging Assistant (MDA) meldt u over onjuiste declaraties voor platformaanroepen wanneer uw toepassing wordt uitgevoerd met het foutopsporingsprogramma bijgevoegd.

Als u scenario's wilt oplossen waarin uw toepassing onderdelen gebruikt die u niet opnieuw kunt compileren en die onjuiste declaraties voor platformaanroepen hebben, kunt u het NetFx40_PInvokeStackResilience -element gebruiken. Als u dit element toevoegt aan het configuratiebestand van uw toepassing met enabled="1" kiest u voor een compatibiliteitsmodus met het gedrag van eerdere versies van de .NET Framework, ten koste van tragere overgangen. Assembly's die zijn gecompileerd op basis van eerdere versies van de .NET Framework worden automatisch in deze compatibiliteitsmodus opgenomen en hebben dit element niet nodig.

Configuratiebestand

Dit element kan alleen worden gebruikt in het configuratiebestand van de toepassing.

Voorbeeld

In het volgende voorbeeld ziet u hoe u kunt kiezen voor verbeterde tolerantie tegen onjuiste platformaanroepdeclaraties voor een toepassing, ten koste van tragere overgangen tussen beheerde en onbeheerde code.

<configuration>
   <runtime>
      <NetFx40_PInvokeStackResilience enabled="1"/>
   </runtime>
</configuration>

Zie ook