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
保存具有相關聯私密金鑰之憑證的憑證存放區。
根憑證
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 [僅限傳統型應用程式]
目標平臺 Windows
標頭 wincrypt.h
程式庫 Crypt32.lib
DLL Crypt32.dll

另請參閱

CertAddEncodedCertificateToStore

CertCloseStore

CertGetCRLCoNtextProperty

CertOpenStore

CertSaveStore

憑證存放區函式