34#define SAFER_SCOPEID_MACHINE 1
35#define SAFER_SCOPEID_USER 2
37#define SAFER_LEVELID_DISALLOWED 0x00000
38#define SAFER_LEVELID_UNTRUSTED 0x01000
39#define SAFER_LEVELID_CONSTRAINED 0x10000
40#define SAFER_LEVELID_NORMALUSER 0x20000
41#define SAFER_LEVELID_FULLYTRUSTED 0x40000
43#define SAFER_LEVEL_OPEN 1
45#define SAFER_MAX_HASH_SIZE 64
46#define SAFER_MAX_DESCRIPTION_SIZE 256
47#define SAFER_MAX_FRIENDLYNAME_SIZE 256
49#define SAFER_TOKEN_NULL_IF_EQUAL 0x1
50#define SAFER_TOKEN_COMPARE_ONLY 0x2
51#define SAFER_TOKEN_MAKE_INERT 0x4
52#define SAFER_TOKEN_WANT_FLAGS 0x8
54#define SAFER_CRITERIA_IMAGEPATH 0x0001
55#define SAFER_CRITERIA_NOSIGNEDHASH 0x0002
56#define SAFER_CRITERIA_IMAGEHASH 0x0004
57#define SAFER_CRITERIA_AUTHENTICODE 0x0008
58#define SAFER_CRITERIA_URLZONE 0x0010
59#define SAFER_CRITERIA_APPX_PACKAGE 0x0020
60#define SAFER_CRITERIA_IMAGEPATH_NT 0x1000
62#define SAFER_POLICY_JOBID_UNTRUSTED 0x03000000
63#define SAFER_POLICY_JOBID_CONSTRAINED 0x04000000
64#define SAFER_POLICY_JOBID_MASK 0xFF000000
65#define SAFER_POLICY_ONLY_EXES 0x00010000
66#define SAFER_POLICY_SANDBOX_INERT 0x00020000
67#define SAFER_POLICY_HASH_DUPLICATE 0x00040000
68#define SAFER_POLICY_ONLY_AUDIT 0x00001000
69#define SAFER_POLICY_BLOCK_CLIENT_UI 0x00002000
70#define SAFER_POLICY_UIFLAGS_INFORMATION_PROMPT 0x00000001
71#define SAFER_POLICY_UIFLAGS_OPTION_PROMPT 0x00000002
72#define SAFER_POLICY_UIFLAGS_HIDDEN 0x00000004
73#define SAFER_POLICY_UIFLAGS_MASK 0x000000FF
108#if _WIN32_WINNT >= 0x602
206 _In_ SAFER_LEVEL_HANDLE hLevelHandle);
212 _In_ SAFER_LEVEL_HANDLE LevelHandle,
225 _Outptr_ SAFER_LEVEL_HANDLE *pLevelHandle,
232 _In_ SAFER_LEVEL_HANDLE LevelHandle,
255 _Outptr_ SAFER_LEVEL_HANDLE *pLevelHandle,
269 _In_ SAFER_LEVEL_HANDLE hLevel,
277 _In_ SAFER_LEVEL_HANDLE LevelHandle,
293#define SRP_POLICY_EXE L"EXE"
294#define SRP_POLICY_DLL L"DLL"
295#define SRP_POLICY_MSI L"MSI"
296#define SRP_POLICY_SCRIPT L"SCRIPT"
297#define SRP_POLICY_SHELL L"SHELL"
298#define SRP_POLICY_NOV2 L"IGNORESRPV2"
299#define SRP_POLICY_APPX L"APPX"
300#define SRP_POLICY_WLDPMSI L"WLDPMSI"
301#define SRP_POLICY_WLDPSCRIPT L"WLDPSCRIPT"
#define SaferIdentifyLevel(c, p, h, r)
#define DECLARE_HANDLE(name)
#define _In_reads_bytes_(s)
#define _Out_writes_bytes_opt_(s)
#define _In_reads_opt_(s)
BYTE ImageHash[SAFER_MAX_HASH_SIZE]
SAFER_HASH_IDENTIFICATION hashIdentification
BYTE ImageHash[SAFER_MAX_HASH_SIZE]
SAFER_IDENTIFICATION_HEADER header
WCHAR Description[SAFER_MAX_DESCRIPTION_SIZE]
WCHAR FriendlyName[SAFER_MAX_FRIENDLYNAME_SIZE]
BYTE ImageHash[SAFER_MAX_HASH_SIZE]
WCHAR Description[SAFER_MAX_DESCRIPTION_SIZE]
SAFER_IDENTIFICATION_HEADER header
SAFER_IDENTIFICATION_HEADER header
_In_ PCCERT_CONTEXT _In_ DWORD dwFlags
WINADVAPI BOOL WINAPI SaferComputeTokenFromLevel(_In_ SAFER_LEVEL_HANDLE LevelHandle, _In_opt_ HANDLE InAccessToken, _Out_ PHANDLE OutAccessToken, _In_ DWORD dwFlags, _Inout_opt_ PVOID pReserved)
WINADVAPI BOOL WINAPI SaferCreateLevel(_In_ DWORD dwScopeId, _In_ DWORD dwLevelId, _In_ DWORD OpenFlags, _Outptr_ SAFER_LEVEL_HANDLE *pLevelHandle, _Reserved_ PVOID pReserved)
_SAFER_IDENTIFICATION_TYPES
@ SaferIdentityTypeUrlZone
@ SaferIdentityTypeCertificate
@ SaferIdentityTypeImageHash
@ SaferIdentityTypeImageName
struct _SAFER_CODE_PROPERTIES_V1 SAFER_CODE_PROPERTIES_V1
struct _SAFER_IDENTIFICATION_HEADER SAFER_IDENTIFICATION_HEADER
#define SAFER_MAX_HASH_SIZE
struct _SAFER_HASH_IDENTIFICATION2 SAFER_HASH_IDENTIFICATION2
struct _SAFER_IDENTIFICATION_HEADER * PSAFER_IDENTIFICATION_HEADER
struct _SAFER_URLZONE_IDENTIFICATION SAFER_URLZONE_IDENTIFICATION
struct _SAFER_PATHNAME_IDENTIFICATION SAFER_PATHNAME_IDENTIFICATION
WINADVAPI BOOL WINAPI SaferRecordEventLogEntry(_In_ SAFER_LEVEL_HANDLE hLevel, _In_ PCWSTR szTargetPath, _Reserved_ PVOID pReserved)
struct _SAFER_HASH_IDENTIFICATION SAFER_HASH_IDENTIFICATION
struct _SAFER_CODE_PROPERTIES_V2 SAFER_CODE_PROPERTIES_V2
WINADVAPI BOOL WINAPI SaferGetLevelInformation(_In_ SAFER_LEVEL_HANDLE LevelHandle, _In_ SAFER_OBJECT_INFO_CLASS dwInfoType, _Out_writes_bytes_opt_(dwInBufferSize) PVOID pQueryBuffer, _In_ DWORD dwInBufferSize, _Out_ PDWORD pdwOutBufferSize)
WINADVAPI BOOL WINAPI SaferiIsExecutableFileType(_In_ PCWSTR szFullPath, _In_ BOOLEAN bFromShellExecute)
WINADVAPI BOOL WINAPI SaferSetPolicyInformation(_In_ DWORD dwScopeId, _In_ SAFER_POLICY_INFO_CLASS SaferPolicyInfoClass, _In_ DWORD InfoBufferSize, _In_reads_bytes_(InfoBufferSize) PVOID InfoBuffer, _Reserved_ PVOID pReserved)
@ SaferObjectRestrictedSidsInverted
@ SaferObjectSidsToDisable
@ SaferObjectDisableMaxPrivilege
@ SaferObjectInvertDeletedPrivileges
@ SaferObjectDeletedPrivileges
@ SaferObjectDefaultOwner
@ SaferObjectExtendedError
@ SaferObjectAllIdentificationGuids
@ SaferObjectRestrictedSidsAdded
@ SaferObjectSingleIdentification
@ SaferObjectFriendlyName
SAFER_CODE_PROPERTIES_V1 SAFER_CODE_PROPERTIES
struct _SAFER_URLZONE_IDENTIFICATION * PSAFER_URLZONE_IDENTIFICATION
@ SaferPolicyEnableTransparentEnforcement
@ SaferPolicyDefaultLevel
@ SaferPolicyEvaluateUserScope
@ SaferPolicyAuthenticodeEnabled
@ SaferPolicyDefaultLevelFlags
struct _SAFER_CODE_PROPERTIES_V2 * PSAFER_CODE_PROPERTIES_V2
enum _SAFER_OBJECT_INFO_CLASS SAFER_OBJECT_INFO_CLASS
SAFER_CODE_PROPERTIES_V1 * PSAFER_CODE_PROPERTIES
enum _SAFER_POLICY_INFO_CLASS SAFER_POLICY_INFO_CLASS
#define SAFER_MAX_FRIENDLYNAME_SIZE
struct _SAFER_HASH_IDENTIFICATION2 * PSAFER_HASH_IDENTIFICATION2
struct _SAFER_PATHNAME_IDENTIFICATION * PSAFER_PATHNAME_IDENTIFICATION
struct _SAFER_HASH_IDENTIFICATION * PSAFER_HASH_IDENTIFICATION
WINADVAPI BOOL WINAPI SaferCloseLevel(_In_ SAFER_LEVEL_HANDLE hLevelHandle)
struct _SAFER_CODE_PROPERTIES_V1 * PSAFER_CODE_PROPERTIES_V1
WINADVAPI BOOL WINAPI SaferGetPolicyInformation(_In_ DWORD dwScopeId, _In_ SAFER_POLICY_INFO_CLASS SaferPolicyInfoClass, _In_ DWORD InfoBufferSize, _Out_writes_bytes_opt_(InfoBufferSize) PVOID InfoBuffer, _Out_ PDWORD InfoBufferRetSize, _Reserved_ PVOID pReserved)
WINADVAPI BOOL WINAPI SaferSetLevelInformation(_In_ SAFER_LEVEL_HANDLE LevelHandle, _In_ SAFER_OBJECT_INFO_CLASS dwInfoType, _In_reads_bytes_(dwInBufferSize) PVOID pQueryBuffer, _In_ DWORD dwInBufferSize)
#define SAFER_MAX_DESCRIPTION_SIZE
enum _SAFER_IDENTIFICATION_TYPES SAFER_IDENTIFICATION_TYPES