CertSrvRestoreGetDatabaseLocationsW-Funktion (certbcli.h)

Die CertSrvRestoreGetDatabaseLocations-Funktion wird sowohl in Sicherungs- als auch in Wiederherstellungsszenarien verwendet und ruft die Liste der Namen der Zertifikatdienste-Datenbank für alle Dateien ab, die gesichert oder wiederhergestellt werden.

Syntax

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

Parameter

[in] hbc

Ein Handle für einen Sicherungs- oder Wiederherstellungskontext für Zertifikatdienste.

[out] ppwszzDatabaseLocationList

Ein Zeiger auf einen WCHAR-Zeiger , um die Liste der Mit NULL beendeten Datenbankspeicherortsnamen, den Protokollverzeichnisnamen und den Namen des Systemverzeichnisses (oder prüfpunkts) zu empfangen. Hinter jedem Namen befindet sich ein NULL-Zeichen und ein zusätzliches NULL-Zeichen am Ende der Liste. Der Name des Speicherorts befindet sich im UNC-Format "## \\Server\SharePoint\... Path...\FileName.ext". Die Verzeichnisnamen haben dieselbe Form, aber ohne den nachfolgenden "\FileName.ext". Der Text "##" bezeichnet einen Sicherungsdateityp für Zertifikatdienste (CSBFT_*) und wird als einzelnes Unicode-Zeichen ungleich NULL gespeichert, das jedem UNC-Pfad vorangestellt ist. Das Typtag ist in Certbcli.h definiert und kann einer der folgenden Werte für diese Funktion sein.

Wert Bedeutung
CSBFT_CERTSERVER_DATABASE
Name der Zertifikatdienste-Datenbankdatei einschließlich Pfad.
CSBFT_CHECKPOINT_DIR
Zertifikatdienste-Datenbanksystemverzeichnis (oder Prüfpunktverzeichnis).
CSBFT_LOG_DIR
Protokollverzeichnis der Zertifikatdienste-Datenbank.
 

Sie müssen diesen zugeordneten Arbeitsspeicher freigeben, wenn Sie CertSrvBackupFree aufrufen.

Das Festlegen von *ppwszzDatabaseLocationList auf NULL vor dem Aufrufen dieser Funktion ist optional.

[out] pcbSize

Ein Zeiger auf den DWORD-Wert , der die Anzahl der Bytes in ppwszzDatabaseLocationList angibt.

Rückgabewert

Der Rückgabewert ist ein HRESULT. Der Wert S_OK gibt den Erfolg an.

Hinweise

Zertifikatdienste müssen ausgeführt werden, damit diese Methode erfolgreich ist.

Der Name dieser Funktion in Certadm.dll lautet CertSrvRestoreGetDatabaseLocationsW. Sie müssen diese Form des Namens verwenden, wenn Sie GetProcAddress aufrufen. Außerdem ist diese Funktion als Typ FNCERTSRVRESTOREGETDATABASELOCATIONSW in der Headerdatei Certbcli.h definiert.

Beispiele

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

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Nicht unterstützt
Unterstützte Mindestversion (Server) Windows Server 2003 [nur Desktop-Apps]
Zielplattform Windows
Kopfzeile certbcli.h (certsrv.h einschließen)
Bibliothek Certadm.lib
DLL Certadm.dll

Weitere Informationen

CertSrvBackupFree

Verwenden der Sicherungs- und Wiederherstellungsfunktionen für Zertifikatdienste