Funzione CertSrvRestoreRegisterW (certbcli.h)

La funzione CertSrvRestoreRegister registra un ripristino di Servizi certificati.

Sintassi

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
);

Parametri

[in] hbc

Handle per il contesto di ripristino di Servizi certificati. Questo handle viene ottenuto chiamando la funzione CertSrvRestorePrepare .

[in] pwszCheckPointFilePath

Puntatore a una stringa Unicode con terminazione null contenente il percorso di ripristino per il file del punto di controllo. Passare NULL per questo parametro se non è necessario.

[in] pwszLogPath

Puntatore a una stringa Unicode con terminazione null contenente la directory del file di log corrente. Passare NULL per questo parametro se non è necessario.

[in] rgrstmap

Matrice di strutture CSEDB_RSTMAP che contiene la mappa di ripristino. Se si esegue un ripristino completo del database, questo parametro specifica il nome del database di backup, nonché un nuovo nome per il database dopo il ripristino. Il nome del database di backup viene fatto riferimento al membro pwszDatabaseName e il nuovo nome del database viene fatto riferimento al membro pwszNewDatabaseName . Se la finalità consiste nel mantenere lo stesso nome sia per il database di backup che per il database ripristinato, impostare sia pwszNewDatabaseName che i membri pwszDatabaseName sullo stesso nome. Il nome del database di backup viene costruito dal percorso restituito dalla chiamata del client di backup alla funzione CertSrvRestoreGetDatabaseLocations . CertSrvRestoreGetDatabaseLocations sarebbe stato chiamato durante un backup completo e il client di backup avrebbe salvato il percorso restituito.

Se si esegue un ripristino incrementale, passare NULL per questo parametro.

[in] crstmap

Numero di elementi nella matrice rgrstmap . Passare zero per questo parametro se si esegue un ripristino incrementale.

[in] pwszBackupLogPath

Puntatore a una stringa Unicode con terminazione null contenente il percorso della directory di log di backup. Passare NULL per questo parametro se non è necessario.

[in] genLow

Numero di log più basso ripristinato in questa sessione di ripristino. I file di log sono sotto forma di edbXXXXX.log, dove XXXXX è un valore di cinque cifre esadecimali. Ad esempio, edb00001.log è il primo file di log creato dal database interno. Ai fini di questa funzione, un valore di uno in genLow corrisponde al file di log edb00001.log.

[in] genHigh

Numero di log più alto ripristinato in questa sessione di ripristino.

Valore restituito

Il valore restituito è un HRESULT. Un valore di S_OK indica l'esito positivo.

Commenti

Usare questa funzione per registrare un'operazione di ripristino. Tutte le operazioni di ripristino successive verranno interlockate. La destinazione di ripristino verrà impedita l'avvio (o l'esecuzione di un'altra chiamata a CertSrvRegisterRegister) fino a quando non viene chiamato CertSrvRegisterComplete .

Quando si ripristinano più backup incrementali, l'ordine in cui vengono registrati i backup incrementali non importa. Tuttavia, il backup completo del database deve essere registrato prima di registrare i backup incrementali.

Questa funzione richiede che l'account chiamante sia un amministratore locale. Se non è pratico, usare invece la funzione CertSrvRestoreRegisterThroughFile . La funzione CertSrvRestoreRegisterThroughFile richiede solo che l'account chiamante disponga del privilegio di ripristino.

Esempio

// 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).
// ...

Requisiti

Requisito Valore
Client minimo supportato Nessuno supportato
Server minimo supportato Windows Server 2003 [solo app desktop]
Piattaforma di destinazione Windows
Intestazione certbcli.h (includere Certsrv.h)
Libreria Certadm.lib
DLL Certadm.dll

Vedi anche

CertSrvRestoreRegisterComplete

CertSrvRestoreRegisterThroughFile

Uso delle funzioni di backup e ripristino dei servizi certificati