invalidVariant-MDA

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 VARIANTS 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>  

Siehe auch