IVssComponent
COM公式ドキュメント
IVssComponent インターフェイスは、リクエスターのバックアップコンポーネントドキュメントに含まれるコンポーネントに関する情報を調査および変更するためのメソッドを持つ、C++(COM ではない)インターフェイスです。
メソッド 38
vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。
GetLogicalPath メソッドは、このコンポーネントの論理パスを返します。
| pbstrPath | LPWSTR* | inout | コンポーネントの論理パスを含む文字列へのポインター。 |
戻り値
このメソッドの有効な戻り値コードは次のとおりです。
| 値 | 意味 |
|---|---|
| 属性値を正常に返しました。 | |
| このコンポーネントには論理パスがありません。 | |
| パラメーター値のいずれかが無効です。 | |
| 呼び出し元のメモリまたはその他のシステムリソースが不足しています。 | |
| XML ドキュメントが無効です。詳細についてはイベントログを確認してください。詳しくは、VSS におけるイベントとエラーの処理を参照してください。 |
解説(Remarks)
呼び出し元は、SysFreeString を呼び出して pbstrPath パラメーターが保持するメモリを解放する必要があります。
論理パスはコンポーネントに必須ではありません。論理パスを持たないコンポーネントは S_FALSE を返します。
GetComponentType メソッドは、VSS_COMPONENT_TYPE 列挙体の観点から、このコンポーネントの種類を返します。
| pct | VSS_COMPONENT_TYPE* | inout | コンポーネントの種類を指定する VSS_COMPONENT_TYPE 列挙値を受け取る、呼び出し元が割り当てた変数のアドレス。 |
戻り値
このメソッドの有効な戻り値コードは次のとおりです。
| 値 | 意味 |
|---|---|
| 属性値を正常に返しました。 | |
| パラメーター値のいずれかが無効です。 | |
| 呼び出し元のメモリまたはその他のシステムリソースが不足しています。 | |
| XML ドキュメントが無効です。詳細についてはイベントログを確認してください。詳しくは、VSS におけるイベントとエラーの処理を参照してください。 |
GetComponentName メソッドは、このコンポーネントの論理名を返します。
| pbstrName | LPWSTR* | inout | コンポーネントの論理名を含む文字列へのポインター。 |
戻り値
このメソッドの有効な戻り値コードは次のとおりです。
| 値 | 意味 |
|---|---|
| 属性値を正常に返しました。 | |
| このコンポーネントには名前がありません。この状態は決して発生しないはずです。 | |
| パラメーター値のいずれかが無効です。 | |
| 呼び出し元のメモリまたはその他のシステムリソースが不足しています。 | |
| XML ドキュメントが無効です。詳細についてはイベントログを確認してください。詳しくは、VSS におけるイベントとエラーの処理を参照してください。 |
解説(Remarks)
呼び出し元は、SysFreeString を呼び出して pwszName パラメーターが保持するメモリを解放する必要があります。
GetBackupSucceeded メソッドは、選択されたコンポーネントまたはコンポーネントセットのすべてのファイルをバックアップする一連の試行の状態を、VSS_FILE_RESTORE_STATUS 列挙体として返します。
| pbSucceeded | BOOLEAN* | inout | バックアップが成功した場合は true、それ以外の場合は false を受け取る、呼び出し元が割り当てた変数のアドレス。 |
戻り値
このメソッドの有効な戻り値コードは次のとおりです。
| 値 | 意味 |
|---|---|
| 属性値を正常に返しました。 | |
| メソッドが BackupComplete イベントより前に呼び出されたため、バックアップの成否状態は未定義です。 | |
| パラメーター値のいずれかが無効です。 | |
| 呼び出し元のメモリまたはその他のシステムリソースが不足しています。 | |
| XML ドキュメントが無効です。詳細についてはイベントログを確認してください。詳しくは、VSS におけるイベントとエラーの処理を参照してください。 |
解説(Remarks)
このメソッドは BackupComplete イベントより前に呼び出さないでください。イベントハンドラー CVssWriter::OnBackupComplete の実装内で使用することを想定しています。
GetAlternateLocationMappingCount メソッドは、リクエスターがデータの復元時に使用する代替場所マッピングの数を返します。このメソッドはライターまたはリクエスターのいずれからでも呼び出せます。
| pcMappings | DWORD* | inout | 代替場所マッピングの数を受け取る、呼び出し元が割り当てた変数のアドレス。 |
戻り値
このメソッドの有効な戻り値コードは次のとおりです。
| 値 | 意味 |
|---|---|
| 属性値を正常に返しました。 | |
| パラメーター値のいずれかが無効です。 | |
| 呼び出し元のメモリまたはその他のシステムリソースが不足しています。 |
解説(Remarks)
GetAlternateLocationMappingCount が返す代替場所マッピングの数は、現在のコンポーネント内のファイルだけでなく、その選択不可能なサブコンポーネント内のファイルにも起因する場合があります。
代替場所マッピングは復元操作中にのみ使用され、バックアップ操作中にのみ使用される代替パスと混同しないでください。
GetAlternateLocationMappingCount が返す数は、ファイルの復元の過程で使用される代替場所マッピングの数を指します。
この数は IVssBackupComponents::AddAlternativeLocationMapping の呼び出しによって更新されます。
GetAlternateLocationMapping は、ファイル復元のためのファイルセットの代替場所を返すために使用します。このメソッドはライターまたはリクエスターのいずれからでも呼び出せます。
| iMapping | DWORD | in | 特定のマッピングのインデックス。このパラメーターの値は 0 から n-1 までの整数です(n は、現在のコンポーネントに関連付けられた代替場所マッピングの総数)。n の値は IVssComponent::GetAlternateLocationMappingCount によって返されます。 |
| ppFiledesc | IVssWMFiledesc** | out | マッピング情報を格納する IVssWMFiledesc オブジェクトへの二重間接ポインター。 |
戻り値
このメソッドの有効な戻り値コードは次のとおりです。
| 値 | 意味 |
|---|---|
| 属性値を正常に返しました。 | |
| パラメーター値のいずれかが無効です。 | |
| 呼び出し元のメモリまたはその他のシステムリソースが不足しています。 | |
| XML ドキュメントが無効です。詳細についてはイベントログを確認してください。詳しくは、VSS におけるイベントとエラーの処理を参照してください。 | |
| 指定された項目が見つかりませんでした。 |
解説(Remarks)
GetAlternateLocationMapping が返す代替場所マッピングは、現在のコンポーネント内のファイルからだけでなく、その選択不可能なサブコンポーネント内のファイルからも取得される場合があります。
IVssComponent::GetAlternateLocationMapping が返す値は、 IVssExamineWriterMetadata::GetAlternateLocationMapping が返す値とも混同しないでください。
- IVssExamineWriterMetadata::GetAlternateLocationMapping は、必要に応じてファイルの復元先となり得る代替場所マッピングです。
- IVssComponent::GetAlternateLocationMapping は、ファイルが実際に復元された代替場所です。
- (バックアップ時に設定された)復元方法が VSS_RME_RESTORE_TO_ALTERNATE_LOCATION である。
- (復元時に)復元ターゲットが VSS_RT_ALTERNATE に設定された。
次のいずれかに該当する場合、ファイルは代替場所マッピングに復元できます。
- 復元方法が VSS_RME_RESTORE_IF_NOT_THERE であり、ファイルのバージョンがすでにディスク上に存在する。
- 復元方法が VSS_RME_RESTORE_IF_CAN_REPLACE であり、ファイルのバージョンがディスク上に存在し、置き換えできない。
GetAlternateLocationMapping が返すマッピングは、ファイルの復元の過程で使用される代替場所マッピングを指します。
代替場所マッピングは、 IVssBackupComponents::AddAlternativeLocationMapping によって IVssComponent オブジェクトに追加されます。
呼び出し元は、ppMapping パラメーターが指す IVssWMFiledesc オブジェクトの使用を終えたら、IUnknown::Release を呼び出して、そのパラメーターが保持するシステムリソースを解放する必要があります。
VSS におけるバックアップおよび復元のファイルの場所の詳細については、 既定以外のバックアップおよび復元場所を参照してください。
SetBackupMetadata メソッドは、コンポーネントにバックアップメタデータを設定します。
| wszData | LPWSTR | in | バックアップメタデータを含む NULL 終端のワイド文字列。 |
戻り値
このメソッドの有効な戻り値コードは次のとおりです。
| 値 | 意味 |
|---|---|
| 項目を正常に設定しました。 | |
| パラメーター値のいずれかが無効です。 | |
| 呼び出し元のメモリまたはその他のシステムリソースが不足しています。 | |
| このコンポーネントに対して、プライベートメタデータはすでに書き込まれています。 | |
| このメソッドがライターから呼び出されなかったか、またはライターから呼び出された場合でも、バックアップ操作中に呼び出されなかったか、BackupComplete または BackupShutdown イベントの処理中に呼び出されました。 |
解説(Remarks)
SetBackupMetadata は、バックアップ操作を記述するプライベートなライター固有のメタデータを設定します。
その形式は、いかなる VSS メタデータ仕様にも準拠する必要はありません。
GetBackupMetadata メソッドは、PrepareForBackup イベント中に CVssWriter::OnPrepareBackup が IVssComponent::SetBackupMetadata を使用して設定した可能性のある、プライベートなライター固有のバックアップメタデータを取得します。
| pbstrData | LPWSTR* | inout | |
戻り値
このメソッドの有効な戻り値コードは次のとおりです。
| 値 | 意味 |
|---|---|
| 属性値を正常に返しました。 | |
| このコンポーネントに関連付けられたバックアップメタデータはありません。 | |
| パラメーター値のいずれかが無効です。 | |
| 呼び出し元のメモリまたはその他のシステムリソースが不足しています。 | |
| XML ドキュメントが無効です。詳細についてはイベントログを確認してください。詳しくは、VSS におけるイベントとエラーの処理を参照してください。 |
解説(Remarks)
このメソッドは、指定されたライターのロジックに応じて、任意のタイミングで呼び出すことができます。
バックアップメタデータが設定されていない場合、 GetBackupMetadata は S_FALSE を返します。
GetBackupMetadata の呼び出しが成功した場合、呼び出し元は SysFreeString 関数を呼び出して、pbstrMetadata パラメーターで返される文字列を解放する責任があります。
AddPartialFile メソッドは、指定されたファイルの一部分のみをバックアップの対象とすること、およびその部分がどこであるかを示します。
| wszPath | LPWSTR | in | 部分ファイル操作に関係するファイルのパスを含む Null 終端のワイド文字列。 パスには環境変数(たとえば %SystemRoot%)を含めることができますが、ワイルドカード文字を含めることはできません。 パスがバックスラッシュ("")で終わる必要はありません。この情報を取得するアプリケーション側で確認する必要があります。 このパスは、コンポーネント(またはコンポーネントがコンポーネントセットを定義している場合はそのサブコンポーネントの 1 つ)内にすでにあるファイルセットのパスと一致するか、その配下にある必要があります。 |
| wszFilename | LPWSTR | in | 部分ファイル操作に関係するファイルの名前を含む Null 終端のワイド文字列。ファイル名(wszFilename)はワイルドカード文字(* または ?)を含むことができず、ソースパス(wszPath)を含むファイルセットのファイル指定と整合している必要があります。 |
| wszRanges | LPWSTR | in | 部分ファイルサポート範囲(実際にバックアップされるファイルのセクション)を構成するファイルオフセットと長さの一覧、またはそのような一覧を含むファイルの名前のいずれかを含む Null 終端のワイド文字列。 部分ファイルサポート範囲の指定は必須であり、この値を NULL にすることはできません。 |
| wszMetadata | LPWSTR | in | 部分ファイルの復元操作を検証するためにライターが必要とする追加のメタデータを含む Null 終端のワイド文字列。このメタデータ文字列内の情報は、リクエスターにとって不透明です。 追加のメタデータが不要な場合、この値は NULL にできます。 |
戻り値
このメソッドの有効な戻り値コードは次のとおりです。
| 値 | 意味 |
|---|---|
| 項目を正常に設定しました。 | |
| パラメーター値のいずれかが無効です。 | |
| 呼び出し元のメモリまたはその他のシステムリソースが不足しています。 | |
| このメソッドがライターから呼び出されなかったか、またはライターから呼び出された場合でも、復元操作中に呼び出されませんでした。 |
解説(Remarks)
このメソッドを呼び出せるのはライターのみであり、ライターは復元操作中にこのメソッドを呼び出すことはできません。
範囲リスト(wszRanges)の構文は、offset1:length1, offset2:length2 という形式のコンマ区切りリストであり、各オフセットと長さはそれぞれバイトオフセットとバイト単位の長さを指定する 64 ビット整数です。オフセットと長さは、16 進数または 10 進数のいずれかの値で表現できます。
wszRange がすべてのオフセットと長さを含むファイル(範囲ファイル)を参照している場合、wszRange にはそのファイルへのフルパスのみが含まれます。
範囲ファイルは、次の形式のバイナリファイルである必要があります。
- バックアップが必要な個別のファイル範囲の数を示す 64 ビット整数
- 各範囲を 64 ビット整数のペアとして表現したもの。バックアップ対象ファイルへのオフセット(バイト単位)と、そのオフセットからバックアップするデータの長さ
リクエスターは、 IVssComponent::GetPartialFile を使用して部分ファイル情報を取得し、 GetPartialFile が返すオフセットと長さの情報を使用して、復元時にディスク上のファイルのコピー内の適切な場所にバックアップされたセクションを復元できます。
AddPartialFile は、コンポーネント(またはコンポーネントがコンポーネントセットを定義している場合はそのサブコンポーネントの 1 つ)によってすでに管理されているファイルに適用できるほか、新しいファイルをコンポーネントに追加して、それが部分ファイル操作に参加することを示すこともできます。
参加させるファイルが新しいファイルであることを示す場合、そのファイルはシャドウコピーされたボリューム上に存在し、そのパス(wszPath)はコンポーネント(またはコンポーネントがコンポーネントセットを定義している場合はそのサブコンポーネントの 1 つ)内にすでにあるパスと一致するか、その配下にある必要があります。ただし、そのファイルのファイル指定(wszFileSpec)は、コンポーネント内のものと一致してはなりません。
新しく追加されたファイルは、代替場所マッピングをサポートしません。
GetPartialFileCount メソッドは、コンポーネントに関連付けられた部分ファイルの数を返します。
| pcPartialFiles | DWORD* | inout | 部分ファイルの数を受け取る、呼び出し元が割り当てた変数のアドレス。 |
戻り値
このメソッドの有効な戻り値コードは次のとおりです。
| 値 | 意味 |
|---|---|
| 属性値を正常に返しました。 | |
| パラメーター値のいずれかが無効です。 | |
| 呼び出し元のメモリまたはその他のシステムリソースが不足しています。 |
GetPartialFile メソッドは、このコンポーネントに関連付けられた部分ファイルに関する情報を返します。
| iPartialFile | DWORD | in | 部分ファイルのインデックス番号。このパラメーターの値は 0 から n-1 までの整数です(n は、指定されたコンポーネントに関連付けられた部分ファイルの総数)。n の値は IVssComponent::GetPartialFileCount によって返されます。 |
| pbstrPath | LPWSTR* | inout | 部分ファイルのパスを含む文字列へのポインター。 このメソッドの利用者は、このパスがバックスラッシュ("")で終わるかどうかを確認する必要があります。 |
| pbstrFilename | LPWSTR* | inout | 部分ファイルの名前を含む文字列へのポインター。 |
| pbstrRange | LPWSTR* | inout | 部分ファイルサポート範囲(バックアップされたファイルのセクション)を構成するファイルオフセットと長さの一覧、またはそのような一覧を含むファイルの名前のいずれかを含む文字列へのポインター。 |
| pbstrMetadata | LPWSTR* | inout | 部分ファイルの復元操作を検証するためにライターが必要とする追加のメタデータを含む文字列へのポインター。このメタデータ文字列内の情報は、リクエスターにとって不透明です。 追加のメタデータは必須ではないため、pbstrMetadata は空(長さ 0)である場合もあります。 |
戻り値
このメソッドの有効な戻り値コードは次のとおりです。
| 値 | 意味 |
|---|---|
| 属性値を正常に返しました。 | |
| パラメーター値のいずれかが無効です。 | |
| 呼び出し元のメモリまたはその他のシステムリソースが不足しています。 | |
| 呼び出し元が、操作に対して正しい状態(バックアップまたは復元)にありません。 | |
| XML ドキュメントが無効です。詳細についてはイベントログを確認してください。詳しくは、VSS におけるイベントとエラーの処理を参照してください。 | |
| 指定された項目が見つかりませんでした。 |
解説(Remarks)
呼び出し元は、SysFreeString を呼び出して、pbstrPath、pbstrFilename、pbstrRange、pbstrMetadata の各パラメーターが保持するメモリを解放する必要があります。
範囲は、ファイルの残りの部分とは独立してバックアップされる、指定されたファイルの一部分を示します。
範囲リスト(pbstrRanges)の構文は、offset1:length1, offset2:length2 という形式のコンマ区切りリストであり、各オフセットと長さはそれぞれバイトオフセットとバイト単位の長さを指定する 64 ビット整数です。オフセットと長さは、16 進数または 10 進数のいずれかの値で表現できます。
pbstrRanges がすべてのオフセットと長さを含むファイル(範囲ファイル)を参照している場合、pbstrRanges にはそのファイルへのフルパスが含まれている必要があります。
wszRange がすべてのオフセットと長さを含むファイル(範囲ファイル)を参照している場合、wszRange にはそのファイルへのフルパスが含まれている必要があります。
範囲ファイルは、次の形式のバイナリファイルである必要があります。
- バックアップが必要な個別のファイル範囲の数を示す 64 ビット整数。
- 各範囲を 64 ビット整数のペアとして表現したもの。バックアップ対象ファイルへのオフセット(バイト単位)と、そのオフセットからバックアップするデータの長さ。
ただし、範囲ファイルの復元先は、リクエスターによって変更される場合があります。リクエスターは IVssBackupComponents::SetRangesFilePath を使用してこれを示し、pbstrRanges が正しい範囲ファイルを示すようにバックアップコンポーネントドキュメントを更新します。
リクエスターは、 GetPartialFile が返す範囲情報を使用して、復元時にディスク上のファイルのコピー内の適切な場所にバックアップされたセクションを復元します。
IsSelectedForRestore メソッドは、現在のコンポーネントが復元対象として選択されているかどうかを判断します。
| pbSelectedForRestore | BOOLEAN* | inout | コンポーネントが復元対象として選択されている場合は true、それ以外の場合は false を受け取る、呼び出し元が割り当てた変数のアドレス。 |
戻り値
このメソッドの有効な戻り値コードは次のとおりです。
| 値 | 意味 |
|---|---|
| 項目を正常に設定しました。 | |
| パラメーター値のいずれかが無効です。 | |
| 呼び出し元のメモリまたはその他のシステムリソースが不足しています。 | |
| 呼び出し元が、操作に対して正しい状態(バックアップまたは復元)にありません。 |
解説(Remarks)
IsSelectedForRestore はコンポーネントモードでのみ意味を持ちます。
コンポーネントがコンポーネントセットを定義している場合、 IsSelectedForRestore はコンポーネントとそのすべてのサブコンポーネントの両方を指します。
GetAdditionalRestores メソッドは、増分復元または差分復元操作中にライターが使用し、指定されたコンポーネントを完全に取得するために追加の復元操作が必要かどうかを判断します。
| pbAdditionalRestores | BOOLEAN* | inout | 現在のコンポーネントに対して追加の復元が発生する場合は true、それ以外の場合は false を受け取る、呼び出し元が割り当てた変数のアドレス。 |
戻り値
このメソッドの有効な戻り値コードは次のとおりです。
| 値 | 意味 |
|---|---|
| 属性値を正常に返しました。 | |
| 指定された属性には値がありません。 | |
| パラメーター値のいずれかが無効です。 | |
| 呼び出し元のメモリまたはその他のシステムリソースが不足しています。 | |
| XML ドキュメントが無効です。詳細についてはイベントログを確認してください。詳しくは、VSS におけるイベントとエラーの処理を参照してください。 |
解説(Remarks)
GetAdditionalRestores が返す値は、復元操作中にリクエスターが IVssBackupComponents::SetAdditionalRestores を呼び出さない限り、false になります。
GetAdditionalRestores は、コンポーネントを完全に復元するために複数のバックアップセットを使用する必要があるかどうかを確認するために使用します。コンポーネントは、まずフルバックアップからデータを復元して取得され、その後、後続の 1 つ以上の増分バックアップまたは差分バックアップからそのデータが更新されることがあります。
GetAdditionalRestores メソッドは通常、 PostRestore イベントハンドラー(CVssWriter::OnPostRestore)の一部として明示的なリカバリーメカニズムをサポートするライター(たとえば Exchange Server や、SQL Server などのデータベースアプリケーション)によって使用されます。これらのアプリケーションでは、そのようなリカバリーの実行後に、追加の差分、増分、またはログの復元を行うことができないことがよくあります。
したがって、 GetAdditionalRestores がコンポーネントに対して true を返す場合、そのようなライターは明示的なリカバリーメカニズムを実行すべきではなく、追加の差分、増分、またはログの復元が行われることを想定する必要があります。
SetAdditionalRestores が false を返す場合、復元の終了後、 PostRestore イベントの処理時に、ライターはリカバリー操作を完了してオンラインに復帰できます。
GetNewTargetCount メソッドは、指定されたコンポーネントに関連付けられた新しいターゲット復元場所の数を返します。
| pcNewTarget | DWORD* | inout | 新しいターゲット復元場所の数を受け取る、呼び出し元が割り当てた変数のアドレス。 |
戻り値
このメソッドの有効な戻り値コードは次のとおりです。
| 値 | 意味 |
|---|---|
| 属性値を正常に返しました。 | |
| パラメーター値のいずれかが無効です。 | |
| 呼び出し元のメモリまたはその他のシステムリソースが不足しています。 |
GetNewTarget メソッドは、選択されたコンポーネントまたはコンポーネントセットの新しいファイル復元場所を返します。
| iNewTarget | DWORD | in | 新しいターゲットのインデックス番号。このパラメーターの値は 0 から n-1 までの整数です(n は、指定されたコンポーネントに関連付けられた新しいターゲットの総数)。n の値は IVssComponent::GetNewTargetCount によって返されます。 |
| ppFiledesc | IVssWMFiledesc** | out | 新しいターゲット復元場所の情報を格納する IVssWMFiledesc オブジェクトへの二重間接ポインター。 |
戻り値
このメソッドの有効な戻り値コードは次のとおりです。
| 値 | 意味 |
|---|---|
| 属性値を正常に返しました。 | |
| パラメーター値のいずれかが無効です。 | |
| 呼び出し元のメモリまたはその他のシステムリソースが不足しています。 | |
| XML ドキュメントが無効です。詳細についてはイベントログを確認してください。詳しくは、VSS におけるイベントとエラーの処理を参照してください。 | |
| 指定された項目が見つかりませんでした。 |
解説(Remarks)
GetNewTarget が返す新しいターゲットは、現在のコンポーネント内のファイルのものだけでなく、その選択不可能なサブコンポーネント内のファイルのものである場合もあります。
AddDirectedTarget メソッドは、ファイルを復元する際に、そのファイル(ソースファイル)を再マッピングする必要があることを、ライターが復元時に示せるようにします。
| wszSourcePath | LPWSTR | in | 復元時に、復元対象のファイル(ソースファイル)を含むディレクトリへのパスを含む Null 終端のワイド文字列。このパスは、コンポーネント(またはコンポーネントがコンポーネントセットを定義している場合はそのサブコンポーネントの 1 つ)内にすでにあるファイルセットのパスと一致するか、その配下にある必要があります。 |
| wszSourceFilename | LPWSTR | in | 復元時に再マッピングされる(バックアップ時の)ファイル名(ソースファイル)を含む Null 終端のワイド文字列。ファイル名(wszSourceFilename)はワイルドカード文字(* または ?)を含むことができず、ソースパス(wszSourcePath)を含むファイルセットのファイル指定と整合している必要があります。 |
| wszSourceRangeList | LPWSTR | in | ソースファイルサポート範囲(実際に復元されるファイルのセクション)を示すファイルオフセットと長さのコンマ区切りリストを含む Null 終端のワイド文字列。 ソースファイルサポート範囲の数と長さは、宛先ファイルサポート範囲の数とサイズに一致している必要があります。 |
| wszDestinationPath | LPWSTR | in | 復元時にソースファイルのデータが再マッピングされる先のパスを含む Null 終端のワイド文字列。 |
| wszDestinationFilename | LPWSTR | in | 復元時にソースファイルのデータが再マッピングされる先のファイル名を含む Null 終端のワイド文字列。ファイル名(wszDestinationFilename)はワイルドカード文字(* または ?)を含むことができません。 |
| wszDestinationRangeList | LPWSTR | in | 宛先ファイルサポート範囲(ソースファイルのセクションの復元先の場所)を示すファイルオフセットと長さのコンマ区切りリストを含む Null 終端のワイド文字列。 宛先ファイルサポート範囲の数と長さは、ソースファイルサポート範囲の数とサイズに一致している必要があります。 |
戻り値
このメソッドの有効な戻り値コードは次のとおりです。
| 値 | 意味 |
|---|---|
| 項目を正常に設定しました。 | |
| パラメーター値のいずれかが無効です。 | |
| 呼び出し元のメモリまたはその他のシステムリソースが不足しています。 | |
| このメソッドがライターから呼び出されなかったか、またはライターから呼び出された場合でも、復元操作中に呼び出されなかったか、BackupComplete または BackupShutdown イベントの処理中に呼び出されました。 |
解説(Remarks)
AddDirectedTarget を呼び出せるのはライターのみであり、復元操作中に限られます。
リクエスターは、復元ターゲットが VSS_RT_DIRECTED の場合にのみ、バックアップコンポーネントドキュメントに格納されたディレクテッドターゲット情報を使用します。
AddDirectedTarget メソッドは、現在のコンポーネントで管理されている任意のファイル、または、コンポーネントがコンポーネントセットを定義している場合はその選択不可能なサブコンポーネント内の任意のファイルに適用できます。
ソースと宛先のファイル指定は同じファイルを指してもかまいません。これにより、復元時にファイルをそれ自身に再マッピングできます。
範囲リスト(wszSourceRanges および wszDestinationRanges)の構文は、offset1:length1, offset2:length2 という形式のコンマ区切りリストであり、各オフセットと長さはそれぞれバイトオフセットとバイト単位の長さを指定する 64 ビット整数です。オフセットと長さは、16 進数または 10 進数のいずれかの値で表現できます。
エントリの数とそのサイズは、ソースと宛先の範囲引数で一致している必要があります。
AddDirectedTarget は、コンポーネント、またはコンポーネントがコンポーネントセットを定義している場合はそのサブコンポーネントの 1 つによってすでに管理されている任意のファイルをソースファイルとして使用できます。
バックアップ対象の部分ファイル範囲がディレクテッドターゲットのソース範囲と一致する場合、部分ファイルをディレクテッドターゲットとして追加できます( IVssComponent::AddPartialFile を参照)。これにより、復元時に部分ファイルを再マッピングできます。
この場合、リクエスターは IVssComponent::GetDirectedTarget メソッドを呼び出してディレクテッドターゲット情報を取得し、それを使用して復元時にバックアップされたデータの再マッピングを実装します。
GetDirectedTargetCount メソッドは、現在のコンポーネントに関連付けられたディレクテッドターゲット指定の数を返します。このメソッドはライターまたはリクエスターのいずれからでも呼び出せます。
| pcDirectedTarget | DWORD* | inout | ディレクテッドターゲット指定の数を受け取る、呼び出し元が割り当てた変数のアドレス。 |
戻り値
このメソッドの有効な戻り値コードは次のとおりです。
| 値 | 意味 |
|---|---|
| 属性値を正常に返しました。 | |
| パラメーター値のいずれかが無効です。 | |
| 呼び出し元のメモリまたはその他のシステムリソースが不足しています。 |
GetDirectedTarget メソッドは、ファイルを復元する際にそのファイル(ソースファイル)を再マッピングする必要があることを示すために、ライターがバックアップ時にバックアップコンポーネントドキュメントに格納した情報を返します。
| iDirectedTarget | DWORD | in | ディレクテッドターゲットのインデックス番号。このパラメーターの値は 0 から n-1 までの整数です(n は、指定されたコンポーネント(およびコンポーネントセットを定義している場合はそのサブコンポーネント)に関連付けられたディレクテッドターゲットの総数)。n の値は IVssComponent::GetDirectedTargetCount によって返されます。 |
| pbstrSourcePath | LPWSTR* | inout | バックアップ時に、復元対象のファイル(ソースファイル)を含んでいたディレクトリへのパスを含む文字列を受け取る、呼び出し元が割り当てた変数のアドレス。このパスは、コンポーネントまたはそのサブコンポーネントの 1 つ(コンポーネントがコンポーネントセットを定義している場合)内にすでにあるファイルセットのパスと一致するか、その配下にある必要があります。 |
| pbstrSourceFileName | LPWSTR* | inout | 復元時に再マッピングされる(バックアップ時の)ファイル名(ソースファイル)を含む文字列を受け取る、呼び出し元が割り当てた変数のアドレス。このファイル名はワイルドカード文字を含んではならず、ソースパス(pbstrSourcePath)と同じファイルセットのメンバーである必要があります。 |
| pbstrSourceRangeList | LPWSTR* | inout | ソースファイルサポート範囲(復元されるファイルのセクション)を示すファイルオフセットと長さのコンマ区切りリストを含む文字列を受け取る、呼び出し元が割り当てた変数のアドレス。 ソースファイルサポート範囲の数と長さは、宛先ファイルサポート範囲の数とサイズに一致している必要があります。 |
| pbstrDestinationPath | LPWSTR* | inout | 復元時にソースファイルのデータが再マッピングされる先のパスを含む文字列を受け取る、呼び出し元が割り当てた変数のアドレス。 |
| pbstrDestinationFilename | LPWSTR* | inout | 復元時にソースファイルのデータが再マッピングされる先のファイル名を含む文字列を受け取る、呼び出し元が割り当てた変数のアドレス。 |
| pbstrDestinationRangeList | LPWSTR* | inout | 宛先ファイルサポート範囲(ソースファイルのセクションの復元先の場所)を示すファイルオフセットと長さのコンマ区切りリストを含む文字列を受け取る、呼び出し元が割り当てた変数のアドレス。 宛先ファイルサポート範囲の数と長さは、ソースファイルサポート範囲の数とサイズに一致している必要があります。 |
戻り値
このメソッドの有効な戻り値コードは次のとおりです。
| 値 | 意味 |
|---|---|
| 属性値を正常に返しました。 | |
| パラメーター値のいずれかが無効です。 | |
| 呼び出し元のメモリまたはその他のシステムリソースが不足しています。 | |
| XML ドキュメントが無効です。詳細についてはイベントログを確認してください。詳しくは、VSS におけるイベントとエラーの処理を参照してください。 | |
| 指定された項目が見つかりませんでした。 |
解説(Remarks)
GetDirectedTarget の呼び出しが成功した場合、呼び出し元は SysFreeString 関数を呼び出して、返された各文字列を解放する責任があります。
リクエスターは、復元ターゲットが VSS_RT_DIRECTED の場合にのみ、バックアップコンポーネントドキュメントに格納されたディレクテッドターゲット情報を使用します。
範囲リスト(wszSourceRanges および wszDestinationRanges)の構文は、offset1:length1, offset2:length2 という形式のコンマ区切りリストであり、各オフセットと長さはそれぞれバイトオフセットとバイト単位の長さを指定する 64 ビット整数です。オフセットと長さは、16 進数または 10 進数のいずれかの値で表現できます。
GetDirectedTarget がディレクテッドターゲットを返すファイルは、現在のコンポーネントのファイル、またはそれが定義する任意のサブコンポーネントのメンバーである場合があります。
呼び出し元は、SysFreeString を呼び出して、pbstrSourcePath、pbstrSourceFileName、pbstrSourceRangeList、pbstrDestinationPath、pbstrDestinationFilename、pbstrDestinationRangeList の各パラメーターが保持するメモリを解放する必要があります。
バックアップ対象の部分ファイル範囲がディレクテッドターゲットのソース範囲と一致する場合、部分ファイルをディレクテッドターゲットとして追加できます( IVssComponent::AddPartialFile を参照)。これにより、部分ファイルを再マッピングできます。
リクエスターは、復元を正しく実装するために、ディレクテッドターゲットのソースファイルが部分ファイルとしてバックアップされたかどうかを確認する必要があります。そうである場合、リクエスターはディレクテッドターゲット情報を部分ファイル情報(IVssComponent::GetPartialFile)と組み合わせて使用し、復元時にバックアップされたデータの再マッピングを実装します。
SetRestoreMetadata メソッドは、現在のコンポーネントにライター固有のメタデータを設定します。
| wszRestoreMetadata | LPWSTR | in | コンポーネントの復元メタデータを含む、呼び出し元が割り当てた NULL 終端のワイド文字列。 |
戻り値
このメソッドの有効な戻り値コードは次のとおりです。
| 値 | 意味 |
|---|---|
| 項目を正常に設定しました。 | |
| パラメーター値のいずれかが無効です。 | |
| 呼び出し元のメモリまたはその他のシステムリソースが不足しています。 | |
| このコンポーネントに対して、プライベートメタデータはすでに書き込まれています。 | |
| メソッドが、PreRestore イベントを処理するライターのコンテキスト外で呼び出されました。 |
解説(Remarks)
IVssComponent::SetRestoreMetadata は、復元操作中にライターが使用できる、プライベートなライター固有のメタデータを設定します。
その形式は、いかなる VSS メタデータ仕様にも準拠する必要はありません。
GetRestoreMetadata メソッドは、PreRestore イベント中に CVssWriter::OnPreRestore が IVssComponent::SetRestoreMetadata を使用して設定した可能性のある、プライベートなライター固有の復元メタデータを取得します。
| pbstrRestoreMetadata | LPWSTR* | inout | 復元メタデータを含む文字列。 |
戻り値
このメソッドの有効な戻り値コードは次のとおりです。
| 値 | 意味 |
|---|---|
| 属性値を正常に返しました。 | |
| 指定された属性には値がありません。 | |
| パラメーター値のいずれかが無効です。 | |
| 呼び出し元のメモリまたはその他のシステムリソースが不足しています。 | |
| XML ドキュメントが無効です。詳細についてはイベントログを確認してください。詳しくは、VSS におけるイベントとエラーの処理を参照してください。 |
解説(Remarks)
このメソッドは、指定されたライターのロジックに応じて、任意のタイミングで呼び出すことができます。
呼び出し元は、 SysFreeString を呼び出して pbstrRestoreMetadata パラメーターが保持するメモリを解放する必要があります。
バックアップメタデータが設定されていない場合、 GetBackupMetadata は S_FALSE を返します。
ライターが代替場所マッピングを定義せずに復元方法を VSS_RME_RESTORE_TO_ALTERNATE_LOCATION に設定することは、ライターのエラーとなります。
SetRestoreTarget メソッドは、現在のコンポーネントの復元ターゲットを(VSS_RESTORE_TARGET 列挙体の観点から)設定します。
| target | VSS_RESTORE_TARGET | in | 復元ターゲット情報を含む VSS_RESTORE_TARGET の値。 |
戻り値
このメソッドの有効な戻り値コードは次のとおりです。
| 値 | 意味 |
|---|---|
| 項目を正常に設定しました。 | |
| パラメーター値のいずれかが無効です。 | |
| 呼び出し元のメモリまたはその他のシステムリソースが不足しています。 | |
| 呼び出し元が、操作に対して正しい状態(バックアップまたは復元)にありません。 |
解説(Remarks)
SetRestoreTarget によって設定される復元ターゲットは、コンポーネント内のすべてのファイルおよびすべての選択不可能なサブコンポーネントに適用されます。
GetRestoreTarget メソッドは、現在のコンポーネントの復元ターゲットを(VSS_RESTORE_TARGET 列挙体の観点から)返します。
| pTarget | VSS_RESTORE_TARGET* | inout | 復元ターゲットを指定する VSS_RESTORE_TARGET 列挙値を受け取る、呼び出し元が割り当てた変数のアドレス。 |
戻り値
このメソッドの有効な戻り値コードは次のとおりです。
| 値 | 意味 |
|---|---|
| 属性値を正常に返しました。 | |
| パラメーター値のいずれかが無効です。 | |
| 呼び出し元のメモリまたはその他のシステムリソースが不足しています。 | |
| XML ドキュメントが無効です。詳細についてはイベントログを確認してください。詳しくは、VSS におけるイベントとエラーの処理を参照してください。 | |
| 指定された項目が見つかりませんでした。 |
SetPreRestoreFailureMsg メソッドは、PreRestore イベントの処理における失敗を記述するメッセージを作成するために使用します。
| wszPreRestoreFailureMsg | LPWSTR | in | PreRestore イベントの処理中に発生したエラーを記述する失敗メッセージを含む、呼び出し元が割り当てた NULL 終端のワイド文字列。 |
戻り値
このメソッドの有効な戻り値コードは次のとおりです。
| 値 | 意味 |
|---|---|
| 失敗メッセージを正常に設定しました。 | |
| パラメーター値のいずれかが無効です。 | |
| 呼び出し元のメモリまたはその他のシステムリソースが不足しています。 | |
| 呼び出し元が、操作に対して正しい状態(バックアップまたは復元)にありません。 |
解説(Remarks)
SetPreRestoreFailureMsg によって設定される失敗メッセージは、コンポーネント内のすべてのファイルおよびすべての選択不可能なサブコンポーネントに適用されます。
GetPreRestoreFailureMsg メソッドは、IVssComponent::SetPreRestoreFailureMsg が設定していた場合に、PreRestore イベントの処理中にライターが生成したエラーメッセージを取得します。
| pbstrPreRestoreFailureMsg | LPWSTR* | inout | PreRestore イベントの処理中に発生したエラーを記述する失敗メッセージを含む文字列。 |
戻り値
このメソッドの有効な戻り値コードは次のとおりです。
| 値 | 意味 |
|---|---|
| 属性値を正常に返しました。 | |
| 取得できる PreRestore の失敗メッセージがありませんでした。 | |
| パラメーター値のいずれかが無効です。 | |
| 呼び出し元のメモリまたはその他のシステムリソースが不足しています。 | |
| XML ドキュメントが無効です。詳細についてはイベントログを確認してください。詳しくは、VSS におけるイベントとエラーの処理を参照してください。 |
解説(Remarks)
呼び出し元は、SysFreeString を呼び出して pbstrPreRestoreFailureMsg パラメーターが保持するメモリを解放する必要があります。
SetPreRestoreFailureMsg を使用して PreRestore の失敗メッセージが設定されていなかった場合、 GetPreRestoreFailureMsg は S_FALSE を返します。
SetPostRestoreFailureMsg メソッドは、PostRestore イベントの処理における失敗を記述するメッセージを作成するために使用します。
| wszPostRestoreFailureMsg | LPWSTR | in | PostRestore イベントの処理中に発生したエラーを記述する失敗メッセージを含む、呼び出し元が割り当てた NULL 終端のワイド文字列。 |
戻り値
このメソッドの有効な戻り値コードは次のとおりです。
| 値 | 意味 |
|---|---|
| 失敗メッセージを正常に設定しました。 | |
| パラメーター値のいずれかが無効です。 | |
| 呼び出し元のメモリまたはその他のシステムリソースが不足しています。 | |
| 呼び出し元が、操作に対して正しい状態(バックアップまたは復元)にありません。 |
解説(Remarks)
SetPostRestoreFailureMsg によって設定される失敗メッセージは、コンポーネント内のすべてのファイルおよびすべての選択不可能なサブコンポーネントに適用されます。
GetPostRestoreFailureMsg メソッドは、IVssComponent::SetPostRestoreFailureMsg が設定していた場合に、PostRestore イベントの処理中にライターが生成した失敗メッセージを返します。
| pbstrPostRestoreFailureMsg | LPWSTR* | inout | PostRestore イベントの処理中に発生したエラーを記述する失敗メッセージを含む文字列へのポインター。 |
戻り値
このメソッドの有効な戻り値コードは次のとおりです。
| 値 | 意味 |
|---|---|
| 属性値を正常に返しました。 | |
| 取得できる PostRestore の失敗メッセージがありませんでした。 | |
| パラメーター値のいずれかが無効です。 | |
| 呼び出し元のメモリまたはその他のシステムリソースが不足しています。 | |
| XML ドキュメントが無効です。詳細についてはイベントログを確認してください。詳しくは、VSS におけるイベントとエラーの処理を参照してください。 |
解説(Remarks)
呼び出し元は、SysFreeString を呼び出して pbstrPostRestoreFailureMsg パラメーターが保持するメモリを解放する必要があります。
SetPostRestoreFailureMsg を使用して PostRestore の失敗メッセージが設定されていなかった場合、 GetPreRestoreFailureMsg は S_FALSE を返します。
SetBackupStamp メソッドは、バックアップがいつ実行されたかを示す情報を含む文字列を設定します。
| wszBackupStamp | LPWSTR | in | バックアップがいつ実行されたかを示す Null 終端のワイド文字列情報。 |
戻り値
このメソッドの有効な戻り値コードは次のとおりです。
| 値 | 意味 |
|---|---|
| バックアップのタイムスタンプを正常に設定しました。 | |
| パラメーター値のいずれかが無効です。 | |
| 呼び出し元のメモリまたはその他のシステムリソースが不足しています。 | |
| このメソッドがライターから呼び出されなかったか、またはライターから呼び出された場合でも、バックアップ操作中に呼び出されなかったか、BackupComplete または BackupShutdown イベントの処理中に呼び出されました。 |
解説(Remarks)
バックアップスタンプの詳細については、複雑なストアのバックアップにおけるライターの役割を参照してください。
SetBackupStamp によって設定されるバックアップスタンプは、コンポーネント内のすべてのファイルおよびそれが持つすべての選択不可能なサブコンポーネントに適用されます。
ライターは通常、 CVssWriter::OnPostSnapshot 内で PostSnapshot イベントを処理する際に SetBackupStamp を呼び出します。
リクエスターは、バックアップスタンプをバックアップコンポーネントドキュメントに格納するだけです。バックアップスタンプを直接使用したり、その解釈方法を知っている必要はありません。
リクエスターがバックアップスタンプを使用するのは、復元操作中に、 IVssBackupComponents::SetPreviousBackupStamp メソッドを使用して、格納されたタイムスタンプ文字列をライターが利用できるようにする場合のみです。
このため、バックアップスタンプの内容に形式上の制約はありません。時刻や日付の情報、論理シーケンス番号、または同じクラスのライターが最後のバックアップがいつ実行されたかを判断できるその他の情報を含めることができます。
GetBackupStamp メソッドは、指定されたコンポーネントに対してライターが格納したバックアップスタンプ文字列を返します。
| pbstrBackupStamp | LPWSTR* | inout | コンポーネントがバックアップされた時刻を示すバックアップスタンプを含む文字列を受け取る、呼び出し元が割り当てた変数のアドレス。 |
戻り値
このメソッドの有効な戻り値コードは次のとおりです。
| 値 | 意味 |
|---|---|
| 属性値を正常に返しました。 | |
| このコンポーネントに関連付けられたタイムスタンプはありません。 | |
| パラメーター値のいずれかが無効です。 | |
| 呼び出し元のメモリまたはその他のシステムリソースが不足しています。 | |
| XML ドキュメントが無効です。詳細についてはイベントログを確認してください。詳しくは、VSS におけるイベントとエラーの処理を参照してください。 |
解説(Remarks)
バックアップタイムスタンプが設定されていない場合、 GetBackupStamp は S_FALSE を返します。
GetBackupStamp の呼び出しが成功した場合、呼び出し元は SysFreeString 関数を呼び出して、pbstrBackupStamp パラメーターで返される文字列を解放する責任があります。
返される文字列は、コンポーネント内のすべてのファイルおよびそれが持つすべての選択不可能なサブコンポーネントを指します。
GetBackupStamp が取得するバックアップスタンプは、通常、PostSnapshot イベントハンドラー CVssWriter::OnPostSnapshot 内から IVssComponent::SetBackupStamp を呼び出してライターが設定します。
リクエスターは、バックアップスタンプをバックアップコンポーネントドキュメントに格納するだけです。バックアップスタンプを直接使用したり、その生成方法を知っていたり、その形式を理解していたりする必要はありません。
GetPreviousBackupStamp メソッドは、リクエスターがバックアップコンポーネントドキュメントに読み込んだ以前のバックアップスタンプを返します。この値は、ファイルを差分または増分バックアップ操作に参加させるべきかどうかをライターが判断する際に使用されます。
| pbstrBackupStamp | LPWSTR* | inout | 差分または増分バックアップを正しく実装できるように、以前のバックアップのタイムスタンプを含む文字列へのポインター。 |
戻り値
このメソッドの有効な戻り値コードは次のとおりです。
| 値 | 意味 |
|---|---|
| 属性値を正常に返しました。 | |
| 以前のバックアップタイムスタンプが設定されていません。 | |
| パラメーター値のいずれかが無効です。 | |
| 呼び出し元のメモリまたはその他のシステムリソースが不足しています。 | |
| XML ドキュメントが無効です。詳細についてはイベントログを確認してください。詳しくは、VSS におけるイベントとエラーの処理を参照してください。 |
解説(Remarks)
バックアップスタンプの詳細については、複雑なストアのバックアップにおけるライターの役割および 複雑なストアのバックアップにおけるリクエスターの役割を参照してください。
呼び出し元は、SysFreeString を呼び出して pbstrBackupStamp パラメーターが保持するメモリを解放する必要があります。
以前のバックアップタイムスタンプがない場合、 GetPreviousBackupStamp は S_FALSE を返します。
返される文字列は、コンポーネント内のすべてのファイルおよびそれが持つすべての選択不可能なサブコンポーネントを指します。
GetPreviousBackupStamp が取得するバックアップスタンプは、リクエスターが IVssBackupComponents::SetPreviousBackupStamp を使用して設定します。
通常、 GetPreviousBackupStamp で見つかる値の設定に使用された文字列は、格納されたバックアップコンポーネントドキュメントから取得されたか、リクエスターが独自の内部レコードの一部として格納したものです。
GetBackupOptions メソッドは、リクエスターが IVssBackupComponents::SetBackupOptions を使用して、現在選択されているコンポーネントまたはコンポーネントセットを管理するライターに指定したバックアップオプションを返します。
| pbstrBackupOptions | LPWSTR* | inout | 現在のライターのバックアップオプションを含む文字列を受け取る、呼び出し元が割り当てた変数のアドレス。 |
戻り値
このメソッドの有効な戻り値コードは次のとおりです。
| 値 | 意味 |
|---|---|
| 属性値を正常に返しました。 | |
| このコンポーネントにはバックアップオプションが指定されていません。 | |
| パラメーター値のいずれかが無効です。 | |
| 呼び出し元のメモリまたはその他のシステムリソースが不足しています。 | |
| XML ドキュメントが無効です。詳細についてはイベントログを確認してください。詳しくは、VSS におけるイベントとエラーの処理を参照してください。 |
解説(Remarks)
バックアップオプションが設定されていない場合、S_FALSE が返されます。
GetBackupOptions の呼び出しが成功した場合、呼び出し元は SysFreeString 関数を呼び出して、pbstrBackupOptions パラメーターで返される文字列を解放する責任があります。
GetRestoreOptions メソッドは、リクエスターが IVssBackupComponents::SetRestoreOptions を使用して現在のライターに指定した復元オプションを取得します。
| pbstrRestoreOptions | LPWSTR* | inout | ライターの復元オプションを含む文字列。 |
戻り値
このメソッドの有効な戻り値コードは次のとおりです。
| 値 | 意味 |
|---|---|
| 属性値を正常に返しました。 | |
| 復元オプションが指定されていません。 | |
| パラメーター値のいずれかが無効です。 | |
| 呼び出し元のメモリまたはその他のシステムリソースが不足しています。 | |
| XML ドキュメントが無効です。詳細についてはイベントログを確認してください。詳しくは、VSS におけるイベントとエラーの処理を参照してください。 |
解説(Remarks)
呼び出し元は、SysFreeString を呼び出して pbstrRestoreOptions パラメーターが保持するメモリを解放する必要があります。
復元オプションが設定されていない場合、S_FALSE が返されます。
GetRestoreSubcomponentCount メソッドは、コンポーネントに関連付けられたサブコンポーネントの数を返します。
| pcRestoreSubcomponent | DWORD* | inout | コンポーネントに関連付けられたサブコンポーネントの数を受け取る、呼び出し元が割り当てた変数のアドレス。 |
戻り値
このメソッドの有効な戻り値コードは次のとおりです。
| 値 | 意味 |
|---|---|
| 属性値を正常に返しました。 | |
| パラメーター値のいずれかが無効です。 | |
| 呼び出し元のメモリまたはその他のシステムリソースが不足しています。 |
GetRestoreSubcomponent メソッドは、指定されたコンポーネントに関連付けられた、指定のサブコンポーネントを返します。
| iComponent | DWORD | in | サブコンポーネントのインデックス。このパラメーターの値は 0 から n-1 までの整数です(n は、指定されたコンポーネントに関連付けられたサブコンポーネントの総数)。n の値は IVssComponent::GetRestoreSubcomponentCount によって返されます。 |
| pbstrLogicalPath | LPWSTR* | inout | サブコンポーネントの論理パスを含む文字列へのポインター。サブコンポーネントを扱う場合、論理パスを空にすることはできません。 |
| pbstrComponentName | LPWSTR* | inout | サブコンポーネントの名前を含む文字列へのポインター。この文字列を空にすることはできません。 |
| pbRepair | BOOLEAN* | inout | 将来使用するために予約されています。 |
戻り値
このメソッドの有効な戻り値コードは次のとおりです。
| 値 | 意味 |
|---|---|
| 属性値を正常に返しました。 | |
| パラメーター値のいずれかが無効です。 | |
| 呼び出し元のメモリまたはその他のシステムリソースが不足しています。 | |
| XML ドキュメントが無効です。詳細についてはイベントログを確認してください。詳しくは、VSS におけるイベントとエラーの処理を参照してください。 | |
| 指定された項目が見つかりませんでした。 |
解説(Remarks)
呼び出し元は、SysFreeString を呼び出して、pbstrLogicalPath および pbstrComponentName の各パラメーターが保持するメモリを解放する必要があります。
GetFileRestoreStatus メソッドは、選択されたコンポーネントまたはコンポーネントセットのすべてのファイルを復元する完了した試行の状態を、VSS_FILE_RESTORE_STATUS 列挙体として返します。
| pStatus | VSS_FILE_RESTORE_STATUS* | inout | すべてのファイルが正常に復元されたかどうかを指定する VSS_FILE_RESTORE_STATUS 列挙値を受け取る、呼び出し元が割り当てた変数のアドレス。 |
戻り値
このメソッドの有効な戻り値コードは次のとおりです。
| 値 | 意味 |
|---|---|
| 属性値を正常に返しました。 | |
| パラメーター値のいずれかが無効です。 | |
| 呼び出し元のメモリまたはその他のシステムリソースが不足しています。 | |
| メソッドが復元操作の一部として呼び出されませんでした。 | |
| XML ドキュメントが無効です。詳細についてはイベントログを確認してください。詳しくは、VSS におけるイベントとエラーの処理を参照してください。 |
解説(Remarks)
このメソッドは、 PostRestore イベントの後にのみ呼び出す必要があります。
このメソッドが、 IVssBackupComponents::AddComponent によってバックアップコンポーネントに追加されて復元対象として選択されていないコンポーネントに適用された場合、返される状態は未定義です。
ファイルセット(指定された 1 つまたは複数のファイル)を、ファイル全体を使用するタイムスタンプ付きの増分または差分バックアップに含めるために、最終更新タイムスタンプと照合して評価すべきであることを、ライターが示すために使用します。
| wszPath | LPWSTR | in | マッピングするファイルを含むディレクトリまたはディレクトリ階層の名前を含む Null 終端のワイド文字列。 パスには環境変数(たとえば %SystemRoot%)を含めることができますが、ワイルドカード文字を含めることはできません。 パスがバックスラッシュ("")で終わる必要はありません。この情報を取得するアプリケーション側で確認する必要があります。 |
| wszFilespec | LPWSTR | in | マッピングするファイルのファイル指定を含む Null 終端のワイド文字列。 ファイル指定にはディレクトリ指定(たとえばバックスラッシュ)を含めることはできませんが、? および * のワイルドカード文字を含めることができます。 |
| bRecursive | BOOL | in | wszPath パラメーターで指定されたパスが単一のディレクトリのみを識別するか、または再帰的にたどるディレクトリの階層を示すかを指定するブール値。パスを再帰的にたどるディレクトリの階層として扱う場合はこのパラメーターを true に、そうでない場合は false に設定する必要があります。 マウントされたフォルダーのたどり方については、 マウントされたフォルダーと再解析ポイントの操作を参照してください。 |
| ftLastModifyTime | FILETIME | in | 差分ファイルの最終更新時刻のライターによる指定。 FILETIME 構造体として表現されます。 最終更新時刻は常にグリニッジ標準時で与えられます。 |
戻り値
このメソッドの有効な戻り値コードは次のとおりです。
| 値 | 意味 |
|---|---|
| 差分ファイルを正常に追加しました。 | |
| パラメーター値のいずれかが無効です。 | |
| 呼び出し元のメモリまたはその他のシステムリソースが不足しています。 | |
| このメソッドがライターから呼び出されなかったか、またはライターから呼び出された場合でも、バックアップ操作中に呼び出されなかったか、BackupComplete または BackupShutdown イベントの処理中に呼び出されました。 | |
| XML ドキュメントが無効です。詳細についてはイベントログを確認してください。詳しくは、VSS におけるイベントとエラーの処理を参照してください。 | |
|
予期しないエラーです。エラーコードはエラーログファイルに記録されます。詳しくは、VSS におけるイベントとエラーの処理を参照してください。
Windows Server 2008、Windows Vista、Windows Server 2003、Windows XP:この値は Windows Server 2008 R2 および Windows 7 まではサポートされていません。代わりに E_UNEXPECTED が使用されます。 |
解説(Remarks)
ライターは、コンポーネント内の特定のファイルを、一定の時刻以降に変更された場合にのみバックアップすべきであることを指定するために、このメソッドを呼び出します。詳細については、最終更新時刻によるバックアップを参照してください。
このメソッドは、最終更新スキーマ (VSS_BS_LAST_MODIFY)をサポートするライターのみが、バックアップ操作中にのみ呼び出すことができます。このメソッドを使用するライターは、タイムスタンプスキーマ(VSS_BS_TIMESTAMPED)をサポートする必要はありません。
AddDifferencedFilesByLastModifyTime によって追加されるファイルは、 IVssComponent::AddPartialFile によっても追加すべきではありません。
バックアップの種類(VSS_BACKUP_TYPE)が増分(VSS_BT_INCREMENTAL)の場合、 AddDifferencedFilesByLastModifyTime を使用するライターは、増分スキーマ(VSS_BS_INCREMENTAL)をサポートする必要があります。バックアップの種類が差分の場合、ライターは VSS_BS_DIFFERENTIAL スキーマをサポートする必要があります。
AddDifferencedFilesByLastModifyTime メソッドは、バックアップ操作の実際の開始前に、通常は PostSnapshot イベントの処理中に呼び出す必要があります( CVssWriter::OnPostSnapshot を参照)。
AddDifferencedFilesByLastModifyTime によって設定されたタイムスタンプ値が 0 以外の場合、リクエスターは、差分ファイルを差分または増分バックアップに含めるべきかどうかを判断する際に、自身のレコードやファイルシステム情報にかかわらず、この値を尊重する必要があります。
AddDifferencedFilesByLastModifyTime によって設定されたタイムスタンプ(ftLastModifyTime)が 0 の場合、リクエスターは、差分ファイルを差分または増分バックアップに含めるべきかどうかを判断するために、ファイルシステム情報と自身のレコードを使用できます。
リクエスターは、 IVssComponent::GetDifferencedFile を呼び出して、コンポーネントが管理する差分ファイルの数を取得します。
差分ファイルセットは、次のいずれかになります。
- 現在のコンポーネント、または(コンポーネントがコンポーネントセットを定義している場合は)そのサブコンポーネントのメンバー
- コンポーネントまたはサブコンポーネントにこれまで含まれていなかった新しいファイル。 AddDifferencedFilesByLastModifyTime メソッドを使用すると、ライターは、元のバックアップ以降に作成されたファイルを、増分または差分バックアップをサポートするためにコンポーネントに含めるべきであることを示せます。
コンポーネントに新しいファイルを追加する場合、 AddDifferencedFilesByLastModifyTime では、ライターは別のコンポーネントやライターが管理するファイルを追加すべきではありません。
IVssComponent インターフェイスには、 AddDifferencedFilesByLastModifyTime によって追加された新しいファイルの代替場所マッピングを変更または追加できるメソッドはありません。 新しいファイルに対応する代替場所マッピングがある場合は、その代替場所が使用されます。
サポートされていません。(IVssComponent.AddDifferencedFilesByLastModifyLSN)
| wszPath | LPWSTR | in | このパラメーターはシステムで使用するために予約されています。 |
| wszFilespec | LPWSTR | in | このパラメーターはシステムで使用するために予約されています。 |
| bRecursive | BOOL | in | このパラメーターはシステムで使用するために予約されています。 |
| bstrLsnString | LPWSTR | in | このパラメーターはシステムで使用するために予約されています。 |
戻り値
このメソッドは値を返しません。
このコンポーネント(および、それが定義するコンポーネントセットの任意のサブコンポーネント)内で、増分バックアップまたは復元をサポートするライターによって差分ファイルとしてマークされたファイル指定の数を返します。
| pcDifferencedFiles | DWORD* | inout | 差分ファイル指定の数を受け取る、呼び出し元が割り当てた変数のアドレス。 |
戻り値
このメソッドの有効な戻り値コードは次のとおりです。
| 値 | 意味 |
|---|---|
| 属性値を正常に返しました。 | |
| パラメーター値のいずれかが無効です。 | |
| 呼び出し元のメモリまたはその他のシステムリソースが不足しています。 |
GetDifferencedFile メソッドは、差分ファイルとして増分または差分のバックアップまたは復元に参加させるファイルセット(指定された 1 つまたは複数のファイル)に関する情報を返します。つまり、それに関連するバックアップと復元は、(部分ファイルを使用するのではなく)ファイル全体がバックアップメディアとの間でコピーされるかのように実装されます。
| iDifferencedFile | DWORD | in | 調査する差分ファイルのインデックス番号。このパラメーターの値は 0 から n-1 までの整数です(n は、指定されたコンポーネント(およびコンポーネントセットを定義している場合はそのサブコンポーネント)に関連付けられた差分ファイルの総数)。n の値は IVssComponent::GetDifferencedFilesCount によって返されます。 |
| pbstrPath | LPWSTR* | inout | 差分ファイルへのパスを含む文字列を受け取る、呼び出し元が割り当てた変数のアドレス。 このメソッドの利用者は、このパスがバックスラッシュ(\)で終わるかどうかを確認する必要があります。 |
| pbstrFilespec | LPWSTR* | inout | 差分ファイルのファイル指定を含む文字列を受け取る、呼び出し元が割り当てた変数のアドレス。 |
| pbRecursive | BOOL* | inout | 差分ファイルのファイル指定を再帰的に解釈すべきかどうかを指定するブール値を受け取る、呼び出し元が割り当てた変数のアドレス。TRUE の場合、増分または差分バックアップ中に差分ファイルとして扱うファイルを見つけるために、ファイル指定 pbstrFilespec に一致するファイルをディレクトリ階層全体で検索する必要があります。FALSE の場合、ルートディレクトリのみを検索する必要があります。 |
| pbstrLsnString | LPWSTR* | inout | 将来使用するために予約されています。 |
| pftLastModifyTime | FILETIME* | inout | 差分ファイルの最終更新時刻のライターによる指定を受け取る、呼び出し元が割り当てた変数のアドレス。 FILETIME 構造体として表現されます。 |
戻り値
このメソッドの有効な戻り値コードは次のとおりです。
| 値 | 意味 |
|---|---|
| 属性値を正常に返しました。 | |
| パラメーター値のいずれかが無効です。 | |
| 呼び出し元のメモリまたはその他のシステムリソースが不足しています。 | |
| 指定されたインデックスに対応する差分ファイルが見つかりませんでした。 | |
| XML ドキュメントが無効です。詳細についてはイベントログを確認してください。詳しくは、VSS におけるイベントとエラーの処理を参照してください。 |
解説(Remarks)
GetDifferencedFile は、バックアップまたは復元操作中に、リクエスターまたはライターから呼び出せます。
GetDifferencedFile の呼び出しが成功した場合、呼び出し元は SysFreeString 関数を呼び出して、pbstrPath および pbstrFilespec パラメーターで返される文字列を解放する責任があります。
ライターは、ファイルの実際のバックアップより前の任意のタイミング、通常は PostSnapshot イベント(CVssWriter::OnPostSnapshot)の処理中に、 IVssComponent::AddDifferencedFilesByLastModifyTime の呼び出しによって差分ファイルを示すことができます。そのため、バックアップ中は、 IVssBackupComponents::DoSnapshotSet が正常に返る前に GetDifferencedFile を呼び出しても有用ではありません。
GetDifferencedFile が返すタイムスタンプは、返されたパス(pbstrPath)およびファイル指定(pbstrFilespec)に一致するすべてのファイルに適用されます。
GetDifferencedFile が返すタイムスタンプ値(pftLastModifyTime)が 0 以外の場合、リクエスターは、差分ファイルを差分または増分バックアップに含めるべきかどうかを判断するために、自身のレコードやファイルシステム情報にかかわらずこの値を尊重し、それを使用する必要があります。
GetDifferencedFile が返すタイムスタンプが 0 の場合、リクエスターは、差分ファイルを差分または増分バックアップに含めるべきかどうかを判断するために、ファイルシステム情報と自身のレコードを使用できます。
差分ファイルは、次のいずれかになります。
- 現在のコンポーネントのメンバー、または、コンポーネントがコンポーネントセットを定義している場合は、 IVssCreateWriterMetadata::AddFilesToFileGroup、 IVssCreateWriterMetadata::AddDatabaseFiles、または IVssCreateWriterMetadata::AddDatabaseLogFiles を使用してコンポーネントに追加された、そのサブコンポーネントのメンバー
- IVssComponent::AddDifferencedFilesByLastModifyTime によってコンポーネントに追加された新しいファイル
GetDifferencedFile が差分の新しいファイルを返す場合、そのファイルのパス(pbstrPath)は、コンポーネント、またはそのサブコンポーネントの 1 つ(コンポーネントがコンポーネントセットを定義している場合)内にすでにあるパスと一致するか、その配下にある必要があります。
さらに、 GetDifferencedFile が返すファイルは、コンポーネントまたはライターによってすでに管理されているものであってはなりません。
これらの基準のいずれかに違反する場合、それはライター側のエラーであり、報告される必要があります。
IVssComponent インターフェイスには、 GetDifferencedFilesByLastModifyTime が返す新しいファイルの代替場所マッピングを変更または追加できるメソッドはありません。新しいファイルに対応する代替場所マッピングがある場合は、その代替場所が使用されます。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp)
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
#define global IID_IVssComponent "{D2C72C96-C121-4518-B627-E5A93D010EAD}" #usecom global IVssComponent IID_IVssComponent "{}" #comfunc global IVssComponent_GetLogicalPath 3 var #comfunc global IVssComponent_GetComponentType 4 var #comfunc global IVssComponent_GetComponentName 5 var #comfunc global IVssComponent_GetBackupSucceeded 6 var #comfunc global IVssComponent_GetAlternateLocationMappingCount 7 var #comfunc global IVssComponent_GetAlternateLocationMapping 8 int,sptr #comfunc global IVssComponent_SetBackupMetadata 9 wstr #comfunc global IVssComponent_GetBackupMetadata 10 var #comfunc global IVssComponent_AddPartialFile 11 wstr,wstr,wstr,wstr #comfunc global IVssComponent_GetPartialFileCount 12 var #comfunc global IVssComponent_GetPartialFile 13 int,var,var,var,var #comfunc global IVssComponent_IsSelectedForRestore 14 var #comfunc global IVssComponent_GetAdditionalRestores 15 var #comfunc global IVssComponent_GetNewTargetCount 16 var #comfunc global IVssComponent_GetNewTarget 17 int,sptr #comfunc global IVssComponent_AddDirectedTarget 18 wstr,wstr,wstr,wstr,wstr,wstr #comfunc global IVssComponent_GetDirectedTargetCount 19 var #comfunc global IVssComponent_GetDirectedTarget 20 int,var,var,var,var,var,var #comfunc global IVssComponent_SetRestoreMetadata 21 wstr #comfunc global IVssComponent_GetRestoreMetadata 22 var #comfunc global IVssComponent_SetRestoreTarget 23 int #comfunc global IVssComponent_GetRestoreTarget 24 var #comfunc global IVssComponent_SetPreRestoreFailureMsg 25 wstr #comfunc global IVssComponent_GetPreRestoreFailureMsg 26 var #comfunc global IVssComponent_SetPostRestoreFailureMsg 27 wstr #comfunc global IVssComponent_GetPostRestoreFailureMsg 28 var #comfunc global IVssComponent_SetBackupStamp 29 wstr #comfunc global IVssComponent_GetBackupStamp 30 var #comfunc global IVssComponent_GetPreviousBackupStamp 31 var #comfunc global IVssComponent_GetBackupOptions 32 var #comfunc global IVssComponent_GetRestoreOptions 33 var #comfunc global IVssComponent_GetRestoreSubcomponentCount 34 var #comfunc global IVssComponent_GetRestoreSubcomponent 35 int,var,var,var #comfunc global IVssComponent_GetFileRestoreStatus 36 var #comfunc global IVssComponent_AddDifferencedFilesByLastModifyTime 37 wstr,wstr,int,int #comfunc global IVssComponent_AddDifferencedFilesByLastModifyLSN 38 wstr,wstr,int,wstr #comfunc global IVssComponent_GetDifferencedFilesCount 39 var #comfunc global IVssComponent_GetDifferencedFile 40 int,var,var,var,var,var ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。#define global IID_IVssComponent "{D2C72C96-C121-4518-B627-E5A93D010EAD}" #usecom global IVssComponent IID_IVssComponent "{}" #comfunc global IVssComponent_GetLogicalPath 3 sptr #comfunc global IVssComponent_GetComponentType 4 sptr #comfunc global IVssComponent_GetComponentName 5 sptr #comfunc global IVssComponent_GetBackupSucceeded 6 sptr #comfunc global IVssComponent_GetAlternateLocationMappingCount 7 sptr #comfunc global IVssComponent_GetAlternateLocationMapping 8 int,sptr #comfunc global IVssComponent_SetBackupMetadata 9 wstr #comfunc global IVssComponent_GetBackupMetadata 10 sptr #comfunc global IVssComponent_AddPartialFile 11 wstr,wstr,wstr,wstr #comfunc global IVssComponent_GetPartialFileCount 12 sptr #comfunc global IVssComponent_GetPartialFile 13 int,sptr,sptr,sptr,sptr #comfunc global IVssComponent_IsSelectedForRestore 14 sptr #comfunc global IVssComponent_GetAdditionalRestores 15 sptr #comfunc global IVssComponent_GetNewTargetCount 16 sptr #comfunc global IVssComponent_GetNewTarget 17 int,sptr #comfunc global IVssComponent_AddDirectedTarget 18 wstr,wstr,wstr,wstr,wstr,wstr #comfunc global IVssComponent_GetDirectedTargetCount 19 sptr #comfunc global IVssComponent_GetDirectedTarget 20 int,sptr,sptr,sptr,sptr,sptr,sptr #comfunc global IVssComponent_SetRestoreMetadata 21 wstr #comfunc global IVssComponent_GetRestoreMetadata 22 sptr #comfunc global IVssComponent_SetRestoreTarget 23 int #comfunc global IVssComponent_GetRestoreTarget 24 sptr #comfunc global IVssComponent_SetPreRestoreFailureMsg 25 wstr #comfunc global IVssComponent_GetPreRestoreFailureMsg 26 sptr #comfunc global IVssComponent_SetPostRestoreFailureMsg 27 wstr #comfunc global IVssComponent_GetPostRestoreFailureMsg 28 sptr #comfunc global IVssComponent_SetBackupStamp 29 wstr #comfunc global IVssComponent_GetBackupStamp 30 sptr #comfunc global IVssComponent_GetPreviousBackupStamp 31 sptr #comfunc global IVssComponent_GetBackupOptions 32 sptr #comfunc global IVssComponent_GetRestoreOptions 33 sptr #comfunc global IVssComponent_GetRestoreSubcomponentCount 34 sptr #comfunc global IVssComponent_GetRestoreSubcomponent 35 int,sptr,sptr,sptr #comfunc global IVssComponent_GetFileRestoreStatus 36 sptr #comfunc global IVssComponent_AddDifferencedFilesByLastModifyTime 37 wstr,wstr,int,int #comfunc global IVssComponent_AddDifferencedFilesByLastModifyLSN 38 wstr,wstr,int,wstr #comfunc global IVssComponent_GetDifferencedFilesCount 39 sptr #comfunc global IVssComponent_GetDifferencedFile 40 int,sptr,sptr,sptr,sptr,sptr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。