WinVerifyTrust 関数は、指定されたオブジェクトに対して信頼検証アクションを実行します。 この関数は、アクション識別子 (存在する場合) をサポートする 信頼プロバイダー に照会を渡します。
証明書の検証には、 CertGetCertificateChain 関数と CertVerifyCertificateChainPolicy 関数を 使用します。
構文
LONG WinVerifyTrust(
  [in] HWND   hwnd,
  [in] GUID   *pgActionID,
  [in] LPVOID pWVTData
);
パラメーター
[in] hwnd
呼び出し元ウィンドウへの省略可能なハンドル。 信頼プロバイダーは、この値を使用して、ユーザーと対話できるかどうかを判断できます。 ただし、信頼プロバイダーは通常、ユーザーからの入力なしで検証アクションを実行します。
このパラメーターには、次のいずれかの値を指定できます。
[in] pgActionID
アクションを識別する GUID 構造体と、そのアクションをサポートする 信頼プロバイダー へのポインター。 この値は、 pWinTrustData が指す構造体に対して実行される検証アクションの種類を示します。
WinTrust サービスは、サード パーティによって実装された信頼プロバイダーと連携するように設計されています。 各信頼プロバイダーは、独自の一意のアクション識別子のセットを提供します。 信頼プロバイダーでサポートされるアクション識別子の詳細については、その信頼プロバイダーのドキュメントを参照してください。
たとえば、Microsoft は、インターネットまたはその他のパブリック ネットワークからダウンロードされるソフトウェアの信頼性を確立できるソフトウェア 発行元信頼プロバイダーを提供します。 ソフトウェア 発行元信頼プロバイダーは、次のアクション識別子をサポートしています。 これらの定数は Softpub.h で定義されています。
| 価値 | Meaning | 
|---|---|
| 
 | Windows Hardware Quality Labs (WHQL) 署名済みドライバーの信頼性を確認します。 これは Authenticode アドオン ポリシー プロバイダーです。 | 
| 
 | WinINet によって確立された SSL/TLS 接続を確認します。 | 
| 
 | このアクション ID はサポートされていません。 Microsoft Office Authenticode アドオン ポリシー プロバイダーを使用して、構造化ストレージ ファイルの信頼性を確認します。 Windows Server 2003 および Windows XP: このアクション ID はサポートされています。 | 
| 
 | 任意の種類のオブジェクトから作成された証明書チェーンを確認します。 各署名者とカウンター署名者のチェーン コンテキストを使用して、最終的なチェーン ポリシーを実装するためのコールバックが提供されます。 | 
| 
 | Authenticode ポリシー プロバイダーを使用してファイルまたはオブジェクトを確認します。 | 
| 
 | Authenticode ポリシー プロバイダーを呼び出した後、 CRYPT_PROVIDER_DATA 構造体をファイルに書き込みます。 | 
[in] pWVTData
WINTRUST_DATA構造体としてキャストするときに、信頼プロバイダーが指定したアクション識別子を処理するために必要な情報を含むポインター。 通常、構造体には、信頼プロバイダーが評価する必要があるオブジェクトを識別する情報が含まれます。
構造体の形式は、アクション識別子によって異なります。 特定のアクション識別子に必要なデータについては、そのアクションをサポートする信頼プロバイダーのドキュメントを参照してください。
戻り値
信頼プロバイダーが、指定したアクションに対してサブジェクトが信頼されていることを確認した場合、戻り値は 0 です。 0 以外の値は、正常な戻り値と見なすべきではありません。
信頼プロバイダーが指定されたアクションに対してサブジェクトが信頼されていることを確認しない場合、関数は 信頼プロバイダーから状態コードを返します。
たとえば、信頼プロバイダーは、サブジェクトが信頼されていないか、信頼されているが制限や警告があることを示している可能性があります。 戻り値には、個々の信頼プロバイダーのドキュメントで説明されている信頼プロバイダー固有の値を指定できます。または、次のいずれかのエラー コードを指定できます。
| リターン コード | Description | 
|---|---|
| 
 | サブジェクトが指定された検証アクションに失敗しました。 ほとんどの信頼プロバイダーは、エラーの原因を説明するより詳細なエラー コードを返します。 
              手記   TRUST_E_SUBJECT_NOT_TRUSTEDリターン コードは、HKLM\Software\Microsoft\Cryptography\Wintrust\Config の EnableCertPaddingCheck レジストリ キーの値に応じて返される場合があります。EnableCertPaddingCheck が "1" に設定されている場合は、WIN_CERTIFICATE構造体に余分な情報が含まれていないことを確認するための追加のチェックが実行されます。 このチェックでは、PKCS #7 構造体を超える 0 以外のデータがないことを検証します。 詳細については、次のセキュリティ アドバイザリを参照してください: http://technet.microsoft.com/security/advisory/2915720#section1。 | 
| 
 | 信頼プロバイダーは、このシステムでは認識されません。 | 
| 
 | 信頼プロバイダーは、指定されたアクションをサポートしていません。 | 
| 
 | 信頼プロバイダーは、サブジェクトに指定されたフォームをサポートしていません。 | 
注釈
WinVerifyTrust 関数を使用すると、アプリケーションは信頼プロバイダーを呼び出して、指定したオブジェクトが指定した検証操作の条件を満たしていることを確認できます。 pgActionID パラメーターは検証操作を識別し、pWinTrustData パラメーターは信頼を検証するオブジェクトを識別します。 信頼プロバイダーは、オペレーティング システムに登録されている DLL です。 WinVerifyTrust への呼び出しは、登録されている信頼プロバイダー (存在する場合) にその指定されたアクション識別子をサポートする呼び出しを転送します。
たとえば、ソフトウェア 発行元信頼プロバイダーは、実行可能イメージ ファイルが信頼できるソフトウェア発行元から取得されていること、およびファイルのコードが署名されてから変更されていないことを確認できます。 この場合、 pWinTrustData パラメーターは、ファイルの名前とファイルの種類 (Microsoft ポータブル実行可能イメージ ファイルなど) を指定します。
各信頼プロバイダーは、評価できる特定の一連のアクションをサポートしています。 各アクションには、それを識別する GUID があります。 信頼プロバイダーは任意の数のアクション識別子をサポートできますが、2 つの信頼プロバイダーが同じアクション識別子をサポートすることはできません。
この関数を使用してポータブル実行可能ファイル (PE) ファイルの署名を検証する方法を示す例については、「 サンプル C プログラム: PE ファイルの署名の検証」を参照してください。
Requirements
| Requirement | 価値 | 
|---|---|
| サポートされる最小クライアント | Windows XP [デスクトップ アプリのみ] | 
| サポートされる最小サーバー | Windows Server 2003 [デスクトップ アプリのみ] | 
| ターゲット プラットフォーム の | ウィンドウズ | 
| Header | wintrust.h (Softpub.h を含む) | 
| Library | Wintrust.lib | 
| DLL | Wintrust.dll |