[2/2] wbemprox: Stub __SystemSecurity::SetSD.
Vincent Povirk
madewokherd at gmail.com
Mon Aug 18 15:11:48 CDT 2014
-------------- next part --------------
From 38de66af6ba9eda6761f1d291e090b74cf30466e Mon Sep 17 00:00:00 2001
From: Vincent Povirk <vincent at codeweavers.com>
Date: Thu, 7 Aug 2014 14:40:03 -0500
Subject: [PATCH 2/2] wbemprox: Stub __SystemSecurity::SetSD.
---
dlls/wbemprox/builtin.c | 6 +++++-
dlls/wbemprox/security.c | 35 +++++++++++++++++++++++++++++++++++
dlls/wbemprox/wbemprox_private.h | 2 ++
3 files changed, 42 insertions(+), 1 deletion(-)
diff --git a/dlls/wbemprox/builtin.c b/dlls/wbemprox/builtin.c
index 2a431f2..abc0b3e 100644
--- a/dlls/wbemprox/builtin.c
+++ b/dlls/wbemprox/builtin.c
@@ -496,6 +496,7 @@ static const struct column col_stdregprov[] =
static const struct column col_systemsecurity[] =
{
{ method_getsdW, CIM_FLAG_ARRAY|COL_FLAG_METHOD },
+ { method_setsdW, CIM_FLAG_ARRAY|COL_FLAG_METHOD },
};
static const struct column col_videocontroller[] =
{
@@ -807,6 +808,7 @@ struct record_stdregprov
struct record_systemsecurity
{
class_method *getsd;
+ class_method *setsd;
};
struct record_videocontroller
{
@@ -857,6 +859,8 @@ static const struct record_param data_param[] =
{ class_stdregprovW, method_getstringvalueW, -1, param_valueW, CIM_STRING },
{ class_systemsecurityW, method_getsdW, -1, param_returnvalueW, CIM_UINT32, VT_I4 },
{ class_systemsecurityW, method_getsdW, -1, param_sdW, CIM_UINT8|CIM_FLAG_ARRAY },
+ { class_systemsecurityW, method_setsdW, 1, param_sdW, CIM_UINT8|CIM_FLAG_ARRAY },
+ { class_systemsecurityW, method_setsdW, -1, param_returnvalueW, CIM_UINT32, VT_I4 },
};
#define FLAVOR_ID (WBEM_FLAVOR_FLAG_PROPAGATE_TO_INSTANCE | WBEM_FLAVOR_NOT_OVERRIDABLE |\
@@ -881,7 +885,7 @@ static const struct record_stdregprov data_stdregprov[] =
};
static const struct record_systemsecurity data_systemsecurity[] =
{
- { security_get_sd }
+ { security_get_sd, security_set_sd }
};
/* check if row matches condition and update status */
diff --git a/dlls/wbemprox/security.c b/dlls/wbemprox/security.c
index 3d3ab47..6dee197 100644
--- a/dlls/wbemprox/security.c
+++ b/dlls/wbemprox/security.c
@@ -181,3 +181,38 @@ HRESULT security_get_sd( IWbemClassObject *obj, IWbemClassObject *in, IWbemClass
return hr;
}
+
+HRESULT security_set_sd( IWbemClassObject *obj, IWbemClassObject *in, IWbemClassObject **out )
+{
+ VARIANT retval;
+ IWbemClassObject *sig, *out_params = NULL;
+ HRESULT hr;
+
+ FIXME("stub\n");
+
+ hr = create_signature( class_systemsecurityW, method_setsdW, PARAM_OUT, &sig );
+
+ if (SUCCEEDED(hr))
+ {
+ hr = IWbemClassObject_SpawnInstance( sig, 0, &out_params );
+
+ IWbemClassObject_Release( sig );
+ }
+
+ if (SUCCEEDED(hr))
+ {
+ set_variant( VT_UI4, S_OK, NULL, &retval );
+ hr = IWbemClassObject_Put( out_params, param_returnvalueW, 0, &retval, CIM_UINT32 );
+
+ if (SUCCEEDED(hr) && out)
+ {
+ *out = out_params;
+ IWbemClassObject_AddRef( out_params );
+ }
+
+ IWbemClassObject_Release( out_params );
+ }
+
+ return hr;
+}
+
diff --git a/dlls/wbemprox/wbemprox_private.h b/dlls/wbemprox/wbemprox_private.h
index c6a5e90..daf8611 100644
--- a/dlls/wbemprox/wbemprox_private.h
+++ b/dlls/wbemprox/wbemprox_private.h
@@ -225,6 +225,7 @@ HRESULT service_resume_service(IWbemClassObject *, IWbemClassObject *, IWbemClas
HRESULT service_start_service(IWbemClassObject *, IWbemClassObject *, IWbemClassObject **) DECLSPEC_HIDDEN;
HRESULT service_stop_service(IWbemClassObject *, IWbemClassObject *, IWbemClassObject **) DECLSPEC_HIDDEN;
HRESULT security_get_sd(IWbemClassObject *, IWbemClassObject *, IWbemClassObject **) DECLSPEC_HIDDEN;
+HRESULT security_set_sd(IWbemClassObject *, IWbemClassObject *, IWbemClassObject **) DECLSPEC_HIDDEN;
static void *heap_alloc( size_t len ) __WINE_ALLOC_SIZE(1);
static inline void *heap_alloc( size_t len )
@@ -271,6 +272,7 @@ static const WCHAR method_getsdW[] = {'G','e','t','S','D',0};
static const WCHAR method_getstringvalueW[] = {'G','e','t','S','t','r','i','n','g','V','a','l','u','e',0};
static const WCHAR method_pauseserviceW[] = {'P','a','u','s','e','S','e','r','v','i','c','e',0};
static const WCHAR method_resumeserviceW[] = {'R','e','s','u','m','e','S','e','r','v','i','c','e',0};
+static const WCHAR method_setsdW[] = {'S','e','t','S','D',0};
static const WCHAR method_startserviceW[] = {'S','t','a','r','t','S','e','r','v','i','c','e',0};
static const WCHAR method_stopserviceW[] = {'S','t','o','p','S','e','r','v','i','c','e',0};
--
1.8.3.2
More information about the wine-patches
mailing list