CertGetStoreProperty 関数 (wincrypt.h)

CertGetStoreProperty 関数はストア プロパティを取得します。

構文

BOOL CertGetStoreProperty(
  [in]      HCERTSTORE hCertStore,
  [in]      DWORD      dwPropId,
  [out]     void       *pvData,
  [in, out] DWORD      *pcbData
);

パラメーター

[in] hCertStore

開いている 証明書ストアのハンドル。

[in] dwPropId

ストア プロパティの範囲のいずれかを示します。 ストアのローカライズされた名前CERT_STORE_LOCALIZED_NAME_PROP_ID、定義済みのストア プロパティが 1 つあります。

ユーザー定義プロパティは、定義済みのコンテキスト プロパティの現在の値の範囲外である必要があります。 現在、ユーザー定義 の dwPropId 値は 4,096 から始まります。

[out] pvData

dwPropId によって決定されたデータを受け取るバッファーへのポインター。 CERT_STORE_LOCALIZED_NAME_PROP_IDの場合、これはストアのローカライズされた名前であり、 pvData は null で終わる Unicode ワイド文字列を指します。 その他の dwPropIdの場合、 pvData は バイト配列を指します。

このパラメーターは、メモリ割り当てのためにこの情報のサイズを設定するために NULL にすることができます 。 詳細については、「 不明な長さのデータの取得」を参照してください。

[in, out] pcbData

pvData バッファーのサイズをバイト単位で指定する DWORD 値へのポインター。 関数が戻ると、 DWORD 値にはバッファーに格納されているバイト数が含まれます。

戻り値

関数が成功した場合、関数は 0 以外の値を返します。

関数が失敗すると、0 が返されます。

store プロパティが見つかった場合、この関数は 0 以外の値を返し、 pvData は プロパティを指し、 pcbData は文字列の長さを指します。 store プロパティが見つからない場合、この関数は 0 を返し、 GetLastError は CRYPT_E_NOT_FOUNDを返します。

注釈

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

ストアのローカライズされた名前を検索するには、 CryptFindLocalizedName 関数を使用することもできます。

次の例は、ストアに対してローカル名プロパティのクエリを実行する方法を示しています。 同様のコードを使用して、他のストア プロパティを取得できます。 この関数を使用する完全な例については、「 サンプル C プログラム: 証明書ストアのプロパティの設定と取得」を参照してください。

#include <windows.h>
#include <stdio.h>
#include <Wincrypt.h>


//--------------------------------------------------------------------
// Declare and initialize variables.
void *pvData = NULL;
DWORD cbData = 0;

//--------------------------------------------------------------------
// Call CertGetStoreProperty a first time
// to get the length of the store name string to be returned.
// hCertStore is a previously assigned HCERTSTORE variable that
// represents an open certificate store.
if(CertGetStoreProperty(
    hCertStore,
    CERT_STORE_LOCALIZED_NAME_PROP_ID,
    NULL,     // NULL on the first call  
              // to establish the length of the string
              // to be returned
    &cbData))
{
     printf("The length of the property is %d. \n",cbData);
}
else
{
     printf("The length of the property was not calculated.\n");
     exit(1);
}

//--------------------------------------------------------------------
// cbData is the length of a string to be allocated. 
// Allocate the space for the string and call the function a 
// second time.
if(pvData = malloc(cbData))
{
     printf("%d bytes of memory allocated.\n",cbData);
}
else
{
     printf("Memory was not allocated.\n");
     exit(1);
}

// Call CertGetStoreProperty a second time
// to copy the local store name into the pvData buffer.
if(CertGetStoreProperty(
    hCertStore,
    CERT_STORE_LOCALIZED_NAME_PROP_ID,
    pvData,
    &cbData))
{
     printf("The localized name is %S.\n",pvData);
}
else
{
     printf("CertGetStoreProperty failed.\n");
     exit(1);
}

// Free memory when done.
if (pvData)
    free(pvData);

要件

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

こちらもご覧ください

CertSetStoreProperty

証明書ストア関数