CertRegisterSystemStore 函式 (wincrypt.h)

CertRegisterSystemStore 函式會註冊系統存放區。

語法

BOOL CertRegisterSystemStore(
  [in] const void              *pvSystemStore,
  [in] DWORD                   dwFlags,
  [in] PCERT_SYSTEM_STORE_INFO pStoreInfo,
  [in] void                    *pvReserved
);

參數

[in] pvSystemStore

識別要註冊的系統存放區。 如果在 dwFlags 參數中設定 CERT_SYSTEM_STORE_RELOCATE_FLAG,pvSystemStore 會指向 CERT_SYSTEM_STORE_RELOCATE_PARA 結構。 否則,它會指向命名系統存放區的 Null 終止 Unicode 字串。

dwFlags 中使用適當的設定,所識別的存放區可以是遠端本機電腦上的系統存放區。 遠端電腦上的存放區可以使用計算機名稱註冊為系統存放區名稱的前置詞。 例如,遠端本機計算機存放區可以向 pvSystemStore 註冊,指向字串 “\ComputerName\Trust” 或 “ComputerName\Trust”。

在 ComputerName 之前,前置 「\」 反斜杠是選擇性的。

[in] dwFlags

dwFlags 參數的高字用來指定系統存放區的位置。

定義下列高字值。

意義
CERT_SYSTEM_STORE_CURRENT_SERVICE
pvSystemStore 可以是前面加上 ServiceName 的系統存放區名稱。
CERT_SYSTEM_STORE_CURRENT_USER
pvSystemStore 可以是前面加上 UserName 的系統存放區名稱。
CERT_SYSTEM_STORE_LOCAL_MACHINE
pvSystemStore 可以是遠端電腦上的系統存放區。
CERT_SYSTEM_STORE_LOCAL_MACHINE_GROUP_POLICY
pvSystemStore 是組策略存放區,可以位於遠端計算機上。
CERT_SYSTEM_STORE_SERVICES
pvSystemStore 必須是前面加上 ServiceName 的系統存放區名稱。
CERT_SYSTEM_STORE_USERS
pvSystemStore 必須是前面加上 UserName 的系統存放區名稱。
 

遠端電腦上的存放區可以註冊CERT_SYSTEM_STORE_LOCAL_MACHINE、CERT_SYSTEM_STORE_SERVICES、CERT_SYSTEM_STORE_USERS或CERT_SYSTEM_STORE_LOCAL_MACHINE_GROUP_POLICY。

下列低字值也會定義,而且可以使用位 OR 運算與高字值結合。

意義
CERT_SYSTEM_STORE_RELOCATE_FLAG
系統存放區不在預設緩存器位置, pvSystemStore 必須是 CERT_SYSTEM_STORE_RELOCATE_PARA 結構的指標。
CERT_STORE_CREATE_NEW_FLAG
如果系統存放區已存在於存放區位置中,則函式會失敗。

[in] pStoreInfo

保留供日後使用,且必須設定為 NULL

[in] pvReserved

保留供日後使用,且必須設定為 NULL

傳回值

如果函式成功,函式會傳回非零。

如果函式失敗,則會傳回零。

備註

若要取消註冊此函式已註冊的系統存放區,請呼叫 CertUnregisterSystemStore

範例

下列範例示範如何將系統存放區新增至登錄系統存放區集合。 如需包含此範例完整內容的範例,請參閱 範例 C 程式:列出系統和實體存放區

//--------------------------------------------------------------------
// Declare and initialize variables.

LPCWSTR pvSystemName= L"NEWSTORE";  // For this setting of 
                                    // dwFlags, the store name may 
                                    // be prefixed with a user name.
DWORD dwFlags= CERT_SYSTEM_STORE_CURRENT_USER;

if(CertRegisterSystemStore(
    pvSystemName,
    dwFlags,
    NULL,
    NULL))
{
  printf("System store %S is registered. \n",pvSystemName);
}
else
{
  printf("The system store did not register. \n");
  exit(1);
}

規格需求

需求
最低支援的用戶端 Windows XP [僅限傳統型應用程式]
最低支援的伺服器 Windows Server 2003 [僅限桌面應用程式]
目標平台 Windows
標頭 wincrypt.h
程式庫 Crypt32.lib
Dll Crypt32.dll

另請參閱

CertEnumPhysicalStore

CertEnumSystemStore

CertEnumSystemStoreLocation

CertRegisterPhysicalStore

CertUnregisterPhysicalStore

CertUnregisterSystemStore

證書存儲函式