Win32 API 日本語リファレンス
ホームStorage.DataDeduplication › IDedupDataPort

IDedupDataPort

COM
IID7963d734-40a9-4ea3-bbf6-5a89d26f7ae8継承元IUnknown自前メソッド開始 vtbl3

メソッド 12

vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。

vtbl 3 HRESULT GetStatus(DedupDataPortVolumeStatus* pStatus, DWORD* pDataHeadroomMb)
pStatusDedupDataPortVolumeStatus*out重複除去ボリュームの現在の状態(DedupDataPortVolumeStatus)を受け取るポインタである。
pDataHeadroomMbDWORD*out投入可能なデータの空き容量をメガバイト単位で受け取るポインタである。
vtbl 4 HRESULT LookupChunks(DWORD Count, DedupHash* pHashes, GUID* pRequestId)
CountDWORDinpHashes 配列に含まれるハッシュの数を指定する。
pHashesDedupHash*in存在確認するチャンクのハッシュ値(DedupHash)配列へのポインタである。
pRequestIdGUID*outこの非同期要求を識別する要求 ID(GUID)を受け取るポインタである。
vtbl 5 HRESULT InsertChunks(DWORD ChunkCount, DedupChunk* pChunkMetadata, DWORD DataByteCount, BYTE* pChunkData, GUID* pRequestId)
ChunkCountDWORDinpChunkMetadata 配列に含まれるチャンクの数を指定する。
pChunkMetadataDedupChunk*in挿入する各チャンクのメタデータ(DedupChunk)配列へのポインタである。
DataByteCountDWORDinpChunkData が指すチャンクデータの総バイト数を指定する。
pChunkDataBYTE*in挿入するチャンクの実データを格納したバッファへのポインタである。
pRequestIdGUID*outこの非同期要求を識別する要求 ID(GUID)を受け取るポインタである。
vtbl 6 HRESULT InsertChunksWithStream(DWORD ChunkCount, DedupChunk* pChunkMetadata, DWORD DataByteCount, IStream* pChunkDataStream, GUID* pRequestId)
ChunkCountDWORDinpChunkMetadata 配列に含まれるチャンクの数を指定する。
pChunkMetadataDedupChunk*in挿入する各チャンクのメタデータ(DedupChunk)配列へのポインタである。
DataByteCountDWORDinストリームから読み取るチャンクデータの総バイト数を指定する。
pChunkDataStreamIStream*in挿入するチャンクの実データを供給する IStream へのポインタである。
pRequestIdGUID*outこの非同期要求を識別する要求 ID(GUID)を受け取るポインタである。
vtbl 7 HRESULT CommitStreams(DWORD StreamCount, DedupStream* pStreams, DWORD EntryCount, DedupStreamEntry* pEntries, GUID* pRequestId)
StreamCountDWORDinpStreams 配列に含まれるストリームの数を指定する。
pStreamsDedupStream*inコミットするストリームの情報(DedupStream)配列へのポインタである。
EntryCountDWORDinpEntries 配列に含まれるストリームエントリの数を指定する。
pEntriesDedupStreamEntry*in各ストリームを構成するチャンク参照(DedupStreamEntry)配列へのポインタである。
pRequestIdGUID*outこの非同期要求を識別する要求 ID(GUID)を受け取るポインタである。
vtbl 8 HRESULT CommitStreamsWithStream(DWORD StreamCount, DedupStream* pStreams, DWORD EntryCount, IStream* pEntriesStream, GUID* pRequestId)
StreamCountDWORDinpStreams 配列に含まれるストリームの数を指定する。
pStreamsDedupStream*inコミットするストリームの情報(DedupStream)配列へのポインタである。
EntryCountDWORDinストリームから読み取るストリームエントリの数を指定する。
pEntriesStreamIStream*inストリームエントリ(DedupStreamEntry)を供給する IStream へのポインタである。
pRequestIdGUID*outこの非同期要求を識別する要求 ID(GUID)を受け取るポインタである。
vtbl 9 HRESULT GetStreams(DWORD StreamCount, LPWSTR* pStreamPaths, GUID* pRequestId)
StreamCountDWORDinpStreamPaths 配列に含まれるストリームパスの数を指定する。
pStreamPathsLPWSTR*in取得対象ストリームのパス文字列の配列へのポインタである。
pRequestIdGUID*outこの非同期要求を識別する要求 ID(GUID)を受け取るポインタである。
vtbl 10 HRESULT GetStreamsResults(GUID RequestId, DWORD MaxWaitMs, DWORD StreamEntryIndex, DWORD* pStreamCount, DedupStream** ppStreams, DWORD* pEntryCount, DedupStreamEntry** ppEntries, DedupDataPortRequestStatus* pStatus, HRESULT** ppItemResults)
RequestIdGUIDin結果を取得する対象の要求 ID(GUID)を指定する。
MaxWaitMsDWORDin結果が得られるまで待機する最大時間をミリ秒単位で指定する。
StreamEntryIndexDWORDin取得を開始するストリームエントリのインデックスを指定する。
pStreamCountDWORD*out返されたストリームの数を受け取るポインタである。
ppStreamsDedupStream**out取得したストリーム情報(DedupStream)配列を受け取るポインタである。
pEntryCountDWORD*out返されたストリームエントリの数を受け取るポインタである。
ppEntriesDedupStreamEntry**out取得したストリームエントリ(DedupStreamEntry)配列を受け取るポインタである。
pStatusDedupDataPortRequestStatus*out要求全体の状態(DedupDataPortRequestStatus)を受け取るポインタである。
ppItemResultsHRESULT**out各項目の処理結果(HRESULT)配列を受け取るポインタである。
vtbl 11 HRESULT GetChunks(DWORD Count, DedupHash* pHashes, GUID* pRequestId)
CountDWORDinpHashes 配列に含まれるハッシュの数を指定する。
pHashesDedupHash*in取得するチャンクのハッシュ値(DedupHash)配列へのポインタである。
pRequestIdGUID*outこの非同期要求を識別する要求 ID(GUID)を受け取るポインタである。
vtbl 12 HRESULT GetChunksResults(GUID RequestId, DWORD MaxWaitMs, DWORD ChunkIndex, DWORD* pChunkCount, DedupChunk** ppChunkMetadata, DWORD* pDataByteCount, BYTE** ppChunkData, DedupDataPortRequestStatus* pStatus, HRESULT** ppItemResults)
RequestIdGUIDin結果を取得する対象の要求 ID(GUID)を指定する。
MaxWaitMsDWORDin結果が得られるまで待機する最大時間をミリ秒単位で指定する。
ChunkIndexDWORDin取得を開始するチャンクのインデックスを指定する。
pChunkCountDWORD*out返されたチャンクの数を受け取るポインタである。
ppChunkMetadataDedupChunk**out取得したチャンクのメタデータ(DedupChunk)配列を受け取るポインタである。
pDataByteCountDWORD*out返されたチャンクデータの総バイト数を受け取るポインタである。
ppChunkDataBYTE**out取得したチャンクの実データバッファを受け取るポインタである。
pStatusDedupDataPortRequestStatus*out要求全体の状態(DedupDataPortRequestStatus)を受け取るポインタである。
ppItemResultsHRESULT**out各項目の処理結果(HRESULT)配列を受け取るポインタである。
vtbl 13 HRESULT GetRequestStatus(GUID RequestId, DedupDataPortRequestStatus* pStatus)
RequestIdGUIDin状態を照会する対象の要求 ID(GUID)を指定する。
pStatusDedupDataPortRequestStatus*out要求の現在の状態(DedupDataPortRequestStatus)を受け取るポインタである。
vtbl 14 HRESULT GetRequestResults(GUID RequestId, DWORD MaxWaitMs, HRESULT* pBatchResult, DWORD* pBatchCount, DedupDataPortRequestStatus* pStatus, HRESULT** ppItemResults)
RequestIdGUIDin結果を取得する対象の要求 ID(GUID)を指定する。
MaxWaitMsDWORDin結果が得られるまで待機する最大時間をミリ秒単位で指定する。
pBatchResultHRESULT*outバッチ全体の処理結果(HRESULT)を受け取るポインタである。
pBatchCountDWORD*outバッチに含まれる項目数を受け取るポインタである。
pStatusDedupDataPortRequestStatus*out要求の状態(DedupDataPortRequestStatus)を受け取るポインタである。
ppItemResultsHRESULT**out各項目の処理結果(HRESULT)配列を受け取るポインタである。

