Compartir a través de


Función CertOpenSystemStoreA (wincrypt.h)

La función CertOpenSystemStore de es una función simplificada que abre el almacén de certificados del sistema más común. Para abrir almacenes de certificados con requisitos más complejos, como almacenes basados en archivos o basados en memoria, use CertOpenStore.

Sintaxis

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

Parámetros

[in] hProv

Este parámetro no se usa y debe establecerse en 0.

Windows Server 2003 y Windows XP: Identificador de un proveedor de servicios criptográficos (CSP) de . Establezca hProv en 0 para usar el CSP predeterminado. Si hProv no es 0, debe ser un identificador csp creado mediante la función CryptAcquireContext. El tipo de datos de este parámetro es HCRYPTPROV .

[in] szSubsystemProtocol

Cadena que asigna un nombre a un almacén del sistema. Si el nombre del almacén del sistema proporcionado en este parámetro no es el nombre de un almacén del sistema existente, se creará y usará un nuevo almacén del sistema. certEnumSystemStore se puede usar para enumerar los nombres de los almacenes del sistema existentes. Algunos almacenes del sistema de ejemplo se enumeran en la tabla siguiente.

Valor Significado
de CA de
entidad de certificación certificados.
MI
Almacén de certificados que contiene certificados con claves privadas asociadas.
ROOT
certificados raíz.
SPC
certificado de publicador de software.

Valor devuelto

Si la función se ejecuta correctamente, la función devuelve un identificador al almacén de certificados.

Si se produce un error en la función, devuelve NULL. Para obtener información de error extendida, llame a GetLastError.

Nota Errores de la función llamada CertOpenStore se propagan a esta función.
 

Observaciones

Solo se puede acceder a los certificados de usuario actuales mediante este método, no con el almacén de máquinas locales.

Una vez abierto el almacén del sistema, todas las funciones del almacén de certificados estándar se pueden usar para manipular los certificados.

Después de su uso, el almacén debe cerrarse mediante CertCloseStore.

Para obtener más información sobre los almacenes que se migran automáticamente, consulte Migración del almacén de certificados.

Ejemplos

En el ejemplo siguiente se muestra un método simplificado para abrir los almacenes de certificados del sistema más comunes. Para obtener otro ejemplo que usa esta función, vea Programa C de ejemplo: Operaciones del almacén de certificados.

//--------------------------------------------------------------------
// 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);
}

Nota

El encabezado wincrypt.h define CertOpenSystemStore como alias que selecciona automáticamente la versión ANSI o Unicode de esta función en función de la definición de la constante de preprocesador UNICODE. La combinación del uso del alias neutral de codificación con código que no es neutral de codificación puede dar lugar a errores de coincidencia que dan lugar a errores de compilación o tiempo de ejecución. Para obtener más información, vea Conventions for Function Prototypes.

Requisitos

Requisito Valor
cliente mínimo admitido Windows XP [solo aplicaciones de escritorio]
servidor mínimo admitido Windows Server 2003 [solo aplicaciones de escritorio]
de la plataforma de destino de Windows
encabezado de wincrypt.h
biblioteca de Crypt32.lib
DLL de Crypt32.dll

Consulte también

CertAddEncodedCertificateToStore

CertCloseStore

certGetCRLContextProperty

CertOpenStore

certSaveStore

funciones del almacén de certificados