Partager via


CertSrvRestoreGetDatabaseLocationsW, fonction (certbcli.h)

La fonction CertSrvRestoreGetDatabaseLocations est utilisée dans les scénarios de sauvegarde et de restauration et récupère la liste des noms d’emplacement de base de données des services de certificats pour tous les fichiers sauvegardés ou restaurés.

Syntaxe

HRESULT CERTBCLI_API CertSrvRestoreGetDatabaseLocationsW(
  [in]  HCSBC hbc,
  [out] PWSTR *ppwszzDatabaseLocationList,
  [out] DWORD *pcbSize
);

Paramètres

[in] hbc

Handle pour un contexte de sauvegarde ou de restauration des services de certificats.

[out] ppwszzDatabaseLocationList

Pointeur vers un pointeur WCHAR pour recevoir la liste des noms d’emplacement de base de données terminés par null, du nom du répertoire du journal et du nom de répertoire système (ou de point de contrôle). Il y a un caractère null après chaque nom et un caractère Null supplémentaire à la fin de la liste. Le nom de l’emplacement se présente sous la forme UNC « ## \\Server\SharePoint\... Path...\FileName.ext ». Les noms de répertoires auront la même forme, mais sans « \FileName.ext » de fin. Le texte « ## » indique un type de fichier de sauvegarde des services de certificats (CSBFT_*) et est stocké sous la forme d’un seul caractère Unicode non null préfixé sur chaque chemin UNC. La balise de type est définie dans Certbcli.h et peut être l’une des valeurs suivantes pour cette fonction.

Valeur Signification
CSBFT_CERTSERVER_DATABASE
Nom du fichier de base de données des services de certificats, y compris le chemin d’accès.
CSBFT_CHECKPOINT_DIR
Répertoire système de base de données (ou point de contrôle) des services de certificats.
CSBFT_LOG_DIR
Répertoire du journal de la base de données Des services de certificats.
 

Vous devez libérer cette mémoire allouée lorsque vous avez terminé en appelant CertSrvBackupFree.

La définition de *ppwszzDatabaseLocationList sur NULL avant l’appel de cette fonction est facultative.

[out] pcbSize

Pointeur vers la valeur DWORD qui spécifie le nombre d’octets dans ppwszzDatabaseLocationList.

Valeur retournée

La valeur de retour est un HRESULT. La valeur S_OK indique la réussite.

Remarques

Les services de certificats doivent être en cours d’exécution pour que cette méthode réussisse.

Le nom de cette fonction dans Certadm.dll est CertSrvRestoreGetDatabaseLocationsW. Vous devez utiliser cette forme de nom lors de l’appel de GetProcAddress. En outre, cette fonction est définie comme type FNCERTSRVRESTOREGETDATABASELOCATIONSW dans le fichier d’en-tête Certbcli.h.

Exemples

FNCERTSRVRESTOREGETDATABASELOCATIONSW* pfnGetDBLocs;
char *  szGetDBLocsFunc = "CertSrvRestoreGetDatabaseLocationsW";
WCHAR * pwszzDBLocs;
DWORD   nListBytes=0;
HRESULT hr=0;

// Get the address for the desired function.    
// hInst was set by calling LoadLibrary for Certadm.dll.
pfnGetDBLocs = (FNCERTSRVRESTOREGETDATABASELOCATIONSW*)
    GetProcAddress(hInst, szGetDBLocsFunc);
if ( NULL == pfnGetDBLocs )
{
    printf("Failed GetProcAddress - %s, error=%d\n",
           szGetDBLocsFunc,
           GetLastError() );
    exit(1); // Or other appropriate error action.
}

// Determine the names of the database locations.
// hCSBC was set by an earlier call to CertSrvRestorePrepare.
hr = pfnGetDBLocs(hCSBC, &pwszzDBLocs, &nListBytes);
if (FAILED(hr))
{
    printf("Failed pfnGetDBLocs call [%x]\n", hr);
    exit(1); // Or other appropriate error action.
}
else
{
    printf("%d bytes for DB locations\n", nListBytes);
    WCHAR * pwszFile = pwszzDBLocs;
    // Process the list.
    while ( L'\0' != *pwszFile )
    {
        // Use the file name referenced by pwszFile.
        // Here it is merely displayed.
        printf("%02x: %ws\n", *pwszFile, &pwszFile[1]);
        // Move to the next database file name.
        // + 1 moves past the null terminator.
        pwszFile+=(wcslen(pwszFile)) + 1; 
    }
    // Free the allocated memory.
    // pfnBackupFree is the address of the 
    // CertSrvBackupFree function.
    pfnBackupFree(pwszzDBLocs);
}

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 certbcli.h (include Certsrv.h)
Bibliothèque Certadm.lib
DLL Certadm.dll

Voir aussi

CertSrvBackupFree

Utilisation des fonctions de sauvegarde et de restauration des services de certificat