共用方式為


CertOpenSystemStoreA 函式 (wincrypt.h)

CertOpenSystemStore 函式是簡化的函式,可開啟最常見的系統 證書存儲。 若要以更複雜的需求開啟證書存儲,例如檔案型或記憶體型存放區,請使用 CertOpenStore

語法

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

參數

[in] hProv

不使用此參數,而且應該設定為 0

Windows Server 2003 和 Windows XP:密碼編譯服務提供者的句柄 (CSP)。 將 hProv 設定為 0,以使用預設 CSP。 如果 hProv 不是 0,則必須是 使用 cryptAcquireContext 函式建立的 CSP 句柄。這個參數的資料類型 HCRYPTPROV

[in] szSubsystemProtocol

命名系統存放區的字串。 如果此參數中提供的系統存放區名稱不是現有系統存放區的名稱,將會建立及使用新的系統存放區。 CertEnumSystemStore 可用來列出現有系統存放區的名稱。 下表列出一些範例系統存放區。

價值 意義
CA
證書頒發機構單位 憑證。
MY
保存具有相關聯私鑰之憑證的證書存儲。
ROOT
跟證書
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);
}

注意

wincrypt.h 標頭會將 CertOpenSystemStore 定義為別名,根據 UNICODE 預處理器常數的定義,自動選取此函式的 ANSI 或 Unicode 版本。 混合使用編碼中性別名與非編碼中性的程序代碼,可能會導致編譯或運行時間錯誤不符。 如需詳細資訊,請參閱函式原型的 慣例。

要求

要求 價值
最低支援的用戶端 Windows XP [僅限傳統型應用程式]
支援的最低伺服器 Windows Server 2003 [僅限傳統型應用程式]
目標平臺 窗戶
標頭 wincrypt.h
連結庫 Crypt32.lib
DLL Crypt32.dll

另請參閱

CertAddEncodedCertificateToStore

CertCloseStore

CertGetCRLContextProperty

CertOpenStore

CertSaveStore

證書存儲函式