Méthode ICertAdmin ::GetCRL (certadm.h)
La méthode GetCRL récupère la liste de révocation de certificats (CRL) actuelle pour l’autorité de certification des services de certification (CA). Cette méthode a d’abord été définie dans l’interface ICertAdmin .
Syntaxe
HRESULT GetCRL(
[in] const BSTR strConfig,
[in] LONG Flags,
[out] BSTR *pstrCRL
);
Paramètres
[in] strConfig
Représente une chaîne de configuration valide pour l’autorité de certification dont vous souhaitez récupérer la liste de révocation de certificats. Cette chaîne se présente sous la forme COMPUTERNAME\CANAME, où COMPUTERNAME est le nom réseau du serveur des services de certificats et CANAME est le nom commun de l’autorité de certification, comme entré lors de l’installation des services de certificats. Pour plus d’informations sur le nom de la chaîne de configuration, consultez ICertConfig.
[in] Flags
Spécifie le format de la liste de révocation de certificats retournée. Ce paramètre peut être l’un des indicateurs suivants.
Valeur | Signification |
---|---|
|
Format BASE64 avec début/fin. |
|
Format BASE64 sans début/fin. |
|
Format binaire. |
[out] pstrCRL
Pointeur vers un BSTR qui reçoit la liste de révocation de certificats.
Lorsque vous utilisez cette méthode, créez une variable de type BSTR , définissez la variable sur NULL et transmettez l’adresse de cette variable dans le paramètre pbstrCRL . Une fois que vous avez terminé d’utiliser la variable BSTR , libérez-la en appelant la fonction SysFreeString .
Valeur retournée
Si la fonction réussit, la fonction retourne S_OK.
Si la fonction échoue, elle retourne une valeur HRESULT qui indique l’erreur. Les valeurs possibles sont notamment celles figurant dans le tableau suivant. Pour obtenir la liste des codes d’erreur courants, consultez Valeurs HRESULT courantes.
Code de retour | Description |
---|---|
|
Le paramètre strConfig ne peut pas être NULL ou aucune liste de révocation de certificats n’a été trouvée. |
Remarques
Les tâches d’administration utilisent DCOM. Le code qui appelle cette méthode d’interface telle que définie dans une version antérieure de Certadm.h s’exécute sur les serveurs Windows tant que le client et le serveur exécutent le même système d’exploitation Windows.
Exemples
L’exemple suivant déclare les variables nécessaires, initialise COM et crée une instance de la classe CertAdmin. Il appelle ensuite GetCRL et imprime la réussite ou l’échec à l’écran. Enfin, il libère des ressources.
ICertAdmin * pCertAdmin = NULL; // pointer to interface object
BSTR bstrCA = NULL; // variable for machine\CAName
BSTR bstrCRL = NULL; // variable to contain
// the retrieved CRL
HRESULT hr;
// Initialize COM.
hr = CoInitializeEx(NULL, COINIT_APARTMENTTHREADED);
if (FAILED(hr))
{
printf("Failed CoInitializeEx [%x]\n", hr);
goto error;
}
// Create the CertAdmin object
// and get a pointer to its ICertAdmin interface.
hr = CoCreateInstance( CLSID_CCertAdmin,
NULL,
CLSCTX_INPROC_SERVER,
IID_ICertAdmin,
(void **)&pCertAdmin);
if (FAILED(hr))
{
printf("Failed CoCreateInstance pCertAdmin [%x]\n", hr);
goto error;
}
// Note the use of two backslashes (\\)
// in C++ to produce one backslash (\).
bstrCA = SysAllocString(L"<COMPUTERNAMEHERE>\\<CANAMEHERE>");
if (FAILED(hr))
{
printf("Failed to allocate memory for bstrCA\n");
goto error;
}
// Retrieve the CRL.
hr = pCertAdmin->GetCRL( bstrCA, CR_OUT_BINARY, &bstrCRL );
if (FAILED(hr))
{
printf("Failed GetCRL [%x]\n", hr);
goto error;
}
else
printf("CRL retrieved successfully\n");
// Use the CRL as needed.
// Done processing.
error:
// Free BSTR values.
if (NULL != bstrCA)
SysFreeString(bstrCA);
if (NULL != bstrCRL)
SysFreeString(bstrCRL);
// Clean up object resources.
if (NULL != pCertAdmin)
pCertAdmin->Release();
// Free COM resources.
CoUninitialize();
Configuration requise
Condition requise | Valeur |
---|---|
Client minimal pris en charge | Aucun pris en charge |
Serveur minimal pris en charge | Windows Server 2003 [applications de bureau uniquement] |
Plateforme cible | Windows |
En-tête | certadm.h (include Certsrv.h) |
Bibliothèque | Certidl.lib |
DLL | Certadm.dll |
Voir aussi
ICertAdmin2