ホーム › Storage.DataDeduplication › IDedupDataPort
IDedupDataPort
COMメソッド 12
vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。
vtbl 3 HRESULT GetStatus(DedupDataPortVolumeStatus* pStatus, DWORD* pDataHeadroomMb)
| pStatus | DedupDataPortVolumeStatus* | out | 重複除去ボリュームの現在の状態(DedupDataPortVolumeStatus)を受け取るポインタである。 |
| pDataHeadroomMb | DWORD* | out | 投入可能なデータの空き容量をメガバイト単位で受け取るポインタである。 |
| Count | DWORD | in | pHashes 配列に含まれるハッシュの数を指定する。 |
| pHashes | DedupHash* | in | 存在確認するチャンクのハッシュ値(DedupHash)配列へのポインタである。 |
| pRequestId | GUID* | out | この非同期要求を識別する要求 ID(GUID)を受け取るポインタである。 |
vtbl 5 HRESULT InsertChunks(DWORD ChunkCount, DedupChunk* pChunkMetadata, DWORD DataByteCount, BYTE* pChunkData, GUID* pRequestId)
| ChunkCount | DWORD | in | pChunkMetadata 配列に含まれるチャンクの数を指定する。 |
| pChunkMetadata | DedupChunk* | in | 挿入する各チャンクのメタデータ(DedupChunk)配列へのポインタである。 |
| DataByteCount | DWORD | in | pChunkData が指すチャンクデータの総バイト数を指定する。 |
| pChunkData | BYTE* | in | 挿入するチャンクの実データを格納したバッファへのポインタである。 |
| pRequestId | GUID* | out | この非同期要求を識別する要求 ID(GUID)を受け取るポインタである。 |
vtbl 6 HRESULT InsertChunksWithStream(DWORD ChunkCount, DedupChunk* pChunkMetadata, DWORD DataByteCount, IStream* pChunkDataStream, GUID* pRequestId)
| ChunkCount | DWORD | in | pChunkMetadata 配列に含まれるチャンクの数を指定する。 |
| pChunkMetadata | DedupChunk* | in | 挿入する各チャンクのメタデータ(DedupChunk)配列へのポインタである。 |
| DataByteCount | DWORD | in | ストリームから読み取るチャンクデータの総バイト数を指定する。 |
| pChunkDataStream | IStream* | in | 挿入するチャンクの実データを供給する IStream へのポインタである。 |
| pRequestId | GUID* | out | この非同期要求を識別する要求 ID(GUID)を受け取るポインタである。 |
vtbl 7 HRESULT CommitStreams(DWORD StreamCount, DedupStream* pStreams, DWORD EntryCount, DedupStreamEntry* pEntries, GUID* pRequestId)
| StreamCount | DWORD | in | pStreams 配列に含まれるストリームの数を指定する。 |
| pStreams | DedupStream* | in | コミットするストリームの情報(DedupStream)配列へのポインタである。 |
| EntryCount | DWORD | in | pEntries 配列に含まれるストリームエントリの数を指定する。 |
| pEntries | DedupStreamEntry* | in | 各ストリームを構成するチャンク参照(DedupStreamEntry)配列へのポインタである。 |
| pRequestId | GUID* | out | この非同期要求を識別する要求 ID(GUID)を受け取るポインタである。 |
vtbl 8 HRESULT CommitStreamsWithStream(DWORD StreamCount, DedupStream* pStreams, DWORD EntryCount, IStream* pEntriesStream, GUID* pRequestId)
| StreamCount | DWORD | in | pStreams 配列に含まれるストリームの数を指定する。 |
| pStreams | DedupStream* | in | コミットするストリームの情報(DedupStream)配列へのポインタである。 |
| EntryCount | DWORD | in | ストリームから読み取るストリームエントリの数を指定する。 |
| pEntriesStream | IStream* | in | ストリームエントリ(DedupStreamEntry)を供給する IStream へのポインタである。 |
| pRequestId | GUID* | out | この非同期要求を識別する要求 ID(GUID)を受け取るポインタである。 |
| StreamCount | DWORD | in | pStreamPaths 配列に含まれるストリームパスの数を指定する。 |
| pStreamPaths | LPWSTR* | in | 取得対象ストリームのパス文字列の配列へのポインタである。 |
| pRequestId | GUID* | 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)
| RequestId | GUID | in | 結果を取得する対象の要求 ID(GUID)を指定する。 |
| MaxWaitMs | DWORD | in | 結果が得られるまで待機する最大時間をミリ秒単位で指定する。 |
| StreamEntryIndex | DWORD | in | 取得を開始するストリームエントリのインデックスを指定する。 |
| pStreamCount | DWORD* | out | 返されたストリームの数を受け取るポインタである。 |
| ppStreams | DedupStream** | out | 取得したストリーム情報(DedupStream)配列を受け取るポインタである。 |
| pEntryCount | DWORD* | out | 返されたストリームエントリの数を受け取るポインタである。 |
| ppEntries | DedupStreamEntry** | out | 取得したストリームエントリ(DedupStreamEntry)配列を受け取るポインタである。 |
| pStatus | DedupDataPortRequestStatus* | out | 要求全体の状態(DedupDataPortRequestStatus)を受け取るポインタである。 |
| ppItemResults | HRESULT** | out | 各項目の処理結果(HRESULT)配列を受け取るポインタである。 |
| Count | DWORD | in | pHashes 配列に含まれるハッシュの数を指定する。 |
| pHashes | DedupHash* | in | 取得するチャンクのハッシュ値(DedupHash)配列へのポインタである。 |
| pRequestId | GUID* | 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)
| RequestId | GUID | in | 結果を取得する対象の要求 ID(GUID)を指定する。 |
| MaxWaitMs | DWORD | in | 結果が得られるまで待機する最大時間をミリ秒単位で指定する。 |
| ChunkIndex | DWORD | in | 取得を開始するチャンクのインデックスを指定する。 |
| pChunkCount | DWORD* | out | 返されたチャンクの数を受け取るポインタである。 |
| ppChunkMetadata | DedupChunk** | out | 取得したチャンクのメタデータ(DedupChunk)配列を受け取るポインタである。 |
| pDataByteCount | DWORD* | out | 返されたチャンクデータの総バイト数を受け取るポインタである。 |
| ppChunkData | BYTE** | out | 取得したチャンクの実データバッファを受け取るポインタである。 |
| pStatus | DedupDataPortRequestStatus* | out | 要求全体の状態(DedupDataPortRequestStatus)を受け取るポインタである。 |
| ppItemResults | HRESULT** | out | 各項目の処理結果(HRESULT)配列を受け取るポインタである。 |
vtbl 13 HRESULT GetRequestStatus(GUID RequestId, DedupDataPortRequestStatus* pStatus)
| RequestId | GUID | in | 状態を照会する対象の要求 ID(GUID)を指定する。 |
| pStatus | DedupDataPortRequestStatus* | out | 要求の現在の状態(DedupDataPortRequestStatus)を受け取るポインタである。 |
vtbl 14 HRESULT GetRequestResults(GUID RequestId, DWORD MaxWaitMs, HRESULT* pBatchResult, DWORD* pBatchCount, DedupDataPortRequestStatus* pStatus, HRESULT** ppItemResults)
| RequestId | GUID | in | 結果を取得する対象の要求 ID(GUID)を指定する。 |
| MaxWaitMs | DWORD | in | 結果が得られるまで待機する最大時間をミリ秒単位で指定する。 |
| pBatchResult | HRESULT* | out | バッチ全体の処理結果(HRESULT)を受け取るポインタである。 |
| pBatchCount | DWORD* | out | バッチに含まれる項目数を受け取るポインタである。 |
| pStatus | DedupDataPortRequestStatus* | out | 要求の状態(DedupDataPortRequestStatus)を受け取るポインタである。 |
| ppItemResults | HRESULT** | 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 指定が可能。#define global IID_IDedupDataPort "{7963D734-40A9-4EA3-BBF6-5A89D26F7AE8}" #usecom global IDedupDataPort IID_IDedupDataPort "{8F107207-1829-48B2-A64B-E61F8E0D9ACB}" #comfunc global IDedupDataPort_GetStatus 3 sptr,sptr #comfunc global IDedupDataPort_LookupChunks 4 int,sptr,sptr #comfunc global IDedupDataPort_InsertChunks 5 int,sptr,int,sptr,sptr #comfunc global IDedupDataPort_InsertChunksWithStream 6 int,sptr,int,sptr,sptr #comfunc global IDedupDataPort_CommitStreams 7 int,sptr,int,sptr,sptr #comfunc global IDedupDataPort_CommitStreamsWithStream 8 int,sptr,int,sptr,sptr #comfunc global IDedupDataPort_GetStreams 9 int,sptr,sptr #comfunc global IDedupDataPort_GetStreamsResults 10 int,int,int,sptr,sptr,sptr,sptr,sptr,sptr #comfunc global IDedupDataPort_GetChunks 11 int,sptr,sptr #comfunc global IDedupDataPort_GetChunksResults 12 int,int,int,sptr,sptr,sptr,sptr,sptr,sptr #comfunc global IDedupDataPort_GetRequestStatus 13 int,sptr #comfunc global IDedupDataPort_GetRequestResults 14 int,int,sptr,sptr,sptr,sptr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※#usecom 末尾は CoCreateInstance 用のクラスID(コクラスCLSID, SDKから自動取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。