共用方式為


SAFER_CODE_PROPERTIES_V2 結構 (winsafer.h)

SAFER_CODE_PROPERTIES結構包含程式代碼映像上要檢查的程式代碼影像資訊和準則。 SAFER_CODE_PROPERTIES 結構的陣列會傳遞至 SaferIdentifyLevel 函式。

SAFER_CODE_PROPERTIES_V2是 SAFER_CODE_PROPERTIES 的重新定義,而且是 擴充版本的 SAFER_CODE_PROPERTIES_V1 ,因為它包含 Windows 市集應用程式套件的新成員。 現有的二進位呼叫端可以藉由檢查 cbSize 成員來區別哪個版本。

語法

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;

成員

cbSize

這個結構的大小,以位元組為單位。 這用於未來和回溯相容性。

dwCheckFlags

評估此結構時所考慮的準則類型。 如果未提供部分或所有相關聯的結構專案,某些旗標可能會以無訊息方式忽略。 為此參數指定零會導致忽略整個結構的內容。

下表顯示可能的值。 這些值可以使用位 OR 運算結合。

意義
SAFER_CRITERIA_IMAGEPATH
0x00001
檢查程式代碼映像路徑。
SAFER_CRITERIA_IMAGEHASH
0x00004
檢查程式代碼哈希。
SAFER_CRITERIA_AUTHENTICODE
0x00008
檢查 Authenticode 簽章。 如果使用此值,則必須設定 hImageFileHandle 成員或 ImagePath 成員。
SAFER_CRITERIA_URLZONE
0x00010
檢查來源的 URL。
SAFER_CRITERIA_IMAGEPATH_NT
0x01000
檢查 Windows NT 映射路徑。
SAFER_CRITERIA_APPX_PACKAGE
0x00020
檢查 Windows 市集應用程式套件。 供 Windows 市集應用程式使用。

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 成員。
  • 如果不是 NULL,請使用 hImageFileHandle 成員。
  • 如果 ImagePath 成員不是 NULL,請開啟並使用該成員。

dwImageHashSize

ImageHash 成員的位元組大小。

ImageSize

pByteBlock 成員的位元元組大小。 如果 pByteBlock 成員為 NULL,則不會使用此成員。

HashAlgorithm

用來建立 ImageHash 成員的哈希演算法。

pByteBlock

記憶體區塊,其中包含正在檢查之程式代碼的影像。 這個成員是選擇性的。 如果指定這個成員,也必須提供 ImageSize 成員。

hWndParent

用於 Authenticode 簽署者憑證驗證的自變數。 這些自變數會傳遞至 WinVerifyTrust 函式,並控制使用者介面 (UI) 提示使用者接受或拒絕委派的憑證。

dwWVTUIChoice

指出使用的UI類型。 下表顯示可能的值。

意義
WTD_UI_ALL
顯示所有UI。
WTD_UI_NONE
不顯示任何UI。
WTD_UI_NOBAD
只有在沒有錯誤時,才會顯示UI。
WTD_UI_NOGOOD
只有在發生錯誤時,才會顯示UI。

PackageMoniker

套件Moniker屬性。 供 Windows 市集應用程式使用。

Windows Server 2008 R2、Windows 7、Windows Server 2008、Windows Vista、Windows Server 2003 和 Windows XP: 此成員無法使用。

PackagePublisher

套件發行者屬性。 供 Windows 市集應用程式使用。

Windows Server 2008 R2、Windows 7、Windows Server 2008、Windows Vista、Windows Server 2003 和 Windows XP: 此成員無法使用。

PackageName

封裝名稱屬性。 供 Windows 市集應用程式使用。

Windows Server 2008 R2、Windows 7、Windows Server 2008、Windows Vista、Windows Server 2003 和 Windows XP: 此成員無法使用。

PackageVersion

套件版本屬性。 供 Windows 市集應用程式使用。

Windows Server 2008 R2、Windows 7、Windows Server 2008、Windows Vista、Windows Server 2003 和 Windows XP: 此成員無法使用。

PackageIsFramework

套件是架構套件。 供 Windows 市集應用程式使用。

Windows Server 2008 R2、Windows 7、Windows Server 2008、Windows Vista、Windows Server 2003 和 Windows XP: 此成員無法使用。

規格需求

需求
最低支援的用戶端 Windows XP [僅限傳統型應用程式]
最低支援的伺服器 Windows Server 2003 [僅限傳統型應用程式]
標頭 winsafer.h