invalidVariant MDA

invalidVariant マネージド デバッグ アシスタント (MDA: Managed Debugging Assistant) は、ネイティブ コードまたはアンマネージド コードからマネージド コードへの呼び出し時に、無効な VARIANT 構造体が見つかるとアクティブ化されます。

現象

VARIANT からオブジェクトへのマーシャリングを含む、ネイティブ コードとマネージド コードの間の遷移中に、予期しない動作が発生します。

原因

ネイティブ コードが、不適切な VARIANT 構造体をマネージド コードに渡しています。 ランタイムは、この VARIANT をオブジェクトにマーシャリングしようとし、VARIANT が有効でない場合に MDA がアクティブ化されます。 無効な VARIANT には、VARTYPE VT_EMPTY | VT_BYREF の VARIANT や、VARTYPE VT_VARIANT の VARIANT などがあります。

解決方法

VARIANT を渡すネイティブ コードまたはアンマネージ コードでは、VARIANT の形式と初期化が正しいことを確認する必要があります。

ランタイムへの影響

この MDA は、ランタイムの動作への影響はありません。

出力

無効な VARIANT がアンマネージド モジュールによりマネージド コードに渡されたことを、ランタイムが検出したことを示す MDA メッセージです。

構成

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

関連項目