次の方法で共有


DsRestoreGetDatabaseLocations 関数

[この関数は、[要件] セクションで指定されたオペレーティング システムで使用できます。 それより後のバージョンでは、変更されるか、使用できなくなる場合があります。 Windows Vista 以降では、代わりにボリューム シャドウ コピー サービス (VSS) を使用します。

DsRestoreGetDatabaseLocations 関数は、復元操作中にバックアップ ファイルをコピーする場所を取得します。

構文

HRESULT DsRestoreGetDatabaseLocations(
  _In_  HBC     hbc,
  _Out_ LPWSTR  *pszDatabaseLocationList,
  _Out_ LPDWORD pcbSize
);

パラメーター

hbc [in]

DsRestorePrepare 関数で取得した 復元コンテキスト ハンドルを 格納します。

pszDatabaseLocationList [out]

UNC パスとしてデータベースの場所の一覧を受け取る文字列ポインターへのポインター。 このリストは、1 つの null で終わる文字列の null で終わる 2 つのリストを受け取ります。

このバッファーは DsRestoreGetDatabaseLocations 関数によって割り当てられ、DsBackupFree 関数を呼び出して不要になったときに解放する必要があります。

各ファイル名の最初の文字には、名前の種類を 識別する BFT 定数 のいずれかが含まれています。 DsRestoreGetDatabaseLocations 関数は 次の名前の型のみを提供します。

BFT_NTDS_DATABAStandard Edition

NTDS データベース ファイルをこのファイルにコピーする必要があります。 これは、バックアップの実行時にBFT_NTDS_DATABAStandard Editionとして識別されたファイルです。

BFT_LOG_DIR

すべてのログ ファイルがこのディレクトリにコピーされます。 ログ ファイルは、バックアップが実行されたときにBFT_LOGとして識別されました。

BFT_CHECKPOINT_DIR

すべてのパッチ ファイルがこのディレクトリにコピーされます。 パッチ ファイルは、バックアップが実行されたときにBFT_PATCH_FILEとして識別されました。

pcbSize [out]

pszDatabaseLocationList バッファーのサイズ (バイト単位) を受け取る DWORD 値へのポインター。

戻り値

関数が 成功した場合はS_OK を返し、それ以外の場合は Win32 または RPC エラー コードを返します。 考えられるエラー コードの一覧を次に示します。

ERROR_ACCESS_DENIED

呼び出し元には、この関数を呼び出す適切なアクセス特権がありません。 DsSetAuthIdentity 関数を使用して、バックアップおよび復元関数に使用する資格情報を設定できます。

ERROR_INVALID_PARAMETER

hbcpszDatabaseLocationList、または pcbSize が無効です。

ERROR_NOT_ENOUGH_MEMORY

メモリ割り当てエラーが発生しました。

解説

DsRestoreGetDatabaseLocations 関数を使用すると、バックアップされたデータにアクセスせずに復元ディレクトリを取得できます。 これを行うには、pvExpiryToken パラメーターに対して NULL を指定して DsRestorePrepare を呼び出します。 これにより、DsRestorePrepare は、DsRestoreGetDatabaseLocations 関数でのみ使用できる制限付きコンテキスト ハンドルを返します。

要件

要件 Value
サポートされている最小のクライアント
Windows Vista
サポートされている最小のサーバー
Windows Server 2008
ヘッダー
Ntdsbcli.h
ライブラリ
Ntdsbcli.lib
[DLL]
Ntdsbcli.dll
Unicode 名と ANSI 名
DsRestoreGetDatabaseLocationsW (Unicode) と DsRestoreGetDatabaseLocationsA (ANSI)

関連項目

DsRestorePrepare

DsBackupFree

ディレクトリ バックアップ関数

Active Directory の復元