CertAddCertificateLinkToStore 関数 (wincrypt.h)
CertAddCertificateLinkToStore 関数は、証明書ストア内のリンクを別のストアの証明書コンテキストに追加します。 この関数は、証明書コンテキストの複製を作成して追加する代わりに、元の証明書へのリンクを追加します。
構文
BOOL CertAddCertificateLinkToStore(
[in] HCERTSTORE hCertStore,
[in] PCCERT_CONTEXT pCertContext,
[in] DWORD dwAddDisposition,
[out, optional] PCCERT_CONTEXT *ppStoreContext
);
パラメーター
[in] hCertStore
リンクを追加する 証明書ストア へのハンドル。
[in] pCertContext
リンクする CERT_CONTEXT 構造体へのポインター。
[in] dwAddDisposition
一致する証明書または一致する証明書へのリンクがストアに既に存在する場合のアクションを指定します。 現在定義されている廃棄値とその用途は次のとおりです。
値 | 意味 |
---|---|
|
関数は、既存の一致する証明書または一致する証明書へのリンクに対してチェックを行いません。 新しい証明書は常にストアに追加されます。 これにより、ストア内で重複が発生する可能性があります。 |
|
一致する証明書または一致する証明書へのリンクが存在する場合、操作は失敗します。 GetLastError は 、CRYPT_E_EXISTSコードを返します。 |
|
一致する証明書へのリンクが存在する場合、その既存のリンクが削除され、新しいリンクが作成されてストアに追加されます。 一致する証明書または一致する証明書へのリンクが存在しない場合は、証明書が追加されます。 |
|
一致する証明書または一致する証明書へのリンクが存在する場合は、既存の証明書が使用されます。 関数は失敗しませんが、新しいリンクは追加されません。 一致する証明書または一致する証明書へのリンクが存在しない場合は、新しいリンクが追加されます。 |
[out, optional] ppStoreContext
作成されたリンクのコピーへのポインターへのポインター。 リンクのコピーが不要であることを示すには、 ppStoreContext パラメーターを NULL に できます。 リンクのコピーが作成された場合、そのコピーは CertFreeCertificateContext 関数を使用して解放する必要があります。
戻り値
関数が成功した場合、戻り値は TRUE になります。
関数が失敗した場合、戻り値は FALSE になります。 拡張エラー情報については、 GetLastError を呼び出します。 考えられるエラー コードの一部を次に示します。
リターン コード | 説明 |
---|---|
|
CERT_STORE_ADD_NEW の dwAddDisposition パラメーターの場合、証明書はストアに既に存在します。 |
|
無効な処理値が dwAddDisposition パラメーターで指定されました。 |
注釈
リンクは元の証明書 コンテキストへのアクセスを提供するため、リンクされた 証明書コンテキスト で拡張プロパティを設定すると、証明書の元の場所およびその他の証明書へのリンク内の拡張プロパティが変更されます。
コレクションとして開かれたストアにリンクを追加することはできません。 コレクションとして開かれたストアには、CERT_STORE_PROV_SYSTEMまたはCERT_STORE_PROV_COLLECTIONを使用して CertOpenSystemStore または CertOpenStore で開かれたすべてのストアが含まれます。 詳細については、「 CertAddStoreToCollection」を参照してください。
リンクが使用され、 CERT_CLOSE_STORE_FORCE_FLAGで CertCloseStore が呼び出される場合は、元のコンテキストを含むストアを閉じる前に、リンクを使用するストアを閉じる必要があります。 CERT_CLOSE_STORE_FORCE_FLAGを使用しない場合は、どちらの順序でも 2 つのストアを閉じることができます。
証明書ストアから証明書コンテキスト リンクを削除するには、 CertDeleteCertificateFromStore 関数を使用します。
例
この関数を使用する例については、「 サンプル C プログラム: 証明書ストア操作」を参照してください。 この関数を使用するその他のコードについては、「 サンプル C プログラム: コレクションと兄弟証明書ストア操作」を参照してください。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows XP [デスクトップ アプリ | UWP アプリ] |
サポートされている最小のサーバー | Windows Server 2003 [デスクトップ アプリのみ | UWP アプリ] |
対象プラットフォーム | Windows |
ヘッダー | wincrypt.h |
Library | Crypt32.lib |
[DLL] | Crypt32.dll |