IUpdateSearch性能问题

IUpdateSearcher performance issues

本文关键字:问题 性能 IUpdateSearch      更新时间:2023-10-16

我正在使用IUpdateSessionIUpdateSearcher来获取Windows系统的可用更新列表。

hr = CoCreateInstance(CLSID_UpdateSession, NULL, CLSCTX_INPROC_SERVER,  IID_IUpdateSession, (void**)&pUpdateSession);
if (FAILED(hr) || pUpdateSession == NULL)
{
    return;
}
hr = pUpdateSession->CreateUpdateSearcher(&pUpdateSearcher);
if (FAILED(hr) || pUpdateSearcher == NULL)
{
    return;
}
pUpdateSearcher->put_Online(VARIANT_FALSE);
pUpdateSearcher->put_CanAutomaticallyUpgradeService(VARIANT_FALSE);
pUpdateSearcher->put_IncludePotentiallySupersededUpdates(VARIANT_FALSE);

hr = pUpdateSearcher->Search(BSTR(L"IsInstalled=0 AND IsHidden=0"), &type);
if (FAILED(hr) || type == NULL)
{
    return;
}
else
{
    ... Print results etc. etc.
}

当你有一个(或少量)更新时,这非常有效。在有109个可用更新的新机器上进行测试时,->Search()调用需要10分钟才能处理。

这是正常的行为吗,还是可以采取措施来提高表现?

提前感谢您的帮助。其他实现可用更新列表的解决方案也很受欢迎。

这是正常行为,我认为您可能正在新的Windows7虚拟机上搜索更新。