Partilhar via


MDA invalidVariant

Nota

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

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

Sintomas

Comportamento inesperado durante uma transição entre código nativo e gerenciado envolvendo a empacotação de um VARIANT para um objeto.

Motivo

O código nativo está passando uma estrutura malformada VARIANT para o código gerenciado. O tempo de execução tenta empacotar isso VARIANT para um objeto e ativa o MDA se o VARIANT não for válido. Exemplos de S inválidos VARIANTincluem um VARIANT com VARTYPE VT_EMPTY | VT_BYREF ou um VARIANT com VARTYPE VT_VARIANT.

Resolução

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

Efeito no tempo de execução

O MDA não tem efeito sobre o comportamento do tempo de execução.

Saída

Uma mensagem MDA indicando que o tempo de execução detetou um código inválido VARIANT passado para o código gerenciado por um módulo não gerenciado.

Configuração

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

Consulte também