SAFER_CODE_PROPERTIES_V2 構造体 (winsafer.h)

SAFER_CODE_PROPERTIES構造体には、コード イメージの情報と、コード イメージで確認する条件が含まれています。 SAFER_CODE_PROPERTIES構造体の配列が SaferIdentifyLevel 関数に渡されます。

SAFER_CODE_PROPERTIES_V2は SAFER_CODE_PROPERTIES の再定義であり、Windows ストア アプリ パッケージの新しいメンバーが含まれているため 、SAFER_CODE_PROPERTIES_V1 の拡張バージョンです。 既存のバイナリ呼び出し元は、 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

この構造を評価するときに考慮される条件の種類。 関連付けられている構造体要素の一部またはすべてが指定されていない場合、一部のフラグは自動的に無視されることがあります。 このパラメーターに 0 を指定すると、構造体の内容全体が無視されます。

次の表に、それぞれの値を示します。 これらの値は、ビットごとの 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

事前に定義されたインターネット エクスプローラーセキュリティ ゾーン。 次のゾーンが定義されています。

  • URLZONE_LOCAL_MACHINE
  • URLZONE_INTRANET
  • URLZONE_TRUSTED
  • URLZONE_INTERNET
  • URLZONE_UNTRUSTED
このメンバーは 0 に設定できます。

ImageHash[SAFER_MAX_HASH_SIZE]

イメージの事前計算済みハッシュ。 ImageSize メンバーと dwImageHashSize メンバーの両方が 0 以外で、HashAlgorithm メンバーに Wincrypt.h の有効なハッシュ アルゴリズムが含まれている場合、指定されたハッシュは有効と解釈されます。

指定されたハッシュがこれらの条件を満たさなければ、ハッシュは自動的に次の方法で再計算されます。

  • ImageSize メンバーと pByteBlock メンバーの両方が 0 以外の場合に使用します。
  • hImageFileHandle メンバーが NULL でない場合は、そのメンバーを使用します
  • 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

パッケージ モニカー プロパティ。 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 (デスクトップ アプリのみ)
Header winsafer.h