invalidVariant MDA

The invalidVariant managed debugging assistant (MDA) is activated when an invalid VARIANT structure is encountered during a call from native or unmanaged code to managed code.

Symptoms

Unexpected behavior during a transition between native and managed code involving the marshaling of a VARIANT to an object.

Cause

Native code is passing a malformed VARIANT structure to managed code. The runtime attempts to marshal this VARIANT to an object and activates the MDA if the VARIANT is not valid. Examples of invalid VARIANTS include a VARIANT with VARTYPE VT_EMPTY | VT_BYREF or a VARIANT with VARTYPE VT_VARIANT.

Resolution

The native or unmanaged code passing the VARIANT must ensure that the VARIANT is correctly formed and initialized.

Effect on the Runtime

The MDA has no effect on the runtime's behavior.

Output

An MDA message indicating that the runtime detected an invalid VARIANT passed to managed code by an unmanaged module.

Configuration

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

See Also

Concepts

Diagnosing Errors with Managed Debugging Assistants

Interop Marshaling Overview

Reference

MarshalAsAttribute

Other Resources

Interoperability