Función CertAddCRLLinkToStore (wincrypt.h)

La función CertAddCRLLinkToStore agrega un vínculo en un almacén a un contexto de lista de revocación de certificados (CRL) en un almacén diferente. En lugar de crear y agregar un duplicado de la CRL, esta función agrega un vínculo al contexto crL original.

Sintaxis

BOOL CertAddCRLLinkToStore(
  [in]            HCERTSTORE    hCertStore,
  [in]            PCCRL_CONTEXT pCrlContext,
  [in]            DWORD         dwAddDisposition,
  [out, optional] PCCRL_CONTEXT *ppStoreContext
);

Parámetros

[in] hCertStore

Identificador de un almacén de certificados donde se va a agregar el vínculo.

[in] pCrlContext

Puntero a la estructura CRL_CONTEXT que se va a vincular.

[in] dwAddDisposition

Especifica la acción que se debe realizar si existe una CRL coincidente o un vínculo a una CRL coincidente en el almacén. Los valores de disposición definidos actualmente y sus usos son los siguientes.

Valor Significado
CERT_STORE_ADD_ALWAYS
No realiza ninguna comprobación de una CRL coincidente existente o un vínculo a una CRL coincidente. Siempre se agrega un nuevo vínculo a la tienda. Esto puede provocar duplicados en un almacén.
CERT_STORE_ADD_NEW
Si existe una CRL coincidente o un vínculo a una CRL coincidente, se produce un error en la operación. GetLastError devuelve el código CRYPT_E_EXISTS.
CERT_STORE_ADD_NEWER
Si existe una CRL coincidente o un vínculo a una CRL coincidente, se comparan las horas ThisUpdate de las CRL. Si la CRL existente tiene un tiempo ThisUpdate menor que la hora ThisUpdate en la nueva CRL, el vínculo anterior se reemplaza igual que por CERT_STORE_ADD_REPLACE_EXISTING. Si la CRL existente tiene una hora ThisUpdate mayor o igual que la hora ThisUpdate en la CRL que se va a agregar, se produce un error en la función getLastError que devuelve el código de CRYPT_E_EXISTS.

Si no se encuentra una CRL coincidente o un vínculo a una CRL coincidente en el almacén, se agrega un nuevo vínculo al almacén.

CERT_STORE_ADD_REPLACE_EXISTING
Si existe un vínculo a la CRL coincidente, ese vínculo existente se elimina y se crea un nuevo vínculo y se agrega al almacén. Si no existe una CRL coincidente o un vínculo a una CRL coincidente, se agrega un nuevo vínculo.
CERT_STORE_ADD_USE_EXISTING
Si existe una CRL coincidente o un vínculo a una CRL coincidente, se usa ese vínculo existente. No se produce un error en la función, pero no se agrega ningún vínculo nuevo. Si no existe una CRL o un vínculo coincidente a una CRL, se agrega un nuevo vínculo.

[out, optional] ppStoreContext

Puntero a un puntero de una copia del vínculo creado. El parámetro ppStoreContext puede ser NULL para indicar que no se necesita una copia del vínculo. Si se crea una copia del vínculo, esa copia debe liberarse mediante CertFreeCRLContext.

Valor devuelto

Si la función se realiza correctamente, el valor devuelto es TRUE.

Si se produce un error en la función, el valor devuelto es FALSE. Para obtener información de error extendida, llame a GetLastError. A continuación se indican algunos códigos de error posibles.

Código devuelto Descripción
CRYPT_E_EXISTS
Para dwAddDisposition de CERT_STORE_ADD_NEW, el CTL ya existe en el almacén.
E_INVALIDARG
Se especificó un valor de disposición que no es válido en el parámetro dwAddDisposition .

Comentarios

Dado que el vínculo proporciona acceso a un contexto CRL original, al establecer una propiedad extendida en el contexto de CRL vinculado cambia esa propiedad extendida en la ubicación original de la CRL y en cualquier otro vínculo a esa CRL.

No se pueden agregar vínculos a un almacén que se abre como una colección. Las tiendas abiertas como colecciones incluyen todas las tiendas abiertas con CertOpenSystemStore o CertOpenStore mediante CERT_STORE_PROV_SYSTEM o CERT_STORE_PROV_COLLECTION. Para obtener más información, vea CertAddStoreToCollection.

Si se usan vínculos y se llama a CertCloseStore con CERT_CLOSE_STORE_FORCE_FLAG, el almacén que usa vínculos debe cerrarse antes de que se pueda cerrar el almacén que contiene los contextos originales. Si no se usa CERT_CLOSE_STORE_FORCE_FLAG, las dos tiendas se pueden cerrar en cualquier orden.

Para quitar el vínculo de contexto crL del almacén de certificados, use la función CertDeleteCRLFromStore .

Requisitos

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

Consulte también

CertAddCTLLinkToStore

CertAddCertificateLinkToStore

CertAddStoreToCollection

CertCloseStore

CertFreeCRLContext

CertOpenStore

CertOpenSystemStore

Funciones de lista de revocación de certificados