次の方法で共有


CertSrvRestoreGetDatabaseLocationsW 関数 (certbcli.h)

CertSrvRestoreGetDatabaseLocations 関数は、バックアップと復元の両方のシナリオで使用され、バックアップまたは復元されるすべてのファイルの Certificate Services データベースの場所名の一覧を取得します。

構文

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

パラメーター

[in] hbc

Certificate Services のバックアップまたは復元コンテキストへのハンドル。

[out] ppwszzDatabaseLocationList

null で終わるデータベースの場所名、ログ ディレクトリ名、システム (またはチェックポイント) ディレクトリ名の一覧を受け取る WCHAR ポインターへのポインター。 すべての名前の後に null 文字があり、リストの末尾に余分な null 文字があります。 場所名は UNC 形式の "## \\Server\SharePoint\... になります。Path...\FileName.ext" ディレクトリ名の形式は同じですが、末尾に "\FileName.ext" はありません。 テキスト "##" は、Certificate Services Backup ファイルの種類 (CSBFT_*) を示し、各 UNC パスにプレフィックスが付いた 1 つの null 以外の Unicode 文字として格納されます。 型タグは Certbcli.h で定義されており、この関数の次のいずれかの値を指定できます。

意味
CSBFT_CERTSERVER_DATABASE
パスを含む Certificate Services データベース ファイル名。
CSBFT_CHECKPOINT_DIR
Certificate Services データベース システム (またはチェックポイント) ディレクトリ。
CSBFT_LOG_DIR
Certificate Services データベース のログ ディレクトリ。
 

この割り当てられたメモリは、 CertSrvBackupFree を呼び出して解放する必要があります。

この関数を呼び出す前に *ppwszzDatabaseLocationListを NULL に設定することは省略可能です。

[out] pcbSize

ppwszzDatabaseLocationList のバイト数を指定する DWORD 値へのポインター。

戻り値

戻り値は HRESULT です。 値 S_OK は成功を示します。

注釈

このメソッドを成功させるには、証明書サービスが実行されている必要があります。

Certadm.dll のこの関数の名前は CertSrvRestoreGetDatabaseLocationsW ですGetProcAddress を呼び出すときは、この形式の名前を使用する必要があります。 また、この関数は Certbcli.h ヘッダー ファイルで FNCERTSRVRESTOREGETDATABASELOCATIONSW 型として定義されます。

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

要件

要件
サポートされている最小のクライアント サポートなし
サポートされている最小のサーバー Windows Server 2003 (デスクトップ アプリのみ)
対象プラットフォーム Windows
ヘッダー certbcli.h (Certsrv.h を含む)
Library Certadm.lib
[DLL] Certadm.dll

こちらもご覧ください

CertSrvBackupFree

証明書サービスのバックアップと復元の機能の使用