CertOpenSystemStoreA 関数 (wincrypt.h)

CertOpenSystemStore 関数は、最も一般的なシステム証明書ストアを開く簡略化された関数です。 ファイル ベースやメモリ ベースのストアなど、より複雑な要件を持つ証明書ストアを開くには、 CertOpenStore を使用します

構文

HCERTSTORE CertOpenSystemStoreA(
  [in] HCRYPTPROV_LEGACY hProv,
  [in] LPCSTR            szSubsystemProtocol
);

パラメーター

[in] hProv

このパラメーターは使用されず、 0 に設定する必要があります。

Windows Server 2003 および Windows XP: 暗号化サービス プロバイダー (CSP) のハンドル。 既定の CSP を使用するには、 hProv0 に設定します。 hProv0 でない場合は、CryptAcquireContext 関数を使用して作成された CSP ハンドルである必要があります。このパラメーターのデータ型は HCRYPTPROV です

[in] szSubsystemProtocol

システム ストアに名前を付ける文字列。 このパラメーターに指定されたシステム・ストア名が既存のシステム・ストアの名前でない場合には,新しいシステム・ストアが作成されて使用されます。 CertEnumSystemStore を使用して、既存のシステム ストアの名前を一覧表示できます。 システム ストアの例を次の表に示します。

意味
Ca
証明機関の 証明書。
MY
関連付けられた秘密キーを持つ証明書を保持する証明書ストア。
ルート
ルート証明書
Spc
ソフトウェア発行元証明書

戻り値

関数が成功した場合、関数は証明書ストアへのハンドルを返します。

関数が失敗した場合は、 NULL を返します。 拡張エラー情報については、 GetLastError を呼び出します。

メモ 呼び出された関数 CertOpenStore からのエラーは、この関数に反映されます。
 

解説

ローカル コンピューター ストアではなく、この方法を使用してアクセスできるのは、現在のユーザー証明書のみです。

システム ストアを開いた後、すべての標準証明書ストア関数を使用して証明書を操作できます。

使用後は、 CertCloseStore を使用してストアを閉じる必要があります。

自動的に移行されるストアの詳細については、「 証明書ストアの移行」を参照してください。

次の例は、最も一般的なシステム証明書ストアを開く簡単な方法を示しています。 この関数を使用する別の例については、「 サンプル C プログラム: 証明書ストア操作」を参照してください。

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

HCERTSTORE  hSystemStore;              // system store handle

//--------------------------------------------------------------------
// Open the CA system certificate store. The same call can be
// used with the name of a different system store, such as My or Root,
// as the second parameter.

if(hSystemStore = CertOpenSystemStore(
    0,
    "CA"))
{
  printf("The CA system store is open. Continue.\n");
}
else
{
  printf("The CA system store did not open.\n");
  exit(1);
}

// Use the store as needed.
// ...

// When done using the store, close it.
if(!CertCloseStore(hSystemStore, 0))
{
  printf("Unable to close the CA system store.\n");
  exit(1);
}

Note

wincrypt.h ヘッダーは、UNICODE プリプロセッサ定数の定義に基づいて、この関数の ANSI または Unicode バージョンを自動的に選択するエイリアスとして CertOpenSystemStore を定義します。 エンコードに依存しないエイリアスをエンコードニュートラルでないコードと組み合わせて使用すると、コンパイルまたはランタイム エラーが発生する不一致が発生する可能性があります。 詳細については、「 関数プロトタイプの規則」を参照してください。

要件

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

関連項目

CertAddEncodedCertificateToStore

CertCloseStore

CertGetCRLContextProperty

CertOpenStore

CertSaveStore

証明書ストア関数