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

この構造を評価するときに考慮される条件の種類。 関連付けられている構造体要素の一部またはすべてが指定されていない場合、一部のフラグは無視されることがあります。 このパラメーターに 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イメージ パスを確認します。

ImagePath

パスに基づく判別チェックに使用する完全修飾パスとファイル名を指定する文字列。 イメージ パスは、ファイルを開いて読み取るためにも使用され、この構造で指定されていない他の判別基準を識別します。 このメンバーは NULL にすることができます。ただし、 dwCheckFlags メンバーに SAFER_CRITERIA_AUTHENTICODEが含まれている場合は、このメンバーまたは hImageFileHandle メンバーを設定する必要があります。

hImageFileHandle

少なくともGENERIC_READアクセス権を持つコード イメージへのファイル ハンドル。 この構造体で指定されていない判別基準を計算するためにファイルを明示的に再度開く代わりに、ハンドルが使用されます。 このメンバーは NULL にすることができます。ただし、 dwCheckFlagsSAFER_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 を表示します。

注釈

SAFER_CODE_PROPERTIES 再定義され、Windows ストア アプリで 構造体を使用できるようにする追加のメンバーが含まれています。 cbSize メンバーで、構造体の適切なサイズと、SAFER_CODE_PROPERTIES構造体とSAFER_CODE_PROPERTIES_V1構造体のどちらを使用する必要があるかを確認します。

要件

要件
サポートされている最小のクライアント Windows XP (デスクトップ アプリのみ)
サポートされている最小のサーバー Windows Server 2003 (デスクトップ アプリのみ)
Header winsafer.h