From 65ba77bd5c16c5d8a02e7c70ccf5ed1d7918a41a Mon Sep 17 00:00:00 2001
From: Owen Rudge <orudge@codeweavers.com>
Date: Fri, 1 Apr 2011 17:29:24 +0100
Subject: [PATCH] advapi32: Add basic SaferSetLevelInformation stub.

---
 dlls/advapi32/advapi32.spec |  2 +-
 dlls/advapi32/security.c    | 10 ++++++++++
 include/winsafer.h          | 20 ++++++++++++++++++++
 3 files changed, 31 insertions(+), 1 deletion(-)

diff --git a/dlls/advapi32/advapi32.spec b/dlls/advapi32/advapi32.spec
index 683e7abeeb4..9bb202d8480 100644
--- a/dlls/advapi32/advapi32.spec
+++ b/dlls/advapi32/advapi32.spec
@@ -550,7 +550,7 @@
 @ stdcall SaferGetPolicyInformation(long long long ptr ptr ptr)
 # @ stub SaferIdentifyLevel
 # @ stub SaferRecordEventLogEntry
-# @ stub SaferSetLevelInformation
+@ stdcall SaferSetLevelInformation(ptr long ptr long)
 # @ stub SaferSetPolicyInformation
 # @ stub SaferiChangeRegistryScope
 # @ stub SaferiCompareTokenLevels
diff --git a/dlls/advapi32/security.c b/dlls/advapi32/security.c
index cd76fb59ce9..2dcb8fa1899 100644
--- a/dlls/advapi32/security.c
+++ b/dlls/advapi32/security.c
@@ -5619,3 +5619,13 @@ BOOL WINAPI SaferGetPolicyInformation(DWORD scope, SAFER_POLICY_INFO_CLASS class
     FIXME("(%u %u %u %p %p %p) stub\n", scope, class, size, buffer, required, lpReserved);
     return FALSE;
 }
+
+/******************************************************************************
+ * SaferSetLevelInformation   [ADVAPI32.@]
+ */
+BOOL WINAPI SaferSetLevelInformation(SAFER_LEVEL_HANDLE handle, SAFER_OBJECT_INFO_CLASS infotype,
+                                     LPVOID buffer, DWORD size)
+{
+    FIXME("(%p %u %p %u) stub\n", handle, infotype, buffer, size);
+    return FALSE;
+}
diff --git a/include/winsafer.h b/include/winsafer.h
index 837a551d96c..4855f53bda7 100644
--- a/include/winsafer.h
+++ b/include/winsafer.h
@@ -51,7 +51,27 @@ typedef enum _SAFER_POLICY_INFO_CLASS {
     SaferPolicyScopeFlags
 } SAFER_POLICY_INFO_CLASS;
 
+typedef enum _SAFER_OBJECT_INFO_CLASS {
+    SaferObjectLevelId = 1,
+    SaferObjectScopeId,
+    SaferObjectFriendlyName,
+    SaferObjectDescription,
+    SaferObjectBuiltin,
+    SaferObjectDisallowed,
+    SaferObjectDisableMaxPrivilege,
+    SaferObjectInvertDeletedPrivileges,
+    SaferObjectDeletedPrivileges,
+    SaferObjectDefaultOwner,
+    SaferObjectSidsToDisable,
+    SaferObjectRestrictedSidsInverted,
+    SaferObjectRestrictedSidsAdded,
+    SaferObjectAllIdentificationGuids,
+    SaferObjectSingleIdentification,
+    SaferObjectExtendedError
+} SAFER_OBJECT_INFO_CLASS;
+
 WINADVAPI BOOL WINAPI SaferGetPolicyInformation(DWORD,SAFER_POLICY_INFO_CLASS,DWORD,PVOID,PDWORD,LPVOID);
+WINADVAPI BOOL WINAPI SaferSetLevelInformation(SAFER_LEVEL_HANDLE,SAFER_OBJECT_INFO_CLASS,LPVOID,DWORD);
 
 #ifdef __cplusplus
 }
-- 
GitLab