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 運算結合。
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
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類型。 下表顯示可能的值。
值 | 意義 |
---|---|
|
顯示所有UI。 |
|
不顯示任何UI。 |
|
只有在沒有錯誤時,才會顯示UI。 |
|
只有在發生錯誤時,才會顯示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 |