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 VARIANT
S 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>