MsiGetFileHashA 関数 (msi.h)
MsiGetFileHash 関数は、ファイルへのパスを取得し、そのファイルの 128 ビット ハッシュを返します。 作成ツールでは、MsiGetFileHash を使用して、MsiFileHash テーブルを設定するために必要なファイル ハッシュを取得できます。
Windows インストーラーでは、不要なファイルのコピーを検出して排除するための手段として、ファイル ハッシュが使用されます。 MsiFileHash テーブルに格納されているファイル ハッシュは、ユーザーのコンピューター上の既存のファイルのハッシュと比較できます。
構文
UINT MsiGetFileHashA(
[in] LPCSTR szFilePath,
[in] DWORD dwOptions,
[out] PMSIFILEHASHINFO pHash
);
パラメーター
[in] szFilePath
ハッシュされるファイルへのパス。
[in] dwOptions
この列の値は 0 である必要があります。 このパラメーターは、将来使用するために予約されています。
[out] pHash
返されたファイル ハッシュ情報へのポインター。
戻り値
価値 | 意味 |
---|---|
|
関数は正常に完了しました。 |
|
ファイルが存在しません。 |
|
ファイルを開き、バージョン情報を取得できませんでした。 |
|
予期しないエラーが発生しました。 |
備考
128 ビット ファイル ハッシュ全体が 4 つの 32 ビット フィールドとして返されます。 4 つのフィールドの番号付けは 0 から始まります。 MsiGetFileHash によって返される値は、MSIFILEHASHINFO 構造体の 4 つのフィールドに対応します。 最初のフィールドは MsiFileHash テーブルの HashPart1 列に対応し、2 番目のフィールドは HashPart2 列に対応し、3 番目のフィールドは HashPart3 列に対応し、4 番目のフィールドは HashPart4 列に対応します。
MsiFileHash テーブルに入力するハッシュ情報は、MsiGetFileHash または FileHash メソッドを呼び出すことによって取得する必要があります。 他のメソッドを使用してファイル ハッシュを生成しないでください。
手記
msi.h ヘッダーは、MSIGetFileHash をエイリアスとして定義し、UNICODE プリプロセッサ定数の定義に基づいて、この関数の ANSI または Unicode バージョンを自動的に選択します。 エンコードに依存しないエイリアスをエンコードに依存しないコードと組み合わせて使用すると、コンパイルエラーやランタイム エラーが発生する不一致が発生する可能性があります。 詳細については、「関数プロトタイプの 規則」を参照してください。
必要条件
要件 | 価値 |
---|---|
サポートされる最小クライアント | Windows Server 2012、Windows 8、Windows Server 2008 R2、または Windows 7 の Windows インストーラー 5.0。 Windows Server 2008 または Windows Vista の Windows インストーラー 4.0 または Windows インストーラー 4.5。 Windows Server 2003 または Windows XP 上の Windows インストーラー。 Windows インストーラーのバージョンで必要な最小 Windows Service Pack の詳細については、Windows インストーラーの Run-Time 要件を参照してください。 |
ターゲット プラットフォーム の |
ウィンドウズ |
ヘッダー | msi.h |
ライブラリ | Msi.lib |
DLL | Msi.dll |
関連項目
既定のファイル バージョン管理 を
MSIFILEHASHINFO の
MsiFileHash テーブル を