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

IVssHardwareSnapshotProvider

COM
IID9593a157-44e9-4344-bbeb-44fbf9b06b10継承元IUnknown自前メソッド開始 vtbl3

メソッド 6

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

vtbl 3 HRESULT AreLunsSupported(INT lLunCount, INT lContext, WORD** rgwszDevices, VDS_LUN_INFORMATION* pLunInformation, BOOL* pbIsSupported)
lLunCountINTin確認対象とする LUN の数を指定する。
lContextINTinスナップショットのコンテキストを示す値を指定する。
rgwszDevicesWORD**in対象 LUN に対応するデバイス名文字列の配列へのポインタである。
pLunInformationVDS_LUN_INFORMATION*inout各 LUN の情報を格納した VDS_LUN_INFORMATION 構造体配列へのポインタである。
pbIsSupportedBOOL*outこれらの LUN がこのプロバイダーでサポートされるかどうかを示すブール値を受け取るポインタである。
vtbl 4 HRESULT FillInLunInfo(WORD* wszDeviceName, VDS_LUN_INFORMATION* pLunInfo, BOOL* pbIsSupported)
wszDeviceNameWORD*in情報を補完する対象デバイスの名前を指定する文字列である。
pLunInfoVDS_LUN_INFORMATION*inout入力として LUN 情報を渡し、プロバイダーが補完した内容を受け取る VDS_LUN_INFORMATION 構造体へのポインタである。
pbIsSupportedBOOL*outこの LUN がこのプロバイダーでサポートされるかどうかを示すブール値を受け取るポインタである。
vtbl 5 HRESULT BeginPrepareSnapshot(GUID SnapshotSetId, GUID SnapshotId, INT lContext, INT lLunCount, WORD** rgDeviceNames, VDS_LUN_INFORMATION* rgLunInformation)
SnapshotSetIdGUIDinこのスナップショットが属するスナップショットセットの識別子(GUID)を指定する。
SnapshotIdGUIDin新しく準備するスナップショットの識別子(GUID)を指定する。
lContextINTinこのスナップショットに適用するコンテキスト値を指定する。
lLunCountINTin対象 LUN の数を指定する。
rgDeviceNamesWORD**in対象 LUN に対応するデバイス名文字列の配列へのポインタである。
rgLunInformationVDS_LUN_INFORMATION*inout各 LUN の情報を格納した VDS_LUN_INFORMATION 構造体配列へのポインタである。
vtbl 6 HRESULT GetTargetLuns(INT lLunCount, WORD** rgDeviceNames, VDS_LUN_INFORMATION* rgSourceLuns, VDS_LUN_INFORMATION* rgDestinationLuns)
lLunCountINTin対象 LUN の数を指定する。
rgDeviceNamesWORD**inソース LUN に対応するデバイス名文字列の配列へのポインタである。
rgSourceLunsVDS_LUN_INFORMATION*inスナップショット元(ソース)LUN の情報を格納した VDS_LUN_INFORMATION 構造体配列へのポインタである。
rgDestinationLunsVDS_LUN_INFORMATION*inoutスナップショット先(ターゲット)LUN の情報を受け取る VDS_LUN_INFORMATION 構造体配列へのポインタである。
vtbl 7 HRESULT LocateLuns(INT lLunCount, VDS_LUN_INFORMATION* rgSourceLuns)
lLunCountINTin対象 LUN の数を指定する。
rgSourceLunsVDS_LUN_INFORMATION*inオペレーティングシステムに認識させる(配置する)ソース LUN の情報を格納した VDS_LUN_INFORMATION 構造体配列へのポインタである。
vtbl 8 HRESULT OnLunEmpty(WORD* wszDeviceName, VDS_LUN_INFORMATION* pInformation)
wszDeviceNameWORD*in空になった LUN に対応するデバイスの名前を指定する文字列である。
pInformationVDS_LUN_INFORMATION*in空になった LUN の情報を格納した VDS_LUN_INFORMATION 構造体へのポインタである。

HSP用 COM定義

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

出力引数:
#define global IID_IVssHardwareSnapshotProvider "{9593A157-44E9-4344-BBEB-44FBF9B06B10}"
#usecom global IVssHardwareSnapshotProvider IID_IVssHardwareSnapshotProvider "{}"
#comfunc global IVssHardwareSnapshotProvider_AreLunsSupported      3 int,int,var,var,var
#comfunc global IVssHardwareSnapshotProvider_FillInLunInfo         4 var,var,var
#comfunc global IVssHardwareSnapshotProvider_BeginPrepareSnapshot  5 int,int,int,int,var,var
#comfunc global IVssHardwareSnapshotProvider_GetTargetLuns         6 int,var,var,var
#comfunc global IVssHardwareSnapshotProvider_LocateLuns            7 int,var
#comfunc global IVssHardwareSnapshotProvider_OnLunEmpty            8 var,var
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。