SAFER_CODE_PROPERTIES_V1 结构 (winsafer.h)

SAFER_CODE_PROPERTIES_V1结构包含代码图像信息和要检查代码图像的条件。 将SAFER_CODE_PROPERTIES_V1结构的数组传递给 SaferIdentifyLevel 函数。

SAFER_CODE_PROPERTIES_V1不包括 Windows 应用商店应用包的新成员。 现有的二进制调用方可以通过检查 cbSize 成员来区分哪个版本。

语法

typedef struct _SAFER_CODE_PROPERTIES_V1 {
  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;
} SAFER_CODE_PROPERTIES_V1, *PSAFER_CODE_PROPERTIES_V1;

成员

cbSize

此结构的大小(以字节为单位)。 这用于将来和向后兼容。

dwCheckFlags

评估此结构时考虑的条件类型。 如果未提供部分或全部关联的结构元素,则某些标志可能会被静默忽略。 为此参数指定零会导致忽略整个结构的内容。

下表列出了可能的值。 可以使用按位 OR 运算组合这些值。

含义
SAFER_CRITERIA_IMAGEPATH
0x00001
检查代码映像路径。
SAFER_CRITERIA_IMAGEHASH
0x00004
检查代码哈希。
SAFER_CRITERIA_AUTHENTICODE
0x00008
检查验证码签名。 如果使用此值,则必须设置 hImageFileHandle 成员或 ImagePath 成员。
SAFER_CRITERIA_URLZONE
0x00010
检查源 URL。
SAFER_CRITERIA_IMAGEPATH_NT
0x01000
检查Windows NT映像路径。

ImagePath

一个字符串,指定要用于基于路径的歧视检查的完全限定路径和文件名。 图像路径还用于打开和读取文件,以识别此结构中未提供的任何其他歧视标准。 此成员可以为 NULL;但是,如果 dwCheckFlags 成员包含 SAFER_CRITERIA_AUTHENTICODE,则必须设置此成员或 hImageFileHandle 成员。

hImageFileHandle

至少具有GENERIC_READ访问权限的代码图像的文件句柄。 使用句柄而不是显式重新打开文件来计算此结构中未提供的歧视标准。 此成员可以为 NULL;但是,如果 dwCheckFlags 包含 SAFER_CRITERIA_AUTHENTICODE,则必须设置此成员或 ImagePath 成员。

UrlZoneId

预先确定的 Internet Explorer 安全区域。 定义了以下区域:

  • URLZONE_LOCAL_MACHINE
  • URLZONE_INTRANET
  • URLZONE_TRUSTED
  • URLZONE_INTERNET
  • URLZONE_UNTRUSTED
此成员可以设置为 0。

ImageHash[SAFER_MAX_HASH_SIZE]

图像的预计算哈希。 如果 ImageSize 成员和 dwImageHashSize 成员都是非零的,并且 HashAlgorithm 成员包含 Wincrypt.h 中的有效哈希算法,则提供的哈希将被解释为有效。

如果提供的哈希无法满足这些条件,则通过以下操作自动重新计算哈希:

  • 使用 ImageSize 成员和 pByteBlock 成员(如果两者都是非零的)。
  • 使用 hImageFileHandle 成员(如果不是 NULL)。
  • 打开并使用 ImagePath 成员(如果不是 NULL)。

dwImageHashSize

ImageHash 成员的大小(以字节为单位)。

ImageSize

pByteBlock 成员的大小(以字节为单位)。 如果 pByteBlock 成员为 NULL,则不使用此成员。

HashAlgorithm

用于创建 ImageHash 成员的哈希算法。

pByteBlock

包含所检查代码的图像的内存块。 此成员是可选的。 如果指定了此成员,则还必须提供 ImageSize 成员。

hWndParent

用于验证码签名者证书验证的参数。 这些参数将传递给 WinVerifyTrust 函数,并控制提示用户接受或拒绝委托证书的 UI。

dwWVTUIChoice

指示使用的 UI 类型。 下表列出了可能的值。

“值” 含义
WTD_UI_ALL
显示所有 UI。
WTD_UI_NONE
不显示 UI。
WTD_UI_NOBAD
仅当没有错误时才显示 UI。
WTD_UI_NOGOOD
仅在发生错误时显示 UI。

注解

SAFER_CODE_PROPERTIES 已重新定义,以包括允许 Windows 应用商店应用使用该结构的其他成员。 检查 cbSize 成员,了解结构的适当大小,以及是应使用 SAFER_CODE_PROPERTIES 结构还是 SAFER_CODE_PROPERTIES_V1 结构。

要求

要求
最低受支持的客户端 Windows XP [仅限桌面应用]
最低受支持的服务器 Windows Server 2003 [仅限桌面应用]
标头 winsafer.h