CertSrvBackupGetDatabaseNamesW 函数 (certbcli.h)

CertSrvBackupGetDatabaseNames 函数检索需要为给定备份上下文备份的证书服务数据库文件名的列表。

语法

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

参数

[in] hbc

证书服务备份上下文的句柄。

[out] ppwszzAttachmentInformation

指向 WCHAR 指针的指针,该指针将接收以 null 结尾的数据库文件名的列表。 每个文件名后都有一个空字符,列表末尾有一个额外的 null 字符。 文件名将采用 UNC 格式“## \\Server\SharePoint\...Path...\FileName.ext”。 目录名称的格式相同,但没有尾随“\FileName.ext”。 文本“##”表示证书服务备份文件类型 (CSBFT_*) ,并存储为每个 UNC 路径添加前缀的单个非 null Unicode 字符。 类型标记在 Certbcli.h 中定义,可以是此函数的以下值。

含义
CSBFT_CERTSERVER_DATABASE
证书服务数据库文件名,包括路径。
 

完成后,必须通过调用 CertSrvBackupFree 释放此分配的内存。 在调用此函数之前,请将 *ppwszzAttachmentInformation 设置为 NULL 是可选的。

[out] pcbSize

指向 DWORD 值的指针,该值指定 ppwszzAttachmentInformation 中的字节数。

返回值

返回值为 HRESULT。 值为 S_OK 表示成功。

注解

此函数在 Certadm.dll 中的名称为 CertSrvBackupGetDatabaseNamesW。 调用 GetProcAddress 时,必须使用此形式的名称。 此外,此函数在 Certbcli.h 头文件中定义为类型 FNCERTSRVBACKUPGETDATABASENAMESW

示例

FNCERTSRVBACKUPGETDATABASENAMESW* pfnGetDBNames;
char * szGetDBNamesFunc = "CertSrvBackupGetDatabaseNamesW";
WCHAR *    pwszzDBFiles;
DWORD      nListBytes=0;
HRESULT    hr=0;

// Get the address for the desired function.    
// hInst was set by calling LoadLibrary for Certadm.dll.
pfnGetDBNames = (FNCERTSRVBACKUPGETDATABASENAMESW*)
    GetProcAddress(hInst, szGetDBNamesFunc);

if ( NULL == pfnGetDBNames )
{
    printf("Failed GetProcAddress - %s, error=%d\n",
           szGetDBNamesFunc,
           GetLastError() );
    exit(1); // Or other appropriate error action.
}

// Determine the names of the database files.
// hCSBC was set by an earlier call to CertSrvBackupPrepare
hr = pfnGetDBNames(hCSBC, &pwszzDBFiles, &nListBytes);
if (FAILED(hr))
{
    printf("Failed pfnGetDBNames call [%x]\n", hr);
    exit(1); // Or other appropriate error action.
}
else
{
    printf("%d bytes for DB file names\n", nListBytes);
    WCHAR * pwszFile = pwszzDBFiles;
    // 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(pwszzDBFiles);
}

要求

要求
最低受支持的客户端 无受支持的版本
最低受支持的服务器 Windows Server 2003 [仅限桌面应用]
目标平台 Windows
标头 certbcli.h (包括 Certsrv.h)
Library Certadm.lib
DLL Certadm.dll

另请参阅

CertSrvBackupFree

CertSrvBackupOpenFile

使用证书服务备份和还原功能