CertEnumCertificatesInStore 関数 (wincrypt.h)
CertEnumCertificatesInStore 関数は、証明書ストアの最初または次の証明書を取得します。 ループで使用されるこの関数は、証明書ストア内のすべての証明書を順番に取得できます。
構文
PCCERT_CONTEXT CertEnumCertificatesInStore(
[in] HCERTSTORE hCertStore,
[in] PCCERT_CONTEXT pPrevCertContext
);
パラメーター
[in] hCertStore
証明書ストアのハンドル。
[in] pPrevCertContext
前の 証明書コンテキストの CERT_CONTEXT へのポインター 見つかりました。
列挙を開始し、ストア内の最初の証明書を取得するには、このパラメーターを NULL
コレクション ストアを含む
戻り値
関数が成功した場合、関数はストア内の次の CERT_CONTEXT へのポインターを返します。 ストアに証明書がこれ以上存在しない場合、この関数は null
拡張エラー情報については、GetLastError
価値 | 形容 |
---|---|
|
hCertStore パラメーターのハンドルは、pPrevCertContextが指す証明書コンテキストと同じではありません。 |
|
証明書が見つかりませんでした。 これは、ストアが空の場合、または関数がストアのリストの末尾に達した場合に発生します。 |
|
外部ストアに適用されます。 証明書が見つかりませんでした。 これは、ストアが空の場合、または関数がストアのリストの末尾に達した場合に発生します。 |
備考
返されたポインターは、後続の呼び出しで pPrevCertContext パラメーターとして渡されると解放されます。 それ以外の場合は、CertFreeCertificateContext
現在列挙されている証明書の複製は、CertDuplicateCertificateContext
例
次の例では、証明書ストア内の証明書コンテキストを一覧表示します。 この関数を使用する別の例については、「例 C プログラム: 証明書ストアから証明書を削除する」を参照してください。
#include <windows.h>
#include <stdio.h>
#include <Wincrypt.h>
#pragma comment(lib, "crypt32.lib")
//--------------------------------------------------------------------
// Declare and initialize variables.
HANDLE hStoreHandle = NULL;
PCCERT_CONTEXT pCertContext = NULL;
char * pszStoreName = "CA";
//--------------------------------------------------------------------
// Open a system certificate store.
if (hStoreHandle = CertOpenSystemStore(
NULL,
pszStoreName))
{
printf("The %s store has been opened. \n", pszStoreName);
}
else
{
printf("The store was not opened.\n");
exit(1);
}
//-------------------------------------------------------------------
// Find the certificates in the system store.
while(pCertContext= CertEnumCertificatesInStore(
hStoreHandle,
pCertContext)) // on the first call to the function,
// this parameter is NULL
// on all subsequent calls,
// this parameter is the last pointer
// returned by the function
{
//----------------------------------------------------------------
// Do whatever is needed for a current certificate.
// ...
} // End of while.
//--------------------------------------------------------------------
// Clean up.
if (!CertCloseStore(
hStoreHandle,
0))
{
printf("Failed CertCloseStore\n");
exit(1);
}
必要条件
要件 | 価値 |
---|---|
サポートされる最小クライアント | Windows XP [デスクトップ アプリ |UWP アプリ] |
サポートされる最小サーバー | Windows Server 2003 [デスクトップ アプリ |UWP アプリ] |
ターゲット プラットフォーム の |
ウィンドウズ |
ヘッダー | wincrypt.h |
ライブラリ | Crypt32.lib |
DLL | Crypt32.dll |
関連項目
CertDeleteCertificateFromStore