Freigeben über


failedQI-MDA

Der failedQI-MDA (Managed Debugging Assistant, Assistent für verwaltetes Debuggen) wird aktiviert, wenn die CLR stellvertretend für einen RCW (Runtime Callable Wrapper) QueryInterface für eine COM-Schnittstelle aufruft und der Aufruf von QueryInterface fehlschlägt.

Symptome

Eine Umwandlung für einen RCW schlägt fehl, oder ein Aufruf von COM von einem RCW aus schlägt unerwartet fehl.

Ursache

  • Der Aufruf erfolgt aus dem falschen Kontext.

  • Der registrierte Proxy kann den Aufruf von QueryInterface nicht ausführen, da der Aufruf im falschen Kontext erfolgte.

  • Ein OLE zugehöriger Proxy hat für HRESULT einen Fehlerwert zurückgegeben.

Lösung

Informationen finden Sie in der MSDN-Dokumentation zu COM-Regeln.

Auswirkungen auf die Laufzeit

Wenn ein Aufruf von QueryInterface fehlschlägt, erfolgt ein Kontextwechsel. Der Aufruf von QueryInterface wird dann erneut versucht, um zu ermitteln, ob ein falscher Kontext für das Fehlschlagen verantwortlich war.

Output

Der verwaltete Name der Schnittstelle, die GUID der Schnittstelle und der Wert von HRESULT für den fehlgeschlagenen Aufruf.

Konfiguration

<mdaConfig>
  <assistants>
    <failedQI/>
  </assistants>
</mdaConfig>

Siehe auch

Referenz

MarshalAsAttribute

Konzepte

Diagnostizieren von Fehlern mit Assistenten für verwaltetes Debuggen

Interop-Marshalling

Weitere Ressourcen

Interoperabilität