IVssComponent::GetDifferencedFile メソッド (vswriter.h)
GetDifferencedFile メソッドは、増分または差分バックアップまたは差分バックアップまたは復元に参加するファイル セット (指定されたファイル) に関する情報を、差分ファイルとして返します。つまり、ファイルに関連付けられているバックアップと復元は、ファイル全体が (部分ファイルを使用するのではなく) バックアップ メディアとの間でコピーされるかのように実装されます。
このメソッドは、バックアップ操作または復元操作中にリクエスターまたはライターによって呼び出すことができます。
構文
HRESULT GetDifferencedFile(
[in] UINT iDifferencedFile,
[out] BSTR *pbstrPath,
[out] BSTR *pbstrFilespec,
[out] BOOL *pbRecursive,
[out] BSTR *pbstrLsnString,
[out] FILETIME *pftLastModifyTime
);
パラメーター
[in] iDifferencedFile
調べる相違ファイルのインデックス番号。 このパラメーターの値は、0 から n から 1 までの整数です。 n は、特定のコンポーネントに関連付けられた差分ファイルの合計数です (コンポーネント セットを定義する場合はサブコンポーネント)。 n の値は、IVssComponent::GetDifferencedFilesCount によって返されます。
[out] pbstrPath
異なるファイルへのパスを含む文字列を受け取る呼び出し元によって割り当てられた変数のアドレス。
このメソッドのユーザーは、このパスが円記号 (\) で終わるかどうかを判断するためにチェックする必要があります。
[out] pbstrFilespec
異なるファイルのファイル指定を含む文字列を受け取る呼び出し元割り当て変数のアドレス。
[out] pbRecursive
異なるファイルのファイル指定を再帰的に解釈するかどうかを指定するブール値を受け取る呼び出し元割り当て変数のアドレス。 TRUE の場合、増分バックアップまたは差分バックアップ中に差分ファイルとして処理されるファイルを検索するには、ファイル仕様 pbstrFilespec に一致するファイルをディレクトリ階層全体で検索する必要があります。 FALSE の場合は、ルート ディレクトリのみを検索する必要があります。
[out] pbstrLsnString
将来利用するために予約されています。
[out] pftLastModifyTime
FILETIME 構造体として表される、差分ファイルの最終変更時刻のライター仕様を受け取る呼び出し元割り当て変数のアドレス。
戻り値
このメソッドの有効なリターン コードを次に示します。
値 | 意味 |
---|---|
|
属性値が正常に返されました。 |
|
パラメーター値の 1 つが無効です。 |
|
呼び出し元がメモリやその他のシステム リソースを使い切れている。 |
|
指定されたインデックスに対応する相違ファイルが見つかりませんでした。 |
|
XML ドキュメントが無効です。 詳細については、イベント ログを確認してください。 詳細については、「 VSS でのイベントとエラーの処理」を参照してください。 |
注釈
GetDifferencedFile は、バックアップ操作または復元操作中にリクエスターまたはライターによって呼び出すことができます。
GetDifferencedFile の呼び出しが成功した場合、呼び出し元は SysFreeString 関数を呼び出して pbstrPath パラメーターと pbstrFilespec パラメーターで返される文字列を解放します。
ライターは、ファイルの実際のバックアップの前にいつでも IVssComponent::AddDifferencedFilesByLastModifyTime の呼び出しで異なるファイルを示すことができるので、 通常、 PostSnapshot イベント (CVssWriter::OnPostSnapshot) の処理中に、バックアップ中の GetDifferencedFile は 、IVssBackupComponents::D oSnapshotSet が正常に返される前に呼び出されません。
GetDifferencedFile によって返されるタイム スタンプは、返されたパス (pbstrPath) とファイル仕様 (pbstrFilespec) に一致するすべてのファイルに適用されます。
GetDifferencedFile (pftLastModifyTime) によって返されるタイム スタンプ値が 0 以外の場合、要求者は、独自のレコードとファイル システム情報に関係なくこの値を尊重し、差分バックアップと増分バックアップのどちらに差分ファイルを含めるかを判断するために使用する必要があります。
GetDifferencedFile によって返されるタイム スタンプが 0 の場合、要求者はファイル システム情報とその独自のレコードを使用して、差分バックアップと増分バックアップのどちらを含める必要があるかを判断できます。
相違するファイルは、次のいずれかになります。
- 現在のコンポーネントのメンバー、またはコンポーネントがコンポーネント セットを定義している場合は、IVssCreateWriterMetadata::AddFilesToFileGroup、IVssCreateWriterMetadata::AddDatabaseFiles、または IVssCreateWriterMetadata::AddDatabaseLogFiles を使用してコンポーネントに追加されたサブコンポーネントのメンバー。
- IVssComponent::AddDifferencedFilesByLastModifyTime によってコンポーネントに追加された新しいファイル
GetDifferencedFile が異なる新しいファイルを返す場合、そのファイルのパス (pbstrPath) は、コンポーネントに既に存在するパス、またはそのサブコンポーネントの 1 つ (コンポーネントがコンポーネント セットを定義している場合) と一致するか、下にある必要があります。
さらに、 GetDifferencedFile によって返されるファイルは、コンポーネントまたはライターによってまだ管理されていません。
これらの条件のいずれかに違反した場合は、ライター側のエラーを構成し、報告する必要があります。
IVssComponent インターフェイスには、GetDifferencedFilesByLastModifyTime によって返される新しいファイルの代替の場所マッピングを変更または追加できるメソッドはありません。 代替の場所マッピングが新しいファイルに対応する場合は、その代替の場所が使用されます。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows Vista [デスクトップ アプリのみ] |
サポートされている最小のサーバー | Windows Server 2003 (デスクトップ アプリのみ) |
対象プラットフォーム | Windows |
ヘッダー | vswriter.h (Vss.h、VsWriter.h を含む) |
Library | VssApi.lib |
こちらもご覧ください
IVssComponent::AddDifferencedFilesByLastModifyTime