ホーム › Storage.DataDeduplication › IDedupReadFileCallback
IDedupReadFileCallback
COMメソッド 3
vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。
vtbl 3 HRESULT ReadBackupFile(LPWSTR FileFullPath, LONGLONG FileOffset, DWORD SizeToRead, BYTE* FileBuffer, DWORD* ReturnedSize, DWORD Flags)
| FileFullPath | LPWSTR | in | 読み取り対象ファイルの完全パスを指定する文字列へのポインタである。 |
| FileOffset | LONGLONG | in | 読み取りを開始するファイル内のオフセット(バイト位置)を指定する。 |
| SizeToRead | DWORD | in | 読み取るバイト数を指定する。 |
| FileBuffer | BYTE* | out | 読み取ったデータを受け取るバッファへのポインタである。 |
| ReturnedSize | DWORD* | out | 実際に読み取られたバイト数を受け取るポインタである。 |
| Flags | DWORD | in | 読み取り動作を制御するフラグを指定する。 |
vtbl 4 HRESULT OrderContainersRestore(DWORD NumberOfContainers, LPWSTR* ContainerPaths, DWORD* ReadPlanEntries, DEDUP_CONTAINER_EXTENT** ReadPlan)
| NumberOfContainers | DWORD | in | ContainerPaths 配列に含まれるコンテナー数を指定する。 |
| ContainerPaths | LPWSTR* | in | 復元対象となるコンテナーファイルのパス文字列の配列へのポインタである。 |
| ReadPlanEntries | DWORD* | out | 生成された読み取りプランのエントリ数を受け取るポインタである。 |
| ReadPlan | DEDUP_CONTAINER_EXTENT** | out | 効率的な復元順を表す読み取りプラン(DEDUP_CONTAINER_EXTENT 配列)を受け取るポインタである。 |
vtbl 5 HRESULT PreviewContainerRead(LPWSTR FileFullPath, DWORD NumberOfReads, DDP_FILE_EXTENT* ReadOffsets)
| FileFullPath | LPWSTR | in | プレビュー読み取り対象ファイルの完全パスを指定する文字列へのポインタである。 |
| NumberOfReads | DWORD | in | ReadOffsets 配列に含まれる読み取り範囲の数を指定する。 |
| ReadOffsets | DDP_FILE_EXTENT* | in | 事前読み取りするファイル範囲(DDP_FILE_EXTENT)の配列へのポインタである。 |
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
出力引数:
#define global IID_IDedupReadFileCallback "{7BACC67A-2F1D-42D0-897E-6FF62DD533BB}" #usecom global IDedupReadFileCallback IID_IDedupReadFileCallback "{}" #comfunc global IDedupReadFileCallback_ReadBackupFile 3 wstr,int64,int,var,var,int #comfunc global IDedupReadFileCallback_OrderContainersRestore 4 int,var,var,var #comfunc global IDedupReadFileCallback_PreviewContainerRead 5 wstr,int,var ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。#define global IID_IDedupReadFileCallback "{7BACC67A-2F1D-42D0-897E-6FF62DD533BB}" #usecom global IDedupReadFileCallback IID_IDedupReadFileCallback "{}" #comfunc global IDedupReadFileCallback_ReadBackupFile 3 wstr,int64,int,sptr,sptr,int #comfunc global IDedupReadFileCallback_OrderContainersRestore 4 int,sptr,sptr,sptr #comfunc global IDedupReadFileCallback_PreviewContainerRead 5 wstr,int,sptr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。