Udostępnij za pośrednictwem


invalidVariant MDA

Uwaga

Ten artykuł jest specyficzny dla programu .NET Framework. Nie ma zastosowania do nowszych implementacji platformy .NET, w tym .NET 6 i nowszych wersji.

Asystent invalidVariant zarządzanego debugowania (MDA) jest aktywowany, gdy napotkano nieprawidłową VARIANT strukturę podczas wywołania z kodu natywnego lub niezarządzanego do kodu zarządzanego.

Objawy

Nieoczekiwane zachowanie podczas przejścia między kodem natywnym i zarządzanym obejmującym marshalling obiektu VARIANT do obiektu.

Przyczyna

Kod natywny przekazuje źle sformułowaną VARIANT strukturę do kodu zarządzanego. Środowisko uruchomieniowe próbuje przeprowadzić marshaling tego VARIANT obiektu do obiektu i aktywuje mdA, jeśli VARIANT obiekt jest nieprawidłowy. Przykłady nieprawidłowego VARIANTS obejmują obiekt VARIANT z VARTYPE VT_EMPTY | VT_BYREF lub z VARIANTVARTYPE VT_VARIANT.

Rozwiązanie

Kod natywny lub niezarządzany przekazujący VARIANT musi upewnić się, że VARIANT element jest poprawnie sformułowany i zainicjowany.

Wpływ na środowisko uruchomieniowe

MdA nie ma wpływu na zachowanie środowiska uruchomieniowego.

Wyjście

Komunikat MDA wskazujący, że środowisko uruchomieniowe wykryło nieprawidłowy VARIANT kod przekazany do kodu zarządzanego przez niezarządzany moduł.

Konfigurowanie

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

Zobacz też