3

winverifytrust を使用して署名を検証します。

WINTRUST_ACTION_GENERIC_VERIFY_V2 を使用して検証しています。ただし、まれに「NO SIGNATURE FOUND」が返されることがあります。問題をシミュレートできません。

これが一部のユーザーで発生しているというフィードバックが寄せられています。1 つのフィードバックには、ファイルに対する WinVerifyTrust への最初の呼び出しが成功し、同じファイルへの 2 番目の呼び出しが失敗したことを示すログがあります。

私が使用したコードはまさに

http://msdn.microsoft.com/en-us/library/aa382384%28v=VS.85%29.aspx

失敗の原因となった可能性のある考え。同じファイルへの同じ呼び出しが 1 回成功し、次に失敗しました。

4

3 に答える 3

1

遭遇した場合にリンクした MS の例を見て、さらにエラー コードTRUST_E_NOSIGNATUREを調べる必要があります。GetLastError()TRUST_E_

彼らのロジックには次のものTRUST_E_NOSIGNATUREも含まれます。

 else 
 {
   // The signature was not valid or there was an error 
   // opening the file.

したがって、IOエラーもこれを引き起こす可能性があるようです(ロックされたファイルが断続性を説明する可能性があります)いずれかの方法GetLastError()で解明する必要があります。

于 2011-05-04T17:16:41.937 に答える