ホーム › Storage.Vss › IVssSoftwareSnapshotProvider
IVssSoftwareSnapshotProvider
COMメソッド 10
vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。
| lContext | INT | in | 以降の操作に適用するスナップショットコンテキスト(VSS_SNAPSHOT_CONTEXT/VSS_VOLUME_SNAPSHOT_ATTRIBUTES の組み合わせ)を指定する。 |
vtbl 4 HRESULT GetSnapshotProperties(GUID SnapshotId, VSS_SNAPSHOT_PROP* pProp)
| SnapshotId | GUID | in | プロパティを取得する対象スナップショットの識別子(GUID)を指定する。 |
| pProp | VSS_SNAPSHOT_PROP* | out | スナップショットのプロパティを格納する VSS_SNAPSHOT_PROP 構造体を受け取るポインタである。 |
vtbl 5 HRESULT Query(GUID QueriedObjectId, VSS_OBJECT_TYPE eQueriedObjectType, VSS_OBJECT_TYPE eReturnedObjectsType, IVssEnumObject** ppEnum)
| QueriedObjectId | GUID | in | 照会の対象とするオブジェクトの識別子(GUID)を指定する。 |
| eQueriedObjectType | VSS_OBJECT_TYPE | in | 照会対象オブジェクトの種別を示す VSS_OBJECT_TYPE 列挙値を指定する。 |
| eReturnedObjectsType | VSS_OBJECT_TYPE | in | 返してほしいオブジェクトの種別を示す VSS_OBJECT_TYPE 列挙値を指定する。 |
| ppEnum | IVssEnumObject** | out | 照会結果のオブジェクトを列挙する IVssEnumObject インターフェイスポインタを受け取るポインタへのポインタである。 |
vtbl 6 HRESULT DeleteSnapshots(GUID SourceObjectId, VSS_OBJECT_TYPE eSourceObjectType, BOOL bForceDelete, INT* plDeletedSnapshots, GUID* pNondeletedSnapshotID)
| SourceObjectId | GUID | in | 削除対象を特定するためのソースオブジェクトの識別子(GUID)を指定する。 |
| eSourceObjectType | VSS_OBJECT_TYPE | in | ソースオブジェクトの種別を示す VSS_OBJECT_TYPE 列挙値を指定する。 |
| bForceDelete | BOOL | in | 一部の削除が失敗しても処理を継続して強制削除するかどうかを指定する。 |
| plDeletedSnapshots | INT* | out | 実際に削除されたスナップショットの数を受け取るポインタである。 |
| pNondeletedSnapshotID | GUID* | out | 削除に失敗した最初のスナップショットの識別子(GUID)を受け取るポインタである。 |
vtbl 7 HRESULT BeginPrepareSnapshot(GUID SnapshotSetId, GUID SnapshotId, WORD* pwszVolumeName, INT lNewContext)
| SnapshotSetId | GUID | in | このスナップショットが属するスナップショットセットの識別子(GUID)を指定する。 |
| SnapshotId | GUID | in | 新しく準備するスナップショットの識別子(GUID)を指定する。 |
| pwszVolumeName | WORD* | in | スナップショットを作成する対象ボリュームの名前を指定する文字列である。 |
| lNewContext | INT | in | このスナップショットに適用するコンテキスト値を指定する。 |
| pwszVolumeName | WORD* | in | サポート可否を確認する対象ボリュームの名前を指定する文字列である。 |
| pbSupportedByThisProvider | BOOL* | out | このプロバイダーが対象ボリュームのスナップショットをサポートするかどうかを示すブール値を受け取るポインタである。 |
vtbl 9 HRESULT IsVolumeSnapshotted(WORD* pwszVolumeName, BOOL* pbSnapshotsPresent, INT* plSnapshotCompatibility)
| pwszVolumeName | WORD* | in | スナップショット有無を確認する対象ボリュームの名前を指定する文字列である。 |
| pbSnapshotsPresent | BOOL* | out | 対象ボリュームにスナップショットが存在するかどうかを示すブール値を受け取るポインタである。 |
| plSnapshotCompatibility | INT* | out | 対象ボリュームに対して制限される操作を示す互換性フラグを受け取るポインタである。 |
vtbl 10 HRESULT SetSnapshotProperty(GUID SnapshotId, VSS_SNAPSHOT_PROPERTY_ID eSnapshotPropertyId, VARIANT vProperty)
| SnapshotId | GUID | in | プロパティを設定する対象スナップショットの識別子(GUID)を指定する。 |
| eSnapshotPropertyId | VSS_SNAPSHOT_PROPERTY_ID | in | 設定するプロパティを示す VSS_SNAPSHOT_PROPERTY_ID 列挙値を指定する。 |
| vProperty | VARIANT | in | 設定するプロパティの値を格納したバリアントを指定する。 |
vtbl 11 HRESULT RevertToSnapshot(GUID SnapshotId)
| SnapshotId | GUID | in | 元のボリュームを復帰させる対象スナップショットの識別子(GUID)を指定する。 |
| pwszVolume | WORD* | in | 復帰状態を照会する対象ボリュームの名前を指定する文字列である。 |
| ppAsync | IVssAsync** | 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 指定が可能。#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,sptr #comfunc global IVssSoftwareSnapshotProvider_Query 5 int,int,int,sptr #comfunc global IVssSoftwareSnapshotProvider_DeleteSnapshots 6 int,int,int,sptr,sptr #comfunc global IVssSoftwareSnapshotProvider_BeginPrepareSnapshot 7 int,int,sptr,int #comfunc global IVssSoftwareSnapshotProvider_IsVolumeSupported 8 sptr,sptr #comfunc global IVssSoftwareSnapshotProvider_IsVolumeSnapshotted 9 sptr,sptr,sptr #comfunc global IVssSoftwareSnapshotProvider_SetSnapshotProperty 10 int,int,int #comfunc global IVssSoftwareSnapshotProvider_RevertToSnapshot 11 int #comfunc global IVssSoftwareSnapshotProvider_QueryRevertStatus 12 sptr,sptr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。