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