Compartilhar via


invalidVariant MDA

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

Sintomas

Um comportamento inesperado durante uma transição entre códigos nativos e gerenciados, envolvendo o empacotamento de um VARIANT a um objeto.

Causa

Código nativo está passando um arquivo malformado VARIANT estrutura para código gerenciado. Tentativas de runtime para empacotar isso VARIANT a um objeto e ativa o MDA, se a VARIANT não é válido. Exemplos de inválido VARIANTs incluem um VARIANT com VARTYPE VT_EMPTY | VT_BYREF ou um VARIANT com VARTYPE VT_VARIANT.

Resolução

O código nativo ou gerenciado passando a VARIANT deve garantir que o VARIANT for formada e inicializado corretamente.

Efeito sobre o tempo de execução.

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

Saída

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

Configuração

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

Consulte também

Referência

MarshalAsAttribute

Conceitos

Diagnosticar erros com assistentes de depuração gerenciada

Interop Marshaling

Outros recursos

Interoperabilidade