次の手順を使用して、ドライバー パッケージに有効な Authenticode デジタル署名があることを確認できます。 これらの手順は、Microsoft Windows Server 2003 以降のバージョンでサポートされています。
ドライバーに有効な Authenticode 署名があるかどうかを確認するには
DNF_AUTHENTICODE_SIGNED フラグを確認します。
ドライバー パッケージに有効な Authenticode 署名がある場合、Windows はドライバー ノードの SP_DRVINSTALL_PARAMS 構造体の Flags メンバーにこのフラグを設定します。 (また、ドライバーが WHQL リリース署名 を持っている場合、システム提供のドライバーである場合、または Authenticode 署名を持っている場合、Windows が DNF_INF_IS_SIGNED フラグを設定することにも注意してください。)
INF ファイルに有効な Authenticode 署名があることを確認するには
SetupVerifyInfFile を呼び出します。
関数によって返されたエラー コードを確認します。
INF ファイルがシステム指定ではなく、有効な WHQL デジタル署名を持っていないが、有効な Authenticode 署名がある場合、SetupVerifyInfFile は FALSE を返し、GetLastError は次のいずれかのエラー コードを返します。
ERROR_AUTHENTICODE_TRUSTED_PUBLISHER
発行元の証明書が信頼された発行元の証明書ストアにインストールされているため、発行元が信頼されていることを示します。Authenticode の信頼が確立されていません
発行元の署名証明書が信頼された発行元証明書ストアにインストールされていないため、信頼を自動的に確立できないことを示します。 ただし、これは必ずしもエラーを示すわけではありません。 代わりに、呼び出し元は、発行元を信頼するために、呼び出し元に固有のポリシーを適用する必要があることを示します。
INF ファイルに有効な Authenticode 署名が付いている場合、SetupVerifyInfFile は、出力構造体 SP_INF_SIGNER_INFO に以下の情報も返します。
DigitalSigner メンバーは署名者の名前に設定されます。
CatalogFile メンバーは、対応する署名付きカタログ ファイルの完全パスに設定されます。
ただし、SetupVerifyInfFile は DigitalSignerVersion メンバー内のバージョンを返さないことに注意してください。
ファイルに有効な Authenticode 署名があることを確認するには
SPQ_SCAN_USE_CALLBACK_SIGNERINFO フラグを指定して、SetupAPI 関数 SetupScanFileQueue を呼び出します。
SetupScanFileQueue は、呼び出し元のコールバック ルーチンにSPFILENOTIFY_QUEUESCAN_SIGNERINFO要求を送信し、FILEPATHS_SIGNERINFO構造体へのポインターを渡します。 ファイルが有効な Authenticode シグネチャで署名されている場合、関数は、ファイルのコールバック ルーチンを呼び出す前に、エラー コードを適切なERROR_AUTHENTICODE_Xxx値に設定します。 この関数は、FILEPATHS_SIGNERINFO構造体に次の情報も設定します。
DigitalSigner メンバーは署名者の名前に設定されます。
CatalogFile メンバーは、対応する署名付きカタログ ファイルの完全パスに設定されます。
ただし、バージョンは Version メンバーで設定されていないことに注意してください。
SetupScanFileQueue は、このトピックで SetupVerifyInfFile について前述したのと同様に、ERROR_AUTHENTICODE_Xxx エラー コードを設定します。