Función CertSrvRestoreGetDatabaseLocationsW (certbcli.h)

La función CertSrvRestoreGetDatabaseLocations se usa en escenarios de copia de seguridad y restauración y recupera la lista de nombres de ubicación de la base de datos de Servicios de certificados para todos los archivos de los que se realiza una copia de seguridad o restauración.

Sintaxis

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

Parámetros

[in] hbc

Identificador de un contexto de copia de seguridad o restauración de Servicios de certificados.

[out] ppwszzDatabaseLocationList

Puntero a un puntero WCHAR para recibir la lista de nombres de ubicación de base de datos terminadas en NULL, nombre del directorio de registro y nombre del directorio del sistema (o punto de control). Hay un carácter nulo después de cada nombre y un carácter nulo adicional al final de la lista. El nombre de la ubicación estará en el formulario UNC "## \\Server\SharePoint\... Path...\FileName.ext". Los nombres de directorio tendrán el mismo formato, pero sin el final "\FileName.ext". El texto "##" denota un tipo de archivo de copia de seguridad de Servicios de certificados (CSBFT_*) y se almacena como un único carácter Unicode no nulo precedido en cada ruta de acceso UNC. La etiqueta de tipo se define en Certbcli.h y puede ser uno de los siguientes valores para esta función.

Valor Significado
CSBFT_CERTSERVER_DATABASE
Nombre del archivo de base de datos de Servicios de certificados, incluida la ruta de acceso.
CSBFT_CHECKPOINT_DIR
Directorio del sistema de base de datos de Servicios de certificados (o punto de control).
CSBFT_LOG_DIR
Directorio de registro de base de datos de Servicios de certificados.
 

Debe liberar esta memoria asignada cuando haya terminado llamando a CertSrvBackupFree.

Establecer *ppwszzDatabaseLocationList en NULL antes de llamar a esta función es opcional.

[out] pcbSize

Puntero al valor DWORD que especifica el número de bytes en ppwszzDatabaseLocationList.

Valor devuelto

El valor devuelto es hrESULT. Un valor de S_OK indica que se ha realizado correctamente.

Comentarios

Los servicios de certificados deben ejecutarse para que este método se realice correctamente.

El nombre de esta función en Certadm.dll es CertSrvRestoreGetDatabaseLocationsW. Debe usar este formato del nombre al llamar a GetProcAddress. Además, esta función se define como tipo FNCERTSRVRESTOREGETDATABASELOCATIONSW en el archivo de encabezado Certbcli.h.

Ejemplos

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 Value
Cliente mínimo compatible No se admite ninguno
Servidor mínimo compatible Windows Server 2003 [solo aplicaciones de escritorio]
Plataforma de destino Windows
Encabezado certbcli.h (incluya Certsrv.h)
Library Certadm.lib
Archivo DLL Certadm.dll

Consulte también

CertSrvBackupFree

Uso de las funciones de copia de seguridad y restauración de Servicios de certificados