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
Library Crypt32.lib
DLL Crypt32.dll

另请参阅

CertEnumPhysicalStore

CertEnumSystemStore

CertEnumSystemStoreLocation

CertRegisterPhysicalStore

CertUnregisterPhysicalStore

CertUnregisterSystemStore

证书存储函数