HSP用 COM定義

#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"

出力引数:
#define global IID_IDedupDataPort "{7963D734-40A9-4EA3-BBF6-5A89D26F7AE8}"
#usecom global IDedupDataPort IID_IDedupDataPort "{8F107207-1829-48B2-A64B-E61F8E0D9ACB}"
#comfunc global IDedupDataPort_GetStatus                3 var,var
#comfunc global IDedupDataPort_LookupChunks             4 int,var,var
#comfunc global IDedupDataPort_InsertChunks             5 int,var,int,var,var
#comfunc global IDedupDataPort_InsertChunksWithStream   6 int,var,int,sptr,var
#comfunc global IDedupDataPort_CommitStreams            7 int,var,int,var,var
#comfunc global IDedupDataPort_CommitStreamsWithStream  8 int,var,int,sptr,var
#comfunc global IDedupDataPort_GetStreams               9 int,var,var
#comfunc global IDedupDataPort_GetStreamsResults        10 int,int,int,var,var,var,var,var,var
#comfunc global IDedupDataPort_GetChunks                11 int,var,var
#comfunc global IDedupDataPort_GetChunksResults         12 int,int,int,var,var,var,var,var,var
#comfunc global IDedupDataPort_GetRequestStatus         13 int,var
#comfunc global IDedupDataPort_GetRequestResults        14 int,int,var,var,var,var
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※#usecom 末尾は CoCreateInstance 用のクラスID(コクラスCLSID, SDKから自動取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。
; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。