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 |
---|---|
|
Certificados de autoridade de certificação . |
|
Um repositório de certificados que contém certificados com chaves privadas associadas. |
|
Certificados raiz. |
|
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.
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 |