SAFER_CODE_PROPERTIES_V2 structure (winsafer.h)
The SAFER_CODE_PROPERTIES structure contains code image information and criteria to be checked on the code image. An array of SAFER_CODE_PROPERTIES structures is passed to the SaferIdentifyLevel function.
SAFER_CODE_PROPERTIES_V2 is a redefinition of SAFER_CODE_PROPERTIES and is an extended version of SAFER_CODE_PROPERTIES_V1 because it includes new members for Windows Store app packages. Existing binary callers can distinguish which version by checking the cbSize member.
Syntax
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;
Members
cbSize
The size of this structure in bytes. This is used for future and backward compatibility.
dwCheckFlags
The types of criteria considered when evaluating this structure. Some flags might be silently ignored if some or all of their associated structure elements are not supplied. Specifying zero for this parameter causes the entire structure's contents to be ignored.
The following table shows the possible values. These values may be combined using a bitwise-OR operation.
ImagePath
A string specifying the fully qualified path and file name to be used for discrimination checks based on the path. The image path is also used to open and read the file to identify any other discrimination criteria not supplied in this structure. This member can be NULL; however, if the dwCheckFlags member includes SAFER_CRITERIA_AUTHENTICODE, either this member or the hImageFileHandle member must be set.
hImageFileHandle
A file handle to a code image with at least GENERIC_READ access. The handle is used instead of explicitly reopening the file to compute discrimination criteria not supplied in this structure. This member can be NULL; however, if dwCheckFlags includes SAFER_CRITERIA_AUTHENTICODE, either this member or the ImagePath member must be set.
UrlZoneId
The predetermined Internet Explorer security zones. The following zones are defined:
- URLZONE_LOCAL_MACHINE
- URLZONE_INTRANET
- URLZONE_TRUSTED
- URLZONE_INTERNET
- URLZONE_UNTRUSTED
ImageHash[SAFER_MAX_HASH_SIZE]
The pre-computed hash of the image. The supplied hash is interpreted as valid if both the ImageSize member and the dwImageHashSize member are nonzero and the HashAlgorithm member contains a valid hashing algorithm from Wincrypt.h.
If the supplied hash fails to meet these conditions, the hash will be automatically recomputed by:
- Using the ImageSize member and the pByteBlock member if both are nonzero.
- Using the hImageFileHandle member if it is not NULL.
- Opening and using the ImagePath member if it is not NULL.
dwImageHashSize
The size in bytes of the ImageHash member.
ImageSize
The size in bytes of the pByteBlock member. This member is not used if the pByteBlock member is NULL.
HashAlgorithm
The hash algorithm used to create the ImageHash member.
pByteBlock
The memory block containing the image of the code being checked. This member is optional. If this member is specified, the ImageSize member must also be supplied.
hWndParent
The arguments used for Authenticode signer certificate verification. These arguments are passed to the WinVerifyTrust function and control the user interface (UI) that prompts the user to accept or reject entrusted certificates.
dwWVTUIChoice
Indicates the type of UI used. The following table shows the possible values.
Value | Meaning |
---|---|
|
Display all UI. |
|
Display no UI. |
|
Display UI only if there were no errors. |
|
Display UI only if an error occurs. |
PackageMoniker
The package moniker property. For use by Windows Store apps.
Windows Server 2008 R2, Windows 7, Windows Server 2008, Windows Vista, Windows Server 2003 and Windows XP: This member is not available.
PackagePublisher
The package publisher property. For use by Windows Store apps.
Windows Server 2008 R2, Windows 7, Windows Server 2008, Windows Vista, Windows Server 2003 and Windows XP: This member is not available.
PackageName
The package name property. For use by Windows Store apps.
Windows Server 2008 R2, Windows 7, Windows Server 2008, Windows Vista, Windows Server 2003 and Windows XP: This member is not available.
PackageVersion
The package version property. For use by Windows Store apps.
Windows Server 2008 R2, Windows 7, Windows Server 2008, Windows Vista, Windows Server 2003 and Windows XP: This member is not available.
PackageIsFramework
The package is a framework package. For use by Windows Store apps.
Windows Server 2008 R2, Windows 7, Windows Server 2008, Windows Vista, Windows Server 2003 and Windows XP: This member is not available.
Requirements
Requirement | Value |
---|---|
Minimum supported client | Windows XP [desktop apps only] |
Minimum supported server | Windows Server 2003 [desktop apps only] |
Header | winsafer.h |