Metode IVssComponent::GetDifferencedFile (vswriter.h)

Metode GetDifferencedFile mengembalikan informasi tentang kumpulan file (file atau file tertentu) untuk berpartisipasi dalam pencadangan atau pemulihan bertahap atau diferensial sebagai file yang berbeda—yaitu, pencadangan dan pemulihan yang terkait dengannya akan diimplementasikan seolah-olah seluruh file disalin ke dan dari media cadangan (dibandingkan dengan menggunakan file parsial).

Metode ini dapat dipanggil oleh pemohon atau penulis selama operasi pencadangan atau pemulihan.

Sintaks

HRESULT GetDifferencedFile(
  [in]  UINT     iDifferencedFile,
  [out] BSTR     *pbstrPath,
  [out] BSTR     *pbstrFilespec,
  [out] BOOL     *pbRecursive,
  [out] BSTR     *pbstrLsnString,
  [out] FILETIME *pftLastModifyTime
);

Parameter

[in] iDifferencedFile

Jumlah indeks file yang berbeda yang akan diperiksa. Nilai parameter ini adalah bilangan bulat dari 0 hingga n–1 inklusif, di mana n adalah jumlah total file perbedaan yang terkait dengan komponen tertentu (dan subkomponennya jika menentukan set komponen). Nilai n dikembalikan oleh IVssComponent::GetDifferencedFilesCount.

[out] pbstrPath

Alamat variabel yang dialokasikan penelepon yang menerima string yang berisi jalur ke file yang berbeda.

Pengguna metode ini perlu memeriksa untuk menentukan apakah jalur ini berakhir dengan garis miring terbelakang (\).

[out] pbstrFilespec

Alamat variabel yang dialokasikan penelepon yang menerima string yang berisi spesifikasi file dari file yang berbeda.

[out] pbRecursive

Alamat variabel yang dialokasikan penelepon yang menerima Boolean yang menentukan apakah spesifikasi file untuk file yang berbeda harus ditafsirkan secara rekursif. Jika TRUE, maka seluruh hierarki direktori perlu dicari untuk file yang cocok dengan spesifikasi file pbstrFilespec untuk menemukan file yang akan ditangani sebagai file yang berbeda selama pencadangan bertahap atau diferensial. Jika FALSE, hanya direktori akar yang perlu dicari.

[out] pbstrLsnString

Disiapkan untuk penggunaan masa mendatang.

[out] pftLastModifyTime

Alamat variabel yang dialokasikan penelepon yang menerima spesifikasi penulis dari waktu modifikasi terakhir untuk file perbedaan, yang dinyatakan sebagai struktur FILETIME .

Nilai kembali

Berikut ini adalah kode pengembalian yang valid untuk metode ini.

Nilai Makna
S_OK
Berhasil mengembalikan nilai atribut.
E_INVALIDARG
Salah satu nilai parameter tidak valid.
E_OUTOFMEMORY
Pemanggil kehabisan memori atau sumber daya sistem lainnya.
VSS_E_OBJECT_NOT_FOUND
Tidak ada perbedaan file yang sesuai dengan indeks yang disediakan yang ditemukan.
VSS_E_INVALID_XML_DOCUMENT
Dokumen XML tidak valid. Periksa log peristiwa untuk detailnya. Untuk informasi selengkapnya, lihat Penanganan Peristiwa dan Kesalahan di bawah VSS.

Keterangan

GetDifferencedFile dapat dipanggil oleh pemohon atau penulis selama operasi pencadangan atau pemulihan.

Jika panggilan ke GetDifferencedFile berhasil, pemanggil bertanggung jawab untuk membebaskan string yang dikembalikan dalam parameter pbstrPath dan pbstrFilespec dengan memanggil fungsi SysFreeString .

Karena penulis dapat menunjukkan file yang berbeda dengan panggilan ke IVssComponent::AddDifferencedFilesByLastModifyTime kapan saja sebelum pencadangan file yang sebenarnya, biasanya saat menangani peristiwa PostSnapshot (CVssWriter::OnPostSnapshot), selama pencadangan GetDifferencedFile tidak berguna dipanggil sebelum pengembalian IVssBackupComponents::D oSnapshotSet telah berhasil dikembalikan.

Stempel waktu yang dikembalikan oleh GetDifferencedFile berlaku untuk semua file yang cocok dengan jalur yang dikembalikan (pbstrPath) dan spesifikasi file (pbstrFilespec).

Jika nilai stempel waktu yang dikembalikan oleh GetDifferencedFile (pftLastModifyTime) bukan nol, pemohon harus menghormati nilai ini terlepas dari catatan dan informasi sistem filenya sendiri dan menggunakannya untuk menentukan apakah file yang berbeda harus disertakan dalam cadangan diferensial atau bertambah bertahap.

Jika stempel waktu yang dikembalikan oleh GetDifferencedFile adalah nol, pemohon dapat menggunakan informasi sistem file dan catatannya sendiri untuk menentukan apakah file yang berbeda harus disertakan dalam cadangan diferensial atau bertambah bertahap.

File yang berbeda dapat berupa salah satu dari yang berikut ini:

Ketika merujuk ke set file yang sudah menjadi bagian dari komponen, kombinasi jalur, spesifikasi file, dan bendera rekursi (wszPath, wszFileSpec, dan bRecursive, masing-masing) yang digunakan saat memanggil GetDifferencedFile harus cocok dengan set file yang sudah ada di komponen, atau salah satu subkomponennya (jika komponen menentukan set komponen).

Ketika GetDifferencedFile mengembalikan file baru yang berbeda, jalur file tersebut (pbstrPath) harus cocok atau berada di bawah jalur yang sudah ada di komponen, atau salah satu subkomponennya (jika komponen menentukan set komponen).

Selain itu, file yang dikembalikan oleh GetDifferencedFile tidak boleh dikelola oleh komponen atau penulis.

Jika salah satu kriteria ini dilanggar, kriteria tersebut merupakan kesalahan pada bagian penulis dan harus dilaporkan.

Tidak ada metode di antarmuka IVssComponent yang memungkinkan untuk mengubah atau menambahkan pemetaan lokasi alternatif untuk file baru yang dikembalikan oleh GetDifferencedFilesByLastModifyTime. Jika pemetaan lokasi alternatif sesuai dengan file baru, maka lokasi alternatif tersebut akan digunakan.

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Windows Vista [hanya aplikasi desktop]
Server minimum yang didukung Windows Server 2003 [hanya aplikasi desktop]
Target Platform Windows
Header vswriter.h (termasuk Vss.h, VsWriter.h)
Pustaka VssApi.lib

Lihat juga

IVssComponent

IVssComponent::AddDifferencedFilesByLastModifyTime

IVssComponent::GetDifferencedFilesCount

Pencadangan Inkremental dan Diferensial