Delen via


invalidVariant MDA

Notitie

Dit artikel is specifiek voor .NET Framework. Dit geldt niet voor nieuwere implementaties van .NET, waaronder .NET 6 en nieuwere versies.

De invalidVariant beheerde foutopsporingsassistent (MDA) wordt geactiveerd wanneer er een ongeldige VARIANT structuur wordt aangetroffen tijdens een aanroep van systeemeigen of onbeheerde code naar beheerde code.

Symptomen

Onverwacht gedrag tijdens een overgang tussen systeemeigen en beheerde code met betrekking tot het marshallen van een VARIANT naar een object.

Oorzaak

Systeemeigen code geeft een onjuiste VARIANT structuur door aan beheerde code. De runtime probeert dit VARIANT naar een object te marshalen en activeert de MDA als deze VARIANT niet geldig is. Voorbeelden van ongeldige VARIANTS zijn een VARIANT met VARTYPE VT_EMPTY | VT_BYREF of een VARIANT met VARTYPE VT_VARIANT.

Oplossing

De systeemeigen of onbeheerde code die de VARIANT code doorgeeft, moet ervoor zorgen dat de VARIANT code correct is gevormd en geïnitialiseerd.

Effect op de runtime

De MDA heeft geen invloed op het gedrag van de runtime.

Uitvoer

Een MDA-bericht dat aangeeft dat de runtime een ongeldige VARIANT doorgegeven aan beheerde code heeft gedetecteerd door een niet-beheerde module.

Configuratie

<mdaConfig>
  <assistants>
    <invalidVariant />
  </assistants>
</mdaConfig>

Zie ook