Função CertOpenSystemStoreA (wincrypt.h)

A função CertOpenSystemStore é uma função simplificada que abre o repositório de certificados do sistema mais comum. Para abrir repositórios de certificados com requisitos mais complexos, como repositórios baseados em arquivo ou de memória, use CertOpenStore.

Sintaxe

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

Parâmetros

[in] hProv

Esse parâmetro não é usado e deve ser definido como 0.

Windows Server 2003 e Windows XP: Um identificador de um provedor de serviços criptográficos (CSP). Defina hProv como 0 para usar o CSP padrão. Se hProv não for 0, ele deverá ser um identificador CSP criado usando a função CryptAcquireContext . O tipo de dados desse parâmetro é HCRYPTPROV.

[in] szSubsystemProtocol

Uma cadeia de caracteres que nomeia um repositório do sistema. Se o nome do repositório do sistema fornecido neste parâmetro não for o nome de um repositório de sistema existente, um novo repositório do sistema será criado e usado. CertEnumSystemStore pode ser usado para listar os nomes dos repositórios de sistema existentes. Alguns repositórios de sistema de exemplo são listados na tabela a seguir.

Valor Significado
AC
Certificados de autoridade de certificação .
MY
Um repositório de certificados que contém certificados com chaves privadas associadas.
RAIZ
Certificados raiz.
SPC
Certificado do Editor de Software.

Retornar valor

Se a função for bem-sucedida, a função retornará um identificador para o repositório de certificados.

Se a função falhar, ela retornará NULL. Para obter informações de erro estendidas, chame GetLastError.

Nota Os erros da função chamada CertOpenStore são propagados para essa função.
 

Comentários

Somente os certificados de usuário atuais são acessíveis usando esse método, não o repositório de computadores local.

Depois que o repositório do sistema for aberto, todas as funções de repositório de certificados padrão poderão ser usadas para manipular os certificados.

Após o uso, o repositório deve ser fechado usando CertCloseStore.

Para obter mais informações sobre os repositórios migrados automaticamente, consulte Migração do Repositório de Certificados.

Exemplos

O exemplo a seguir mostra um método simplificado para abrir os repositórios de certificados do sistema mais comuns. Para obter outro exemplo que usa essa função, consulte Exemplo de programa C: operações de repositório 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);
}

Observação

O cabeçalho wincrypt.h define CertOpenSystemStore como um alias que seleciona automaticamente a versão ANSI ou Unicode dessa função com base na definição da constante de pré-processador UNICODE. Misturar o uso do alias neutro de codificação com código que não seja neutro em codificação pode levar a incompatibilidades que resultam em erros de compilação ou de runtime. Para obter mais informações, consulte Convenções para protótipos de função.

Requisitos

   
Cliente mínimo com suporte Windows XP [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows Server 2003 [somente aplicativos da área de trabalho]
Plataforma de Destino Windows
Cabeçalho wincrypt.h
Biblioteca Crypt32.lib
DLL Crypt32.dll

Confira também

CertAddEncodedCertificateToStore

Certclosestore

CertGetCRLContextProperty

Certopenstore

CertSaveStore

Funções de repositório de certificados