CertSetStoreProperty 関数 (wincrypt.h)

CertSetStoreProperty 関数は、ストア プロパティを設定します。

構文

BOOL CertSetStoreProperty(
  [in] HCERTSTORE hCertStore,
  [in] DWORD      dwPropId,
  [in] DWORD      dwFlags,
  [in] const void *pvData
);

パラメーター

[in] hCertStore

証明書ストアのハンドル。

[in] dwPropId

ストア プロパティの範囲のいずれかを示します。 ユーザー定義プロパティの値は、定義済みのコンテキスト プロパティ値の現在の範囲外である必要があります。 現在、ユーザー定義 の dwPropId 値は 4,096 から始まります。 ストアのローカライズされた名前CERT_STORE_LOCALIZED_NAME_PROP_ID、定義済みのストア プロパティが 1 つあります。

[in] dwFlags

将来使用するために予約されており、0 である必要があります。

[in] pvData

pvData の型定義は、dwPropId 値によって異なります。 dwPropId がCERT_STORE_LOCALIZED_NAME_PROP_ID場合、pvDataCRYPT_DATA_BLOB構造体を指します。 その構造体の pbData メンバーは、 null で終わる Unicode 文字列へのポインターです。 その構造体の cbData メンバーは、文字列の長さを保持する DWORD 値です。

ユーザー定義 の dwPropId 値の場合、 pvData はエンコードされた CRYPT_DATA_BLOBへのポインターです。

選択したプロパティの値が既に存在する場合は、古い値が置き換えられます。

pvDataNULL に設定してこの関数を呼び出すと、プロパティが削除されます。

戻り値

関数が成功した場合、戻り値は TRUE になります

関数が失敗した場合、戻り値は FALSE になります

解説

ストア プロパティ識別子は、ストア全体に適用できるプロパティです。 これらは、個々の 証明書CRL、または CTL コンテキストのプロパティではありません。 現在、ストア プロパティは保持されません。

次の例は、開いている証明書ストアのローカライズされた名前プロパティの設定を示しています。

//--------------------------------------------------------------
// Declare and initialize variables.

HCERTSTORE hCertStore = NULL;       // Original certificate store
CRYPT_DATA_BLOB Property_Name_Blob; // BLOB to hold store property

//--------------------------------------------------------------
// Open the certificate store that will have its localized name
// property set. In this case, the CA system store is opened. 

if ( hCertStore = CertOpenStore(
    CERT_STORE_PROV_SYSTEM,
    0,
    NULL,
    CERT_SYSTEM_STORE_CURRENT_USER,
    L"CA"))
{
     printf("The CA store is open.\n");
}
else
{
     printf("The CA store could not be opened \n.");
     exit(1);
}

//--------------------------------------------------------------------
// Prepare a data structure to set a store property.
// Initialize the members of the CRYPT_DATA_BLOB.
Property_Name_Blob.pbData = (BYTE *) L"The Local CA Store";
Property_Name_Blob.cbData = 
       (wcslen((LPWSTR)Property_Name_Blob.pbData)+1) * sizeof(WCHAR);

//--------------------------------------------------------------------
// Set the store's localized name property.
if (CertSetStoreProperty(
    hCertStore,
    CERT_STORE_LOCALIZED_NAME_PROP_ID,
    0,
    &Property_Name_Blob))
{
     printf("The name of the store has been set. Continue. \n");
}
else
{
     printf("Setting the store's localized name failed.\n");
     exit(1);
}

// Close the store when done.
if (!CertCloseStore(
     hCertStore,
     0 ))
{
     printf("The CA store could not be closed \n.");
     exit(1);

}

この関数を使用する別の例については、「 サンプル C プログラム: 証明書ストアのプロパティの設定と取得」を参照してください。

要件

   
サポートされている最小のクライアント Windows XP [デスクトップ アプリ | UWP アプリ]
サポートされている最小のサーバー Windows Server 2003 [デスクトップ アプリのみ | UWP アプリ]
対象プラットフォーム Windows
ヘッダー wincrypt.h
Library Crypt32.lib
[DLL] Crypt32.dll

関連項目

CertGetStoreProperty

証明書ストア関数