Horizon Zero Dawn fails to query system memory size if CoQueryProxyBlanket() fails for wbem services.
Signed-off-by: Paul Gofman pgofman@codeweavers.com --- dlls/wbemprox/services.c | 20 ++++++++++++++++++-- dlls/wbemprox/tests/query.c | 7 +++++++ 2 files changed, 25 insertions(+), 2 deletions(-)
diff --git a/dlls/wbemprox/services.c b/dlls/wbemprox/services.c index 3a0963e1f6c..ab7146db2d8 100644 --- a/dlls/wbemprox/services.c +++ b/dlls/wbemprox/services.c @@ -88,8 +88,24 @@ static HRESULT WINAPI client_security_QueryBlanket( void **pAuthInfo, DWORD *pCapabilities ) { - FIXME("\n"); - return WBEM_E_FAILED; + FIXME("semi-stub.\n"); + + if (pAuthnSvc) + *pAuthnSvc = RPC_C_AUTHN_NONE; + if (pAuthzSvc) + *pAuthzSvc = RPC_C_AUTHZ_NONE; + if (pServerPrincName) + *pServerPrincName = NULL; + if (pAuthnLevel) + *pAuthnLevel = RPC_C_AUTHN_LEVEL_NONE; + if (pImpLevel) + *pImpLevel = RPC_C_IMP_LEVEL_DEFAULT; + if (pAuthInfo) + *pAuthInfo = NULL; + if (pCapabilities) + *pCapabilities = 0; + + return WBEM_NO_ERROR; }
static HRESULT WINAPI client_security_SetBlanket( diff --git a/dlls/wbemprox/tests/query.c b/dlls/wbemprox/tests/query.c index 17942cd89ae..74fdfaa9bc8 100644 --- a/dlls/wbemprox/tests/query.c +++ b/dlls/wbemprox/tests/query.c @@ -1713,6 +1713,7 @@ START_TEST(query) BSTR path = SysAllocString( L"ROOT\CIMV2" ); IWbemLocator *locator; IWbemServices *services; + DWORD authn_svc; HRESULT hr;
CoInitialize( NULL ); @@ -1728,6 +1729,12 @@ START_TEST(query) hr = IWbemLocator_ConnectServer( locator, path, NULL, NULL, NULL, 0, NULL, NULL, &services ); ok( hr == S_OK, "failed to get IWbemServices interface %08x\n", hr );
+ hr = CoQueryProxyBlanket( (IUnknown *)services, NULL, NULL, NULL, NULL, NULL, NULL, NULL ); + ok( hr == S_OK, "failed to query proxy blanket %08x\n", hr ); + + hr = CoQueryProxyBlanket( (IUnknown *)services, &authn_svc, NULL, NULL, NULL, NULL, NULL, NULL ); + ok( hr == S_OK, "failed to query proxy blanket %08x\n", hr ); + hr = CoSetProxyBlanket( (IUnknown *)services, RPC_C_AUTHN_WINNT, RPC_C_AUTHZ_NONE, NULL, RPC_C_AUTHN_LEVEL_CALL, RPC_C_IMP_LEVEL_IMPERSONATE, NULL, EOAC_NONE ); ok( hr == S_OK, "failed to set proxy blanket %08x\n", hr );