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 で定義されており、この関数の次のいずれかの値を指定できます。
この割り当てられたメモリは、 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 |