Share via


failedQI-MDA

Aktualisiert: November 2007

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.

Ausgabe

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

Konzepte

Diagnostizieren von Fehlern mit Assistenten für verwaltetes Debuggen

Übersicht über das Interop-Marshalling

Referenz

MarshalAsAttribute

Weitere Ressourcen

Interoperabilität