Compartilhar via


Função CertSrvRestoreRegisterW (certbcli.h)

A função CertSrvRestoreRegister registra uma restauração dos Serviços de Certificados.

Sintaxe

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

Parâmetros

[in] hbc

Um identificador para o contexto de restauração dos Serviços de Certificados. Esse identificador é obtido chamando a função CertSrvRestorePrepare .

[in] pwszCheckPointFilePath

Um ponteiro para uma cadeia de caracteres Unicode terminada em nulo que contém o caminho de restauração para o arquivo de ponto marcar. Passe NULL para esse parâmetro se ele não for necessário.

[in] pwszLogPath

Um ponteiro para uma cadeia de caracteres Unicode terminada em nulo que contém o diretório do arquivo de log atual. Passe NULL para esse parâmetro se ele não for necessário.

[in] rgrstmap

Uma matriz de estruturas de CSEDB_RSTMAP que contém o mapa de restauração. Se você estiver executando uma restauração completa do banco de dados, esse parâmetro especificará o nome do banco de dados de backup, bem como um novo nome para o banco de dados depois que ele for restaurado. O nome do banco de dados de backup é referenciado pelo membro pwszDatabaseName e o novo nome do banco de dados é referenciado pelo membro pwszNewDatabaseName . Se a intenção for manter o mesmo nome para o banco de dados de backup e o banco de dados restaurado, defina os membros pwszNewDatabaseName e pwszDatabaseName com o mesmo nome. O nome do banco de dados de backup é construído a partir do caminho retornado pela chamada do cliente de backup para a função CertSrvRestoreGetDatabaseLocations . CertSrvRestoreGetDatabaseLocations teria sido chamado durante um backup completo e o cliente de backup teria salvo o caminho retornado.

Se você estiver executando uma restauração incremental, passe NULL para esse parâmetro.

[in] crstmap

O número de elementos na matriz rgrstmap . Passe zero para esse parâmetro se você estiver executando uma restauração incremental.

[in] pwszBackupLogPath

Um ponteiro para uma cadeia de caracteres Unicode terminada em nulo que contém o caminho para o diretório de log de backup. Passe NULL para esse parâmetro se ele não for necessário.

[in] genLow

O número de log mais baixo que foi restaurado nesta sessão de restauração. Os arquivos de log estão na forma de edbXXXXX.log, em que XXXXX é um valor de cinco dígitos hexadecimais. Por exemplo, edb00001.log é o primeiro arquivo de log criado pelo banco de dados interno. Para fins dessa função, um valor de um em genLow corresponde ao arquivo de log edb00001.log.

[in] genHigh

O número de log mais alto que foi restaurado nesta sessão de restauração.

Retornar valor

O valor retornado é um HRESULT. Um valor de S_OK indica êxito.

Comentários

Use essa função para registrar uma operação de restauração. Todas as operações de restauração subsequentes serão interligadas. O destino de restauração será impedido de iniciar (ou executar com êxito outra chamada para CertSrvRestoreRegister) até que CertSrvRestoreRegisterComplete seja chamado.

Ao restaurar mais de um backup incremental, a ordem na qual os backups incrementais são registrados não importa. No entanto, o backup completo do banco de dados deve ser registrado antes de registrar os backups incrementais.

Essa função requer que a conta de chamada seja um administrador local. Se isso não for prático, use a função CertSrvRestoreRegisterThroughFile . A função CertSrvRestoreRegisterThroughFile requer apenas que a conta de chamada tenha o privilégio de restauração.

Exemplos

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

Requisitos

Requisito Valor
Cliente mínimo com suporte Nenhum compatível
Servidor mínimo com suporte Windows Server 2003 [somente aplicativos da área de trabalho]
Plataforma de Destino Windows
Cabeçalho certbcli.h (inclua Certsrv.h)
Biblioteca Certadm.lib
DLL Certadm.dll

Confira também

CertSrvRestoreRegisterComplete

CertSrvRestoreRegisterThroughFile

Usando as funções de backup e restauração dos Serviços de Certificados