invalidVariant-MDA
Hinweis
Dieser Artikel gilt für das .NET Framework. Sie gilt nicht für neuere Implementierungen von .NET, einschließlich .NET 6 und höherer Versionen.
Der Assistent für verwaltetes Debugging (MDA) invalidVariant
wird aktiviert, wenn während eines Aufrufs aus systemeigenem oder unverwaltetem Code an verwalteten Code eine ungültige VARIANT
-Struktur erkannt wird.
Symptome
Unerwartetes Verhalten während eines Übergangs zwischen nativem und verwaltetem Code, das das Marshalling eines VARIANT
an ein Objekt einbezieht.
Ursache
Systemeigener Code übergibt eine fehlerhafte VARIANT
-Struktur an verwalteten Code. Zur Laufzeit wird versucht, diesen VARIANT
an ein Objekt zu marshallen, und der MDA wird aktiviert, wenn der VARIANT
ungültig ist. Beispiele für ungültige VARIANT
S enthalten eine VARIANT
mit VARTYPE
VT_EMPTY | VT_BYREF oder eine VARIANT
mit VARTYPE
VT_VARIANT.
Lösung
Der systemeigene oder unverwaltete Code, der den VARIANT
übergibt, muss sicherstellen, dass der VARIANT
korrekt geformt und initialisiert ist.
Auswirkungen auf die Laufzeit
Dieser MDA hat keine Auswirkungen auf die Laufzeit.
Output
Eine MDA-Meldung, die angibt, dass zur Laufzeit ein ungültiger VARIANT
erkannt wurde, der von einem unverwalteten Modul an verwalteten Code übergeben wurde.
Konfiguration
<mdaConfig>
<assistants>
<invalidVariant />
</assistants>
</mdaConfig>