Windows XP sp3 利用WUA 离线扫描wsusscn2.cab,CPU100%,而且扫描时间需要7个小时。

Windows XP sp3 利用WUA 离线扫描wsusscn2.cab,CPU100%,并且扫描时间需要7个小时。。。
Windows XP sp3  利用WUA 离线扫描wsusscn2.cab,CPU100%,并且扫描时间需要7个小时。。。

在微软技术网站http://support.microsoft.com/kb/927891
下载927891更新,但是XP sp3 已经涵盖次更新。
安装了WUA 3.0后,依然如此。。
主要在Search函数时,系统陷入cpu100,无响应状态。
大家有过此问题经历么,不吝赐教,谢谢。

代码如下:
  

   IUpdateSession*        UpdateSession        = NULL;
   IUpdateServiceManager* UpdateServiceManager = NULL;
   IUpdateService*        UpdateService        = NULL;
   IUpdateSearcher*       UpdateSearcher       = NULL;
   ISearchResult*         SearchResult         = NULL;
   IUpdateCollection*     UpdateCollection     = NULL;
   BSTR                   bstrServiceID        = NULL;
   ServerSelection        ss                   = { ssOthers } ;

   BOOL                   bReturn              = TRUE;
   HRESULT                lResult              = S_OK;

   lResult = CoCreateInstance (CLSID_UpdateSession, NULL, CLSCTX_INPROC_SERVER, IID_IUpdateSession, (LPVOID*)&UpdateSession);
   if ((UpdateSession == NULL) || FAILED(lResult))
   {
      DbgPrint ("LX,%d", ScanCpp);
      bReturn = FALSE;
      goto ReleaseHere;
   }

   lResult = CoCreateInstance (CLSID_UpdateServiceManager, NULL, CLSCTX_INPROC_SERVER, IID_IUpdateServiceManager, (LPVOID*)&UpdateServiceManager);
   if ((UpdateServiceManager == NULL) || FAILED(lResult))
   {
      DbgPrint ("LX,%d", ScanCpp);
      bReturn = FALSE;
      goto ReleaseHere;
   }

   lResult = UpdateServiceManager->AddScanPackageService (bstrSerName, bstrCabPath, 0, &UpdateService);
   if ((UpdateService == NULL) || (FAILED(lResult)))
   {
      DbgPrint ("LX,%d", ScanCpp);
      bReturn = FALSE;
      goto ReleaseHere;
   }

   lResult = UpdateSession->CreateUpdateSearcher (&UpdateSearcher);
   if (FAILED (lResult) || (UpdateSearcher == NULL))
   {
      DbgPrint ("LX,%d", ScanCpp);
      bReturn = FALSE;
      goto ReleaseHere;
   }

   lResult = UpdateSearcher->put_ServerSelection (ss);
   if (FAILED (lResult))
   {
      DbgPrint ("LX,%d", ScanCpp);
      bReturn = FALSE;
      goto ReleaseHere;
   }

   lResult = UpdateService->get_ServiceID (&bstrServiceID);
   if ((FAILED (lResult)) || (bstrServiceID == NULL))
   {
      DbgPrint ("LX,%d", ScanCpp);
      bReturn = FALSE;
      goto ReleaseHere;
   }

   lResult = UpdateSearcher->put_ServiceID (bstrServiceID);
   if ((FAILED (lResult)) || (bstrServiceID == NULL))
   {
      DbgPrint ("LX,%d", ScanCpp);
      bReturn = FALSE;
      goto ReleaseHere;
   }
   
   // 调用下面函数时,在xp系统上瞬间CPU 100%,而且几个小时不返回。。。
   lResult = UpdateSearcher->Search (
      bInstalled ? (_bstr_t("Type = 'Software' and IsInstalled = 1")) : (_bstr_t("Type = 'Software' and IsInstalled = 0")),