failedQI MDA

注释

本文特定于 .NET Framework。 它不适用于 .NET 的较新版本实现,包括 .NET 6 及更高版本。

failedQI 运行时代表运行时可调用包装器(RCW)对 COM 接口指针进行调用 QueryInterface 并且 QueryInterface 调用失败时,将激活托管调试助手(MDA)。

症状

RCW 上的强制转换失败,或者从 RCW 调用 COM 意外失败。

原因

  • 调用来自错误的上下文。

  • 注册的代理在调用失败 QueryInterface ,因为调用尝试在错误的上下文中。

  • OLE 拥有的代理返回了失败的 HRESULT。

解决方案

请参阅有关 COM 规则的 MSDN 文档。

对运行时的影响

QueryInterface如果调用失败,则会切换上下文,QueryInterface并再次尝试调用以查看上下文是否出错。

输出

接口的托管名称、接口的 GUID 和失败的 HRESULT。

配置

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

另见