Compartilhar via


MDA invalidVariant

Observação

Este artigo é específico para aplicativos .NET Framework. Ele não se aplica a implementações mais recentes do .NET, incluindo o .NET 6 e versões posteriores.

O MDA (Assistente de Depuração Gerenciado) de invalidVariant é ativado quando uma estrutura VARIANT inválida é encontrada durante uma chamada de código não gerenciado ou nativo para código gerenciado.

Sintomas

Um comportamento inesperado durante a transição entre código nativo e gerenciado que envolve o marshalling de um VARIANT para um objeto.

Causa

Código nativo está passando uma estrutura VARIANT malformada para código gerenciado. O runtime tenta realizar marshaling dessa VARIANT para um objeto e ativa o MDA se o VARIANT não é válido. Exemplos de VARIANTS inválidos incluem um VARIANT com VARTYPE VT_EMPTY | VT_BYREF ou um VARIANT com VARTYPE VT_VARIANT.

Resolução

O código não gerenciado ou nativo passando o VARIANT deve garantir que o VARIANT seja corretamente formado e inicializado.

Efeito sobre o runtime

O MDA não tem nenhum efeito sobre o comportamento do runtime.

Saída

Uma mensagem MDA indicando que o runtime detectou inválido VARIANT passado para código gerenciado por um módulo não gerenciado.

Configuração

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

Confira também