Compartilhar via


Função CertOpenSystemStoreA (wincrypt.h)

A função CertOpenSystemStore é uma função simplificada que abre o sistema mais comum repositório de certificados. Para abrir repositórios de certificados com requisitos mais complexos, como repositórios baseados em arquivo ou com base em 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 CSP ( provedor de serviços criptográficos). 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 de sistema será criado e usado. CertEnumSystemStore podem ser usados 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
de AC
certificados autoridade de certificação.
MY
Um repositório de certificados que contém certificados com chaves privadas associadas.
RAIZ do
certificados raiz.
de SPC
de Certificado do Publicador de Software.

Valor de retorno

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.

Observação Erros da função chamada CertOpenStore são propagados para essa função.
 

Observações

Somente os certificados de usuário atuais são acessíveis usando esse método, não o repositório de máquinas 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 de 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 do 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);
}

Nota

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 do pré-processador UNICODE. A combinação do uso do alias neutro de codificação com código que não é neutro em codificação pode levar a incompatibilidades que resultam em erros de compilação ou de runtime. Para obter mais informações, consulte Conventions for Function Prototypes.

Requisitos

Requisito Valor
de cliente com suporte mínimo Windows XP [somente aplicativos da área de trabalho]
servidor com suporte mínimo Windows Server 2003 [somente aplicativos da área de trabalho]
da Plataforma de Destino Windows
cabeçalho wincrypt.h
biblioteca Crypt32.lib
de DLL Crypt32.dll

Consulte também

CertAddEncodedCertificateToStore

CertCloseStore

CertGetCRLContextProperty

CertOpenStore

CertSaveStore

Funções do repositório de certificados