Função CertSrvRestoreGetDatabaseLocationsW (certbcli.h)

A função CertSrvRestoreGetDatabaseLocations é usada em cenários de backup e restauração e recupera a lista de nomes de localização do banco de dados dos Serviços de Certificados para todos os arquivos que estão sendo copiados ou restaurados.

Sintaxe

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

Parâmetros

[in] hbc

Um identificador para um contexto de backup ou restauração dos Serviços de Certificados.

[out] ppwszzDatabaseLocationList

Um ponteiro para um ponteiro WCHAR para receber a lista de nomes de local de banco de dados encerrados em nulo, nome do diretório de log e nome do diretório do sistema (ou ponto de verificação). Há um caractere nulo após cada nome e um caractere nulo extra no final da lista. O nome do local estará no formato UNC "## \\Server\SharePoint\... Path...\FileName.ext". Os nomes de diretório terão o mesmo formato, mas sem o "\FileName.ext" à direita. O texto "##" indica um tipo de arquivo de Backup dos Serviços de Certificados (CSBFT_*) e é armazenado como um único caractere Unicode não nulo prefixado em cada caminho UNC. A marca de tipo é definida em Certbcli.h e pode ser um dos valores a seguir para essa função.

Valor Significado
CSBFT_CERTSERVER_DATABASE
Nome do arquivo de banco de dados dos Serviços de Certificados, incluindo caminho.
CSBFT_CHECKPOINT_DIR
Diretório do sistema de banco de dados dos Serviços de Certificados (ou ponto de verificação).
CSBFT_LOG_DIR
Diretório de log do banco de dados dos Serviços de Certificados.
 

Você deve liberar essa memória alocada quando terminar chamando CertSrvBackupFree.

Definir *ppwszzDatabaseLocationList como NULL antes de chamar essa função é opcional.

[out] pcbSize

Um ponteiro para o valor DWORD que especifica o número de bytes em ppwszzDatabaseLocationList.

Retornar valor

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

Comentários

Os Serviços de Certificados devem estar em execução para que esse método tenha êxito.

O nome dessa função no Certadm.dll é CertSrvRestoreGetDatabaseLocationsW. Você deve usar essa forma do nome ao chamar GetProcAddress. Além disso, essa função é definida como o tipo FNCERTSRVRESTOREGETDATABASELOCATIONSW no arquivo de cabeçalho Certbcli.h.

Exemplos

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

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

CertSrvBackupFree

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