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 |
---|---|
|
Certificados de entidad de certificación . |
|
Almacén de certificados que contiene certificados con claves privadas asociadas. |
|
Certificados raíz. |
|
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.
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 |