IVssDifferentialSoftwareSnapshotMgmt
COM公式ドキュメント
システムのシャドウコピープロバイダーによって生成されたシャドウコピー記憶域をアプリケーションが照会および管理するためのメソッドを提供します。
メソッド 6
vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。
指定したボリュームに対してシャドウコピー記憶域の関連付けを追加します。
| pwszVolumeName | WORD* | in | シャドウコピーの元となるボリュームの名前です。このボリュームは、pwszDiffAreaVolumeName ボリューム上のシャドウコピー 記憶域に関連付けられます。 ボリューム名は次のいずれかの形式で指定し、末尾に円記号 (\) を含める必要があります。
|
| pwszDiffAreaVolumeName | WORD* | in | pwszVolumeName ボリュームに関連付けるシャドウコピー記憶域を格納する ボリュームの名前です。 ボリューム名は次のいずれかの形式で指定し、末尾に円記号 (\) を含める必要があります。
|
| llMaximumDiffSpace | LONGLONG | in | ボリューム上のシャドウコピー記憶域の最大サイズ (バイト単位) です。この値は 最小でも 320 MB 必要であり、上限はシステム全体の制限に従います。 この値が –1 の場合、最大サイズは無制限になります。 Windows Server 2003: Windows Server 2003 with SP1 より前では、シャドウコピー記憶域のサイズは 100 MB に固定されていました。 |
戻り値
このメソッドは次のいずれかの値を返します。
| 値 | 意味 |
|---|---|
| シャドウコピー記憶域の関連付けを正常に追加しました。 | |
| 呼び出し元にバックアップ特権が不足しているか、管理者ではありません。 | |
| パラメーターのいずれかの値が有効ではありません。 | |
| 呼び出し元のメモリまたはその他のシステムリソースが不足しています。 | |
| シャドウコピー元のボリュームに追加できるシャドウコピー記憶域の数が上限に達しています。指定された シャドウコピー記憶域ボリュームは、指定されたシャドウコピー元ボリュームに関連付けられませんでした。 | |
|
指定されたボリュームは入れ子が深すぎるため、VSS 操作に参加できません。
Windows Server 2008、Windows Vista、Windows Server 2003 および Windows XP: この戻り値はサポートされていません。 |
|
| pwszVolumeName ボリュームと pwszDiffAreaVolumeName ボリュームの関連付けは既に存在します。 | |
| 想定されるプロバイダーエラーです。プロバイダーはこのエラーをイベントログに記録しました。詳細については、 Event and Error Handling Under VSS を参照してください。 | |
|
予期しないエラーです。エラーコードはエラーログファイルに記録されます。詳細については、
Event and Error Handling Under VSS を参照してください。
Windows Server 2008、Windows Vista、Windows Server 2003 および Windows XP: この値は Windows Server 2008 R2 および Windows 7 まではサポートされません。代わりに E_UNEXPECTED が使用されます。 |
|
| pwszDiffAreaVolumeName ボリュームが NTFS ボリュームではないか、空き領域が不足 しています。 |
解説(Remarks)
pwszVolumeName ボリュームに対して既にシャドウコピーが存在する場合、またはそのボリュームに対して 既にシャドウコピー記憶域の関連付けが存在する場合は、シャドウコピー記憶域の関連付けを作成できません。
仮想ハードディスク (VHD) をソースボリュームとする場合、そのシャドウコピー記憶域は同一ボリューム上に存在する必要があります。同様に、VHD ボリューム上にシャドウコピー記憶域を作成できるのは、ソースボリュームが両者で同一である場合に限られます。
Windows Server 2008、Windows Vista、Windows Server 2003 および Windows XP: VHD はサポートされていません。
シャドウコピー記憶域のサイズを変更するには、IVssDifferentialSoftwareSnapshotMgmt::ChangeDiffAreaMaximumSize メソッドまたは IVssDifferentialSoftwareSnapshotMgmt2::ChangeDiffAreaMaximumSizeEx メソッドを使用します。サイズを 0 に変更することで、シャドウコピー記憶域を削除できます。
指定したボリュームのシャドウコピー記憶域の最大サイズを更新します。
| pwszVolumeName | WORD* | in | シャドウコピーの元となるボリュームの名前です。このボリュームは、pwszDiffAreaVolumeName ボリューム上の シャドウコピー記憶域に関連付けられます。 ボリューム名は次のいずれかの形式で指定し、末尾に円記号 (\) を含める必要があります。
|
| pwszDiffAreaVolumeName | WORD* | in | pwszVolumeName ボリュームに関連付けられたシャドウコピー記憶域を格納する ボリュームの名前です。 ボリューム名は次のいずれかの形式で指定し、末尾に円記号 (\) を含める必要があります。
|
| llMaximumDiffSpace | LONGLONG | in | このボリューム用に使用するシャドウコピー記憶域の最大サイズ (バイト単位) を指定します。この値が 0 の場合、 シャドウコピー記憶域は削除されます。この値が –1 の場合、最大サイズは無制限になります。 |
戻り値
このメソッドは次のいずれかの値を返します。
| 値 | 意味 |
|---|---|
| シャドウコピー記憶域の最大サイズを正常に変更しました。 | |
| 呼び出し元にバックアップ特権が不足しているか、管理者ではありません。 | |
| パラメーターのいずれかの値が有効ではありません。 | |
| 呼び出し元のメモリまたはその他のシステムリソースが不足しています。 | |
| pwszDiffAreaVolumeName ボリュームの空き領域が不足しています。 | |
| pwszVolumeName ボリュームと pwszDiffAreaVolumeName ボリュームの関連付けが見つかりませんでした。 | |
| プロバイダーエラーです。プロバイダーはこのエラーをイベントログに記録しました。詳細については、 Event and Error Handling Under VSS を参照してください。 | |
|
予期しないエラーです。エラーコードはエラーログファイルに記録されます。詳細については、
Event and Error Handling Under VSS を参照してください。
Windows Server 2008、Windows Vista、Windows Server 2003 および Windows XP: この値は Windows Server 2008 R2 および Windows 7 まではサポートされません。代わりに E_UNEXPECTED が使用されます。 |
|
| 現在、シャドウコピーがそのシャドウコピー記憶域を使用しています。 |
解説(Remarks)
ChangeDiffAreaMaximumSize メソッドはシャドウコピー記憶域を明示的なものにします。つまり、すべてのシャドウコピーが削除されても自動的には削除されなくなります。
シャドウコピー記憶域が存在しない場合、このメソッドはそれを作成します。
Windows Server 2008、Windows Vista および Windows Server 2003: シャドウコピー記憶域が存在しない場合でも、このメソッドはそれを作成しません。
シャドウコピー記憶域を作成するには、IVssDifferentialSoftwareSnapshotMgmt::AddDiffArea メソッドを使用します。
シャドウコピー記憶域をサポートするボリューム (シャドウコピー記憶域が無効になっているボリュームを含む) を照会します。
| pwszOriginalVolumeName | WORD* | in | シャドウコピーの元となる元のボリュームの名前です。ボリューム名は次のいずれかの形式で指定し、 末尾に円記号 (\) を含める必要があります。
|
| ppEnum | IVssEnumMgmtObject** | out | IVssEnumMgmtObject インターフェイス ポインターのアドレスです。戻り時に初期化されます。呼び出し元はこのインターフェイスを解放する必要があります。 |
戻り値
このメソッドは次のいずれかの値を返します。
| 値 | 意味 |
|---|---|
| シャドウコピー記憶域のボリュームを正常に照会しました。 | |
| 呼び出し元にバックアップ特権が不足しているか、管理者ではありません。 | |
| パラメーターのいずれかの値が有効ではありません。 | |
| 呼び出し元のメモリまたはその他のシステムリソースが不足しています。 | |
| プロバイダーエラーです。プロバイダーはこのエラーをイベントログに記録しました。詳細については、 Event and Error Handling Under VSS を参照してください。 | |
|
予期しないエラーです。エラーコードはエラーログファイルに記録されます。詳細については、
Event and Error Handling Under VSS を参照してください。
Windows Server 2008、Windows Vista、Windows Server 2003 および Windows XP: この値は Windows Server 2008 R2 および Windows 7 まではサポートされません。代わりに E_UNEXPECTED が使用されます。 |
解説(Remarks)
返される IVssEnumMgmtObject 列挙子オブジェクトには、 VSS_MGMT_OBJECT_PROP 構造体の中の VSS_MGMT_OBJECT_UNION 共用体の中に VSS_DIFF_VOLUME_PROP 構造体が格納されます。
指定したボリュームが使用しているシャドウコピー記憶域を照会します。
| pwszVolumeName | WORD* | in | シャドウコピー記憶域を含むボリュームの名前です。 ボリューム名は次のいずれかの形式で指定し、末尾に円記号 (\) を含める必要があります。
|
| ppEnum | IVssEnumMgmtObject** | out | IVssEnumMgmtObject インターフェイス ポインターのアドレスです。戻り時に初期化されます。呼び出し元はこのインターフェイスを解放する必要があります。 |
戻り値
このメソッドは次のいずれかの値を返します。
| 値 | 意味 |
|---|---|
| シャドウコピー記憶域を正常に照会しました。 | |
| 呼び出し元にバックアップ特権が不足しているか、管理者ではありません。 | |
| パラメーターのいずれかの値が有効ではありません。 | |
| 呼び出し元のメモリまたはその他のシステムリソースが不足しています。 | |
| プロバイダーエラーです。プロバイダーはこのエラーをイベントログに記録しました。詳細については、Event and Error Handling Under VSS を参照してください。 | |
|
予期しないエラーです。エラーコードはエラーログファイルに記録されます。詳細については、Event and Error Handling Under VSS を参照してください。
Windows Server 2008、Windows Vista、Windows Server 2003 および Windows XP: この値は Windows Server 2008 R2 および Windows 7 まではサポートされません。代わりに E_UNEXPECTED が使用されます。 |
解説(Remarks)
返される IVssEnumMgmtObject 列挙子オブジェクトには、VSS_MGMT_OBJECT_PROP 構造体の中の VSS_MGMT_OBJECT_UNION 共用体の中に VSS_DIFF_AREA_PROP 構造体が格納されます。
指定したボリューム上に物理的に存在するシャドウコピー記憶域を照会します。
| pwszVolumeName | WORD* | in | シャドウコピー記憶域を含むボリュームの名前です。 ボリューム名は次のいずれかの形式で指定し、末尾に円記号 (\) を含める必要があります。
|
| ppEnum | IVssEnumMgmtObject** | out | IVssEnumMgmtObject インターフェイス ポインターのアドレスです。戻り時に初期化されます。呼び出し元はこのインターフェイスを解放する必要があります。 |
戻り値
このメソッドは次のいずれかの値を返します。
| 値 | 意味 |
|---|---|
| シャドウコピー記憶域を正常に照会しました。 | |
| 呼び出し元にバックアップ特権が不足しているか、管理者ではありません。 | |
| パラメーターのいずれかの値が有効ではありません。 | |
| 呼び出し元のメモリまたはその他のシステムリソースが不足しています。 | |
| プロバイダーエラーです。プロバイダーはこのエラーをイベントログに記録しました。詳細については、 Event and Error Handling Under VSS を参照してください。 | |
|
予期しないエラーです。エラーコードはエラーログファイルに記録されます。詳細については、
Event and Error Handling Under VSS を参照してください。
Windows Server 2008、Windows Vista、Windows Server 2003 および Windows XP: この値は Windows Server 2008 R2 および Windows 7 まではサポートされません。代わりに E_UNEXPECTED が使用されます。 |
解説(Remarks)
返される IVssEnumMgmtObject 列挙子オブジェクトには、 VSS_MGMT_OBJECT_PROP 構造体の中の VSS_MGMT_OBJECT_UNION 共用体の中に VSS_DIFF_AREA_PROP 構造体が格納されます。
入力されたシャドウコピーに関連付けられた元のボリュームが使用しているシャドウコピー記憶域を照会します。
| SnapshotId | GUID | in | シャドウコピーの VSS_ID です。 |
| ppEnum | IVssEnumMgmtObject** | out | IVssEnumMgmtObject インターフェイス ポインターのアドレスです。戻り時に初期化されます。呼び出し元はこのインターフェイスを解放する必要があります。 |
戻り値
このメソッドは次のいずれかの値を返します。
| 値 | 意味 |
|---|---|
| シャドウコピー記憶域を正常に照会しました。 | |
| 呼び出し元にバックアップ特権が不足しているか、管理者ではありません。 | |
| パラメーターのいずれかの値が有効ではありません。 | |
| 呼び出し元のメモリまたはその他のシステムリソースが不足しています。 | |
| プロバイダーエラーです。プロバイダーはこのエラーをイベントログに記録しました。詳細については、 Event and Error Handling Under VSS を参照してください。 | |
|
予期しないエラーです。エラーコードはエラーログファイルに記録されます。詳細については、
Event and Error Handling Under VSS を参照してください。
Windows Server 2008、Windows Vista、Windows Server 2003 および Windows XP: この値は Windows Server 2008 R2 および Windows 7 まではサポートされません。代わりに E_UNEXPECTED が使用されます。 |
解説(Remarks)
返される IVssEnumMgmtObject 列挙子オブジェクトには、 VSS_MGMT_OBJECT_PROP 構造体の中の VSS_MGMT_OBJECT_UNION 共用体の中に VSS_DIFF_AREA_PROP 構造体が格納されます。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
#define global IID_IVssDifferentialSoftwareSnapshotMgmt "{214A0F28-B737-4026-B847-4F9E37D79529}" #usecom global IVssDifferentialSoftwareSnapshotMgmt IID_IVssDifferentialSoftwareSnapshotMgmt "{}" #comfunc global IVssDifferentialSoftwareSnapshotMgmt_AddDiffArea 3 var,var,int64 #comfunc global IVssDifferentialSoftwareSnapshotMgmt_ChangeDiffAreaMaximumSize 4 var,var,int64 #comfunc global IVssDifferentialSoftwareSnapshotMgmt_QueryVolumesSupportedForDiffAreas 5 var,sptr #comfunc global IVssDifferentialSoftwareSnapshotMgmt_QueryDiffAreasForVolume 6 var,sptr #comfunc global IVssDifferentialSoftwareSnapshotMgmt_QueryDiffAreasOnVolume 7 var,sptr #comfunc global IVssDifferentialSoftwareSnapshotMgmt_QueryDiffAreasForSnapshot 8 int,sptr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。#define global IID_IVssDifferentialSoftwareSnapshotMgmt "{214A0F28-B737-4026-B847-4F9E37D79529}" #usecom global IVssDifferentialSoftwareSnapshotMgmt IID_IVssDifferentialSoftwareSnapshotMgmt "{}" #comfunc global IVssDifferentialSoftwareSnapshotMgmt_AddDiffArea 3 sptr,sptr,int64 #comfunc global IVssDifferentialSoftwareSnapshotMgmt_ChangeDiffAreaMaximumSize 4 sptr,sptr,int64 #comfunc global IVssDifferentialSoftwareSnapshotMgmt_QueryVolumesSupportedForDiffAreas 5 sptr,sptr #comfunc global IVssDifferentialSoftwareSnapshotMgmt_QueryDiffAreasForVolume 6 sptr,sptr #comfunc global IVssDifferentialSoftwareSnapshotMgmt_QueryDiffAreasOnVolume 7 sptr,sptr #comfunc global IVssDifferentialSoftwareSnapshotMgmt_QueryDiffAreasForSnapshot 8 int,sptr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。