Partager via


CertSrvRestoreRegisterW, fonction (certbcli.h)

La fonction CertSrvRestoreRegister enregistre une restauration des services de certificat.

Syntaxe

HRESULT CERTBCLI_API CertSrvRestoreRegisterW(
  [in] HCSBC            hbc,
  [in] WCHAR const      *pwszCheckPointFilePath,
  [in] WCHAR const      *pwszLogPath,
  [in] CSEDB_RSTMAPW [] rgrstmap,
  [in] LONG             crstmap,
  [in] WCHAR const      *pwszBackupLogPath,
  [in] ULONG            genLow,
  [in] ULONG            genHigh
);

Paramètres

[in] hbc

Handle du contexte de restauration des services de certificats. Ce handle est obtenu en appelant la fonction CertSrvRestorePrepare .

[in] pwszCheckPointFilePath

Pointeur vers une chaîne Unicode terminée par null qui contient le chemin de restauration du fichier de point case activée. Transmettez NULL pour ce paramètre s’il n’est pas nécessaire.

[in] pwszLogPath

Pointeur vers une chaîne Unicode terminée par null qui contient le répertoire du fichier journal actuel. Transmettez NULL pour ce paramètre s’il n’est pas nécessaire.

[in] rgrstmap

Tableau de structures CSEDB_RSTMAP qui contient la carte de restauration. Si vous effectuez une restauration complète de la base de données, ce paramètre spécifie le nom de la base de données de sauvegarde, ainsi qu’un nouveau nom pour la base de données après sa restauration. Le nom de la base de données de sauvegarde est référencé par le membre pwszDatabaseName , et le nouveau nom de la base de données est référencé par le membre pwszNewDatabaseName . Si l’intention est de conserver le même nom pour la base de données de sauvegarde et la base de données restaurée, définissez les membres pwszNewDatabaseName et pwszDatabaseName sur le même nom. Le nom de la base de données de sauvegarde est construit à partir du chemin retourné par l’appel du client de sauvegarde à la fonction CertSrvRestoreGetDatabaseLocations . CertSrvRestoreGetDatabaseLocations aurait été appelé lors d’une sauvegarde complète, et le client de sauvegarde aurait enregistré le chemin d’accès retourné.

Si vous effectuez une restauration incrémentielle, transmettez NULL pour ce paramètre.

[in] crstmap

Nombre d’éléments dans le tableau rgrstmap . Passez zéro pour ce paramètre si vous effectuez une restauration incrémentielle.

[in] pwszBackupLogPath

Pointeur vers une chaîne Unicode terminée par null qui contient le chemin du répertoire du journal de sauvegarde. Transmettez NULL pour ce paramètre s’il n’est pas nécessaire.

[in] genLow

Le numéro de journal le plus bas qui a été restauré dans cette session de restauration. Les fichiers journaux se présentent sous la forme de edbXXXXX.log, où XXXXX est une valeur hexadécimale à cinq chiffres. Par exemple, edb00001.log est le premier fichier journal créé par la base de données interne. Pour les besoins de cette fonction, une valeur dans genLow correspond au fichier journal edb00001.log.

[in] genHigh

Numéro de journal le plus élevé restauré dans cette session de restauration.

Valeur retournée

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

Remarques

Utilisez cette fonction pour inscrire une opération de restauration. Toutes les opérations de restauration suivantes seront verrouillées. La cible de restauration ne peut pas démarrer (ou exécuter correctement un autre appel à CertSrvRestoreRegister) tant que CertSrvRestoreRegisterComplete n’est pas appelé.

Lors de la restauration de plusieurs sauvegardes incrémentielles, l’ordre dans lequel les sauvegardes incrémentielles sont enregistrées n’a pas d’importance. Toutefois, la sauvegarde complète de la base de données doit être inscrite avant d’inscrire les sauvegardes incrémentielles.

Cette fonction nécessite que le compte appelant soit un administrateur local. Si cela n’est pas pratique, utilisez la fonction CertSrvRestoreRegisterThroughFile à la place. La fonction CertSrvRestoreRegisterThroughFile nécessite uniquement que le compte appelant dispose du privilège de restauration.

Exemples

// szMyDBName is the returned path from the backup client's
// call to CertSrvRestoreGetDatabaseLocations. This value would
// have been saved during a full backup operation.
CSEDB_RSTMAP rgrstmap[1] = 
{ 
    szMyDBName, // database name
    szMyDBName  // new name same as old
};

HRESULT hr = 0;

// Register a restore operation.
// hsb is an HCSBC created previously by CertSrvRestorePrepare.
hr = CertSrvRestoreRegister( 
    hsb,
    NULL,
    szMyRestoreLogPath, // defined elsewhere
    rgrstmap,
    1,
    szMyBackupLogPath, // defined elsewhere
    1,    // edb00001.log
    0x1a  // edb0001a.log
    );

if (S_OK != hr)
{
    printf("Failed CertSrvRestoreRegister - %x\n", hr);
    exit(1); // Or other appropriate error action.
}

// Continue processing.
// When done, call CertSrvRestoreRegisterComplete (not shown).
// ...

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

CertSrvRestoreRegisterComplete

CertSrvRestoreRegisterThroughFile

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