Ticket #5392: wmi.patch

File wmi.patch, 1.3 KB (added by Ion Gaztañaga, 12 years ago)

Patch for WMI to make blocking call

  • boost/interprocess/detail/win32_api.hpp

    old new  
    166166const long CLSCTX_INPROC_SERVER_IG   = 0x1;
    167167const long CLSCTX_LOCAL_SERVER_IG   = 0x4;
    168168const long WBEM_FLAG_RETURN_IMMEDIATELY_IG = 0x10;
     169const long WBEM_FLAG_RETURN_WHEN_COMPLETE_IG = 0x0;
     170const long WBEM_FLAG_FORWARD_ONLY_IG = 0x20;
    169171const long WBEM_INFINITE_IG = 0xffffffffL;
    170172const long RPC_E_TOO_LATE_IG = 0x80010119L;
    171173const long S_OK_IG = 0L;
     
    15271529      if ( 0 != pWbemServices->ExecQuery(
    15281530            L"WQL",
    15291531            strValue.c_str(),
    1530             WBEM_FLAG_RETURN_IMMEDIATELY_IG,
     1532            //WBEM_FLAG_RETURN_IMMEDIATELY_IG,
     1533            WBEM_FLAG_RETURN_WHEN_COMPLETE_IG | WBEM_FLAG_FORWARD_ONLY_IG,
    15311534            0,
    15321535            &pEnumObject
    15331536            )
     
    15371540
    15381541      com_releaser<IEnumWbemClassObject_IG> IEnumWbemClassObject_releaser(pEnumObject);
    15391542
    1540       if ( 0 != pEnumObject->Reset() ){
    1541          return false;
    1542       }
     1543      //WBEM_FLAG_FORWARD_ONLY_IG incompatible with Reset
     1544      //if ( 0 != pEnumObject->Reset() ){
     1545         //return false;
     1546      //}
    15431547
    15441548      wchar_variant vwchar;
    15451549      unsigned long uCount = 1, uReturned;