Hans Leidekker : advapi32: Add a stub implementation of SaferIdentifyLevel.

Alexandre Julliard julliard at winehq.org
Wed Mar 6 15:29:41 CST 2019


Module: wine
Branch: master
Commit: 8021d449f4a02aa5e44476e9f9c98e5641e596a2
URL:    https://source.winehq.org/git/wine.git/?a=commit;h=8021d449f4a02aa5e44476e9f9c98e5641e596a2

Author: Hans Leidekker <hans at codeweavers.com>
Date:   Wed Mar  6 10:14:27 2019 +0100

advapi32: Add a stub implementation of SaferIdentifyLevel.

Signed-off-by: Hans Leidekker <hans at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 dlls/advapi32/advapi32.spec |  2 +-
 dlls/advapi32/security.c    | 11 +++++++++++
 include/winsafer.h          | 30 ++++++++++++++++++++++++++++--
 3 files changed, 40 insertions(+), 3 deletions(-)

diff --git a/dlls/advapi32/advapi32.spec b/dlls/advapi32/advapi32.spec
index e870a5d..eb1f546 100644
--- a/dlls/advapi32/advapi32.spec
+++ b/dlls/advapi32/advapi32.spec
@@ -717,7 +717,7 @@
 @ stdcall SaferCreateLevel(long long long ptr ptr)
 # @ stub SaferGetLevelInformation
 @ stdcall SaferGetPolicyInformation(long long long ptr ptr ptr)
-# @ stub SaferIdentifyLevel
+@ stdcall SaferIdentifyLevel(long ptr ptr ptr)
 # @ stub SaferRecordEventLogEntry
 @ stdcall SaferSetLevelInformation(ptr long ptr long)
 # @ stub SaferSetPolicyInformation
diff --git a/dlls/advapi32/security.c b/dlls/advapi32/security.c
index 70e2da4..6891fee 100644
--- a/dlls/advapi32/security.c
+++ b/dlls/advapi32/security.c
@@ -6185,6 +6185,17 @@ BOOL WINAPI SaferGetPolicyInformation(DWORD scope, SAFER_POLICY_INFO_CLASS class
 }
 
 /******************************************************************************
+ * SaferIdentifyLevel   [ADVAPI32.@]
+ */
+BOOL WINAPI SaferIdentifyLevel(DWORD count, SAFER_CODE_PROPERTIES *properties, SAFER_LEVEL_HANDLE *handle,
+                               void *reserved)
+{
+    FIXME("(%u %p %p %p) stub\n", count, properties, handle, reserved);
+    *handle = (SAFER_LEVEL_HANDLE)0xdeadbeef;
+    return TRUE;
+}
+
+/******************************************************************************
  * SaferSetLevelInformation   [ADVAPI32.@]
  */
 BOOL WINAPI SaferSetLevelInformation(SAFER_LEVEL_HANDLE handle, SAFER_OBJECT_INFO_CLASS infotype,
diff --git a/include/winsafer.h b/include/winsafer.h
index 4855f53..2565484 100644
--- a/include/winsafer.h
+++ b/include/winsafer.h
@@ -30,6 +30,32 @@ extern "C" {
 
 DECLARE_HANDLE(SAFER_LEVEL_HANDLE);
 
+#define SAFER_MAX_HASH_SIZE 64
+
+#include <pshpack8.h>
+typedef struct _SAFER_CODE_PROPERTIES_V2 {
+    DWORD cbSize;
+    DWORD dwCheckFlags;
+    LPCWSTR ImagePath;
+    HANDLE hImageFileHandle;
+    DWORD UrlZoneId;
+    BYTE ImageHash[SAFER_MAX_HASH_SIZE];
+    DWORD dwImageHashSize;
+    LARGE_INTEGER ImageSize;
+    ALG_ID HashAlgorithm;
+    LPBYTE pByteBlock;
+    HWND hWndParent;
+    DWORD dwWVTUIChoice;
+    LPCWSTR PackageMoniker;
+    LPCWSTR PackagePublisher;
+    LPCWSTR PackageName;
+    ULONG64 PackageVersion;
+    BOOL PackageIsFramework;
+} SAFER_CODE_PROPERTIES_V2, *PSAFER_CODE_PROPERTIES_V2;
+
+typedef SAFER_CODE_PROPERTIES_V2 SAFER_CODE_PROPERTIES, *PSAFER_CODE_PROPERTIES;
+#include <poppack.h>
+
 #define SAFER_SCOPEID_MACHINE  1
 #define SAFER_SCOPEID_USER     2
 
@@ -41,8 +67,6 @@ DECLARE_HANDLE(SAFER_LEVEL_HANDLE);
 
 #define SAFER_LEVEL_OPEN   1
 
-WINADVAPI BOOL WINAPI SaferCreateLevel(DWORD,DWORD,DWORD,SAFER_LEVEL_HANDLE*,LPVOID);
-
 typedef enum _SAFER_POLICY_INFO_CLASS {
     SaferPolicyLevelList = 1,
     SaferPolicyEnableTransparentEnforcement,
@@ -70,7 +94,9 @@ typedef enum _SAFER_OBJECT_INFO_CLASS {
     SaferObjectExtendedError
 } SAFER_OBJECT_INFO_CLASS;
 
+WINADVAPI BOOL WINAPI SaferCreateLevel(DWORD,DWORD,DWORD,SAFER_LEVEL_HANDLE*,LPVOID);
 WINADVAPI BOOL WINAPI SaferGetPolicyInformation(DWORD,SAFER_POLICY_INFO_CLASS,DWORD,PVOID,PDWORD,LPVOID);
+WINADVAPI BOOL WINAPI SaferIdentifyLevel(DWORD,PSAFER_CODE_PROPERTIES,SAFER_LEVEL_HANDLE*,LPVOID);
 WINADVAPI BOOL WINAPI SaferSetLevelInformation(SAFER_LEVEL_HANDLE,SAFER_OBJECT_INFO_CLASS,LPVOID,DWORD);
 
 #ifdef __cplusplus




More information about the wine-cvs mailing list