CertOpenSystemStoreA 関数 (wincrypt.h)
CertOpenSystemStore 関数は、最も一般的なシステム証明書ストアを開く簡略化された関数です。 ファイル ベースやメモリ ベースのストアなど、より複雑な要件を持つ証明書ストアを開くには、 CertOpenStore を使用します。
構文
HCERTSTORE CertOpenSystemStoreA(
[in] HCRYPTPROV_LEGACY hProv,
[in] LPCSTR szSubsystemProtocol
);
パラメーター
[in] hProv
このパラメーターは使用されず、 0 に設定する必要があります。
Windows Server 2003 および Windows XP: 暗号化サービス プロバイダー (CSP) のハンドル。 既定の CSP を使用するには、 hProv を 0 に設定します。 hProv が 0 でない場合は、CryptAcquireContext 関数を使用して作成された CSP ハンドルである必要があります。このパラメーターのデータ型は HCRYPTPROV です。
[in] szSubsystemProtocol
システム ストアに名前を付ける文字列。 このパラメーターに指定されたシステム・ストア名が既存のシステム・ストアの名前でない場合には,新しいシステム・ストアが作成されて使用されます。 CertEnumSystemStore を使用して、既存のシステム ストアの名前を一覧表示できます。 システム ストアの例を次の表に示します。
値 | 意味 |
---|---|
|
証明機関の 証明書。 |
|
関連付けられた秘密キーを持つ証明書を保持する証明書ストア。 |
|
ルート証明書。 |
|
ソフトウェア発行元証明書。 |
戻り値
関数が成功した場合、関数は証明書ストアへのハンドルを返します。
関数が失敗した場合は、 NULL を返します。 拡張エラー情報については、 GetLastError を呼び出します。
解説
ローカル コンピューター ストアではなく、この方法を使用してアクセスできるのは、現在のユーザー証明書のみです。
システム ストアを開いた後、すべての標準証明書ストア関数を使用して証明書を操作できます。
使用後は、 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 |