Función CertOpenSystemStoreA (wincrypt.h)

La función CertOpenSystemStore 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). Establezca hProv en 0 para usar el CSP predeterminado. Si hProv no es 0, debe ser un identificador de 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 de sistema existentes. Algunos almacenes del sistema de ejemplo se enumeran en la tabla siguiente.

Value Significado
CA
Certificados de entidad de certificación .
MY
Almacén de certificados que contiene certificados con claves privadas asociadas.
RAÍZ
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 Los errores de la función llamada CertOpenStore se propagan a esta función.
 

Comentarios

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 de 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 use 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 neutro de codificación con código que no es neutral de codificación puede provocar discrepancias que dan lugar a errores de compilación o en tiempo de ejecución. Para obtener más información, vea Convenciones para prototipos de función.

Requisitos

   
Cliente mínimo compatible Windows XP [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows Server 2003 [solo aplicaciones de escritorio]
Plataforma de destino Windows
Encabezado wincrypt.h
Library Crypt32.lib
Archivo DLL Crypt32.dll

Vea también

CertAddEncodedCertificateToStore

CertCloseStore

CertGetCRLContextProperty

CertOpenStore

CertSaveStore

Funciones del almacén de certificados