Dear sir.
help please, win10 x64 and vs2017
below code will case the process WmiPrvSE.exe high memory footprint.
HRESULT hres;
IWbemClassObject* pInParamsDefinition = NULL;
IWbemClassObject* pClassInstance = NULL;
IWbemClassObject* pInClassParamsDefinition = NULL;
IWbemClassObject* pInClassInstance = NULL;
IWbemClassObject* pOutClass = NULL;
_bstr_t szMethodName=L"Your Method Name";
WCHAR sInClassName[]=L"Your Class Name";
VARIANT var;
PVOID pVoid;
// detect hres value not post to here
hres = pClass->GetMethod(szMethodName, 0, &pInParamsDefinition, NULL);
hres = pInParamsDefinition->SpawnInstance(0, &pClassInstance);
SAFE_RELEASE_OBJECT(pInParamsDefinition);// Don't need the class any more
hres = pSvc->GetObject(sInClassName, 0, NULL, &pInClassParamsDefinition, NULL);
hres = pInClassParamsDefinition->SpawnInstance(0,&pInClassInstance);
SAFE_RELEASE_OBJECT(pInClassParamsDefinition);// Don't need the class any more
VariantInit(&var);
V_VT(&var)=VT_I4;
V_I4(&var)=1234;
pInClassInstance->Put(L"Value0",0,&var,0);
VariantClear(&var);
V_VT(&var) = VT_I4;
V_I4(&var)=2345;
pInClassInstance->Put(L"Value1",0,&var,0);
VariantClear(&var);
V_VT(&var)=VT_UNKNOWN;
pInClassInstance->QueryInterface(IID_IUnknown, (PVOID*)&V_UNKNOWN(&var));
pClassInstance->Put(L"Pack",0,&var,0);
SAFE_RELEASE_OBJECT(pInClassInstance);
VariantClear(&var);
// Execute Method
hres = pSvc->ExecMethod(varPath.bstrVal, szMethodName,0,NULL, pClassInstance,&pOutClass,NULL);
if (SUCCEEDED(hres)&&pOutClass!=NULL)
{
pOutClass->Get(L"status",0,&var,0,0);
pWMI_VALUE->status=V_UI4(&var);
VariantClear(&var);
}
else
{
}
FUNCTIONEXIT_:
SAFE_RELEASE_OBJECT(pOutClass);
SAFE_RELEASE_OBJECT(pClassInstance);