次の方法で共有


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 に設定します。 hProv 0されていない場合は、CryptAcquireContext 関数を使用して作成された CSP ハンドルである必要があります。このパラメーターのデータ型は HCRYPTPROVです。

[in] szSubsystemProtocol

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

価値 意味
CA
証明機関 証明書を します。
マイ を する
関連付けられた秘密キーを持つ証明書を保持する証明書ストア。
ROOT
ルート証明書を します。
SPC の
ソフトウェア 発行元証明書の

戻り値

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

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

CertOpenStore 呼び出された関数からの エラーがこの関数に伝達されることに注意してください。
 

備考

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

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

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

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

次の例は、最も一般的なシステム証明書ストアを開く簡単な方法を示しています。 この関数を使用する別の例については、「例 C Program: Certificate Store Operations」を参照してください。

//--------------------------------------------------------------------
// 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);
}

手記

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

必要条件

要件 価値
サポートされる最小クライアント Windows XP [デスクトップ アプリのみ]
サポートされる最小サーバー Windows Server 2003 [デスクトップ アプリのみ]
ターゲット プラットフォーム の ウィンドウズ
ヘッダー wincrypt.h
ライブラリ Crypt32.lib
DLL Crypt32.dll

関連項目

CertAddEncodedCertificateToStore

CertCloseStore

CertGetCRLContextProperty

CertOpenStore

CertSaveStore

証明書ストア関数