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>