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

IVssSoftwareSnapshotProvider

COM
IID609e123e-2c5a-44d3-8f01-0b1d9a47d1ff継承元IUnknown自前メソッド開始 vtbl3

メソッド 10

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

vtbl 3 HRESULT SetContext(INT lContext)
lContextINTin以降の操作に適用するスナップショットコンテキスト(VSS_SNAPSHOT_CONTEXT/VSS_VOLUME_SNAPSHOT_ATTRIBUTES の組み合わせ)を指定する。
vtbl 4 HRESULT GetSnapshotProperties(GUID SnapshotId, VSS_SNAPSHOT_PROP* pProp)
SnapshotIdGUIDinプロパティを取得する対象スナップショットの識別子(GUID)を指定する。
pPropVSS_SNAPSHOT_PROP*outスナップショットのプロパティを格納する VSS_SNAPSHOT_PROP 構造体を受け取るポインタである。
vtbl 5 HRESULT Query(GUID QueriedObjectId, VSS_OBJECT_TYPE eQueriedObjectType, VSS_OBJECT_TYPE eReturnedObjectsType, IVssEnumObject** ppEnum)
QueriedObjectIdGUIDin照会の対象とするオブジェクトの識別子(GUID)を指定する。
eQueriedObjectTypeVSS_OBJECT_TYPEin照会対象オブジェクトの種別を示す VSS_OBJECT_TYPE 列挙値を指定する。
eReturnedObjectsTypeVSS_OBJECT_TYPEin返してほしいオブジェクトの種別を示す VSS_OBJECT_TYPE 列挙値を指定する。
ppEnumIVssEnumObject**out照会結果のオブジェクトを列挙する IVssEnumObject インターフェイスポインタを受け取るポインタへのポインタである。
vtbl 6 HRESULT DeleteSnapshots(GUID SourceObjectId, VSS_OBJECT_TYPE eSourceObjectType, BOOL bForceDelete, INT* plDeletedSnapshots, GUID* pNondeletedSnapshotID)
SourceObjectIdGUIDin削除対象を特定するためのソースオブジェクトの識別子(GUID)を指定する。
eSourceObjectTypeVSS_OBJECT_TYPEinソースオブジェクトの種別を示す VSS_OBJECT_TYPE 列挙値を指定する。
bForceDeleteBOOLin一部の削除が失敗しても処理を継続して強制削除するかどうかを指定する。
plDeletedSnapshotsINT*out実際に削除されたスナップショットの数を受け取るポインタである。
pNondeletedSnapshotIDGUID*out削除に失敗した最初のスナップショットの識別子(GUID)を受け取るポインタである。
vtbl 7 HRESULT BeginPrepareSnapshot(GUID SnapshotSetId, GUID SnapshotId, WORD* pwszVolumeName, INT lNewContext)
SnapshotSetIdGUIDinこのスナップショットが属するスナップショットセットの識別子(GUID)を指定する。
SnapshotIdGUIDin新しく準備するスナップショットの識別子(GUID)を指定する。
pwszVolumeNameWORD*inスナップショットを作成する対象ボリュームの名前を指定する文字列である。
lNewContextINTinこのスナップショットに適用するコンテキスト値を指定する。
vtbl 8 HRESULT IsVolumeSupported(WORD* pwszVolumeName, BOOL* pbSupportedByThisProvider)
pwszVolumeNameWORD*inサポート可否を確認する対象ボリュームの名前を指定する文字列である。
pbSupportedByThisProviderBOOL*outこのプロバイダーが対象ボリュームのスナップショットをサポートするかどうかを示すブール値を受け取るポインタである。
vtbl 9 HRESULT IsVolumeSnapshotted(WORD* pwszVolumeName, BOOL* pbSnapshotsPresent, INT* plSnapshotCompatibility)
pwszVolumeNameWORD*inスナップショット有無を確認する対象ボリュームの名前を指定する文字列である。
pbSnapshotsPresentBOOL*out対象ボリュームにスナップショットが存在するかどうかを示すブール値を受け取るポインタである。
plSnapshotCompatibilityINT*out対象ボリュームに対して制限される操作を示す互換性フラグを受け取るポインタである。
vtbl 10 HRESULT SetSnapshotProperty(GUID SnapshotId, VSS_SNAPSHOT_PROPERTY_ID eSnapshotPropertyId, VARIANT vProperty)
SnapshotIdGUIDinプロパティを設定する対象スナップショットの識別子(GUID)を指定する。
eSnapshotPropertyIdVSS_SNAPSHOT_PROPERTY_IDin設定するプロパティを示す VSS_SNAPSHOT_PROPERTY_ID 列挙値を指定する。
vPropertyVARIANTin設定するプロパティの値を格納したバリアントを指定する。
vtbl 11 HRESULT RevertToSnapshot(GUID SnapshotId)
SnapshotIdGUIDin元のボリュームを復帰させる対象スナップショットの識別子(GUID)を指定する。
vtbl 12 HRESULT QueryRevertStatus(WORD* pwszVolume, IVssAsync** ppAsync)
pwszVolumeWORD*in復帰状態を照会する対象ボリュームの名前を指定する文字列である。
ppAsyncIVssAsync**out復帰処理の進行状況を監視するための IVssAsync インターフェイスポインタを受け取るポインタへのポインタである。

HSP用 COM定義

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

出力引数:
#define global IID_IVssSoftwareSnapshotProvider "{609E123E-2C5A-44D3-8F01-0B1D9A47D1FF}"
#usecom global IVssSoftwareSnapshotProvider IID_IVssSoftwareSnapshotProvider "{}"
#comfunc global IVssSoftwareSnapshotProvider_SetContext             3 int
#comfunc global IVssSoftwareSnapshotProvider_GetSnapshotProperties  4 int,var
#comfunc global IVssSoftwareSnapshotProvider_Query                  5 int,int,int,sptr
#comfunc global IVssSoftwareSnapshotProvider_DeleteSnapshots        6 int,int,int,var,var
#comfunc global IVssSoftwareSnapshotProvider_BeginPrepareSnapshot   7 int,int,var,int
#comfunc global IVssSoftwareSnapshotProvider_IsVolumeSupported      8 var,var
#comfunc global IVssSoftwareSnapshotProvider_IsVolumeSnapshotted    9 var,var,var
#comfunc global IVssSoftwareSnapshotProvider_SetSnapshotProperty    10 int,int,int
#comfunc global IVssSoftwareSnapshotProvider_RevertToSnapshot       11 int
#comfunc global IVssSoftwareSnapshotProvider_QueryRevertStatus      12 var,sptr
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。
; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。