【问题标题】:How can I fail CoCreateInstanceEx, CoInitializeSecurity, CoSetProxyBlanket, WMI calls如何使 CoCreateInstanceEx、CoInitializeSecurity、CoSetProxyBlanket、WMI 调用失败
【发布时间】:2012-04-17 11:31:51
【问题描述】:

我正在执行测试作为我的单元测试项目的一部分。 我想知道是否有任何方法可以使以下调用失败:

CoCreateInstance 初始化安全 CoSetProxyBlanket WMI 调用

我想以管理员用户身份执行此操作,但无法访问任何代码,例如停止任何服务或删除任何 dll

我必须这样做以增加负代码覆盖率。

谁能帮帮我:)

非常感谢:)

【问题讨论】:

    标签: c++ unit-testing com wmi


    【解决方案1】:

    CoCreateInstance: 修改注册表很容易失败。例如,如果您正在初始化 WMI 类,请在注册表中找到该类并重命名其键和值。请务必先进行备份。

    CoInitializeSecurity:我还没有尝试过,但我很确定您可以使用权限较低的用户使其失败。例如,没有管理员权限的用户将无法获得硬盘序列号。

    CoSetProxyBlanket: 再说一次,我认为你可以让一个特权较低的用户失败。但我不确定这个。

    【讨论】:

    • 非常感谢 :) 你能告诉我我需要寻找哪个注册表节点
    【解决方案2】:

    只需连续调用两次CoInitializeSecurity 即可轻松失败。第二次调用将失败,返回 0x80010119 (RPC_E_TOO_LATE)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多