IDedupBackupSupport
COM公式ドキュメント
データ重複除去の再解析ポイント、メタデータ、コンテナーファイルのコピーを含むバックアップストアからファイルを復元するためのメソッドを提供します。
解説(Remarks)
バックアップアプリケーションは IDedupBackupSupport インターフェイスを使用して、完全に最適化されたバージョンのファイル(再解析ポイント)とデータ重複除去ストアを含むバックアップストアから、選択したファイルの復元処理を実行します。
このインターフェイスは、バックアップストアに元の最適化されていないファイルのコピーが含まれている場合には役に立ちません。
IDedupBackupSupport インターフェイスを使用するアプリケーションは、 IDedupReadFileCallback インターフェイスも実装する必要があります。
メソッド 1
vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。
完全に最適化されたバージョンのファイル(再解析ポイント)とデータ重複除去ストアを含むバックアップストアから、一連のファイルを再構築します。
| NumberOfFiles | DWORD | in | 復元するファイルの数。10,000 を超える場合、このメソッドは E_INVALIDARG (0x80070057) で失敗します。 |
| FileFullPaths | LPWSTR* | in | 各ファイルについて、このパラメーターには、アプリケーションが以前に復元した再解析ポイントへの、ボリュームのルートディレクトリからのフルパスが格納されます。 |
| Store | IDedupReadFileCallback* | in | バックアップストアの IDedupReadFileCallback インターフェイスポインター。このパラメーターは必須であり、NULL にすることはできません。 |
| Flags | DWORD | in | このパラメーターは、入力時に DEDUP_RECONSTRUCT_UNOPTIMIZED である必要があります。詳細については、 DEDUP_BACKUP_SUPPORT_PARAM_TYPE 列挙型を参照してください。 |
| FileResults | HRESULT* | out | 各ファイルについて、このパラメーターにはそのファイルの復元操作の結果が格納されます。このパラメーターは省略可能であり、アプリケーションが個々のファイルごとの結果を知る必要がない場合は NULL にできます。 S_OK (0x00000000L)ファイルは正常に復元されました。 S_FALSE (0x00000001L)指定されたファイルは重複除去されたファイルではありません。 DDP_E_FILE_CORRUPT (0x80565355L)データ重複除去でファイルの破損エラーが発生しました。 DDP_E_FILE_SYSTEM_CORRUPT (0x8056530EL)データ重複除去でファイルシステムの破損エラーが発生しました。 DDP_E_INVALID_DATA (0x8056531DL)データが有効ではありません。 DDP_E_JOB_COMPLETED_PARTIAL_SUCCESS (0x80565356L)操作はいくつかのエラーを伴って完了しました。詳細についてはイベントログを確認してください。 Windows Server 2012: この値は Windows Server 2012 R2 より前ではサポートされません。 DDP_E_NOT_FOUND (0x80565301L)要求されたオブジェクトが見つかりませんでした。 DDP_E_PATH_NOT_FOUND (0x80565304L)指定されたコンテナーパスがバックアップストア内に見つかりませんでした。 DDP_E_UNEXPECTED (0x8056530CL)データ重複除去で予期しないエラーが発生しました。詳細については、データ重複除去の操作イベントログを確認してください。 DDP_E_VOLUME_DEDUP_DISABLED (0x80565323L)指定されたボリュームでは重複除去が有効になっていません。 DDP_E_VOLUME_UNSUPPORTED (0x8056530bL)指定されたボリュームの種類はサポートされていません。重複除去は、書き込み可能な固定 NTFS データボリュームでサポートされます。 Windows Server 2012: この値は Windows Server 2012 R2 より前ではサポートされません。 |
戻り値
このメソッドは、S_OK などの標準的な HRESULT 値を返すことがあります。また、 HRESULT_FROM_WIN32 マクロを使用して変換された システムエラーコード を返すこともあります。 HRESULT 値が成功か失敗かは、Winerror.h で定義されている SUCCEEDED マクロおよび FAILED マクロを使用して判定できます。返される可能性のある値は次のとおりです。
どのファイルも正常に復元されなかった場合、結果は最初に発生したファイルエラーになります。これは上記の 「DDP_E_XXX」エラーコードのいずれかです。
解説(Remarks)
復元エンジン(データ重複除去によって実装されています)は、 IDedupReadFileCallback::ReadBackupFile メソッドを呼び出すことによってのみバックアップメディアからデータを読み取れるため、Store パラメーターは必須です。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
#define global IID_IDedupBackupSupport "{C719D963-2B2D-415E-ACF7-7EB7CA596FF4}" #usecom global IDedupBackupSupport IID_IDedupBackupSupport "{73D6B2AD-2984-4715-B2E3-924C149744DD}" #comfunc global IDedupBackupSupport_RestoreFiles 3 int,var,sptr,int,var ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※#usecom 末尾は CoCreateInstance 用のクラスID(コクラスCLSID, SDKから自動取得)。 ; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。#define global IID_IDedupBackupSupport "{C719D963-2B2D-415E-ACF7-7EB7CA596FF4}" #usecom global IDedupBackupSupport IID_IDedupBackupSupport "{73D6B2AD-2984-4715-B2E3-924C149744DD}" #comfunc global IDedupBackupSupport_RestoreFiles 3 int,sptr,sptr,int,sptr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※#usecom 末尾は CoCreateInstance 用のクラスID(コクラスCLSID, SDKから自動取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。