Metode IBackgroundCopyJob3::AddFileWithRanges (bits2_0.h)
Menambahkan file ke pekerjaan pengunduhan dan menentukan rentang file yang ingin Anda unduh.
Sintaks
HRESULT AddFileWithRanges(
[in] LPCWSTR RemoteUrl,
[in] LPCWSTR LocalName,
[in] DWORD RangeCount,
[in] BG_FILE_RANGE [] Ranges
);
Parameter
[in] RemoteUrl
String null-dihentikan yang berisi nama file di server. Untuk informasi tentang menentukan nama jarak jauh, lihat bagian Anggota RemoteName dan Keterangan dari struktur BG_FILE_INFO .
Dimulai dengan BITS 3.0, protokol SMB tidak didukung untuk rentang.
BITS 2.5 dan 2.0: BITS mendukung protokol SMB untuk rentang.
[in] LocalName
String yang dihentikan null yang berisi nama file pada klien. Untuk informasi tentang menentukan nama lokal, lihat bagian Anggota LocalName dan Keterangan dari struktur BG_FILE_INFO .
[in] RangeCount
Jumlah elemen dalam Rentang.
[in] Ranges
Array dari satu atau beberapa struktur BG_FILE_RANGE yang menentukan rentang yang akan diunduh. Jangan tentukan rentang duplikat atau tumpang tindih.
Menampilkan nilai
Metode ini mengembalikan nilai pengembalian berikut, serta yang lain.
Menampilkan kode | Deskripsi |
---|---|
|
Berhasil |
|
Anda dapat menerima kesalahan ini karena salah satu alasan berikut:
|
|
Anda tidak dapat memanggil metode ini untuk mengunggah atau mengunggah pekerjaan balasan; hanya panggil metode ini untuk mengunduh pekerjaan. |
|
Pengguna tidak memiliki izin untuk menulis ke direktori yang ditentukan pada klien. |
|
Salah satu rentang tidak valid. Misalnya, InitialOffset diatur ke BG_LENGTH_TO_EOF. |
|
Anda tidak dapat menentukan rentang duplikat atau tumpang tindih.
Catatan Rentang diurutkan berdasarkan offset nilai, bukan panjangnya. Jika rentang dimasukkan yang memiliki offset yang sama, tetapi berada dalam urutan terbalik, maka kesalahan ini akan dikembalikan. Misalnya, jika 100.5 dan 100.0 dimasukkan dalam urutan tersebut, maka Anda tidak akan dapat menambahkan file ke pekerjaan.
|
|
Pengaturan Kebijakan Grup MaxRangesPerFile menentukan berapa banyak rentang yang dapat Anda tentukan untuk file. Menambahkan rentang ini melebihi batas MaxRangesPerFile. |
|
Status pekerjaan tidak dapat BG_JOB_STATE_CANCELLED atau BG_JOB_STATE_ACKNOWLEDGED. |
Keterangan
Rentang ditulis ke file LocalName dalam urutan yang diberikan. Misalnya, jika Rentang mengidentifikasi byte 100-199, 900-999, dan 400-499 dari file jarak jauh, file lokal akan memiliki panjang 300 byte. Byte 0-99 dari file lokal akan berisi byte 100-199 dari file jarak jauh, byte 100-199 dari file lokal akan berisi byte 900-999 dari file jarak jauh, dan byte 200-299 dari file lokal akan berisi byte 400-499 dari file jarak jauh.
Tabel berikut mengidentifikasi kemungkinan kode kesalahan yang dapat terjadi setelah Anda melanjutkan pekerjaan. Kesalahan ini menempatkan pekerjaan dalam status BG_JOB_STATE_ERROR.
Kode kesalahan | Deskripsi |
---|---|
BG_E_INVALID_SERVER_RESPONSE | BITS tidak mendukung server yang mengonsolidasikan rentang duplikat atau tumpang tindih. |
BG_E_INVALID_RANGE | Salah satu rentang berada di luar batas file jarak jauh. |
BG_E_INSUFFICIENT_RANGE_SUPPORT | Server tidak mendukung rentang. |
BITS menjamin bahwa versi file (berdasarkan ukuran dan tanggal file, bukan konten) yang ditransfernya akan konsisten; namun, itu tidak menjamin bahwa sekumpulan file akan konsisten. Misalnya, jika BITS berada di tengah-tengah mengunduh file kedua dari dua file dalam pekerjaan pada saat file diperbarui di server, BITS memulai ulang pengunduhan file kedua; namun, file pertama tidak diunduh lagi.
Secara default, pengguna dapat menambahkan hingga 500 rentang untuk file. Batas ini tidak berlaku untuk administrator atau akun layanan. Untuk mengubah default, atur kebijakan grup MaxRangesPerFile .
Sebelum Windows Vista: Tidak ada batasan jumlah file yang dapat ditambahkan pengguna ke pekerjaan.
Untuk performa yang lebih baik pada transfer file yang mendukung Windows BranchCache, disarankan agar Anda mengatur panjang rentang menjadi setidaknya 400 byte.
Contoh
Contoh berikut menunjukkan cara memanggil metode AddFileWithRanges untuk menentukan rentang file yang akan diunduh. Contoh mengasumsikan variabel IBackgroundCopyJob , pJob, valid.
IBackgroundCopyJob *pJob;
IBackgroundCopyJob3 *pJob3 = NULL;
DWORD dwRangeCount = 3; //Number of elements in Ranges.
BG_FILE_RANGE Ranges[] = {24, 17, //Array of ranges to download (offset and length).
111, BG_LENGTH_TO_EOF,
83, 7
};
//Need to query the IBackgroundCopyJob interface for an IBackgroundCopyJob3
//interface pointer. The IBackgroundCopyJob3 interface contains the AddFileWithRanges method.
hr = pJob->QueryInterface(__uuidof( IBackgroundCopyJob3 ), (void**)&pJob3;);
if (S_OK == hr)
{
pJob->Release(); //No longer need the IBackgoundCopyJob interface pointer.
//Add a file to the job and specify the ranges from the file to download.
hr = pJob3->AddFileWithRanges(L"<REMOTENAMEGOESHERE>", L"<LOCALNAMEGOESHERE>",
dwRangeCount, Ranges);
if (FAILED(hr))
{
//Handle error.
//Returns E_NOTIMPL if not a download job.
//Returns E_INVALIDARG if dwRangeCount is zero or the remote or local name is invalid.
//Returns BG_E_INVALID_RANGE if one of the ranges is invalid.
//Returns BG_E_OVERLAPPING_RANGES if you specify overlapping or duplicate ranges.
}
pJob3->Release(); //Release the interface if you are done with it.
}
else
{
//Handle error. QueryInterface will return E_NOINTERFACE if the version of BITS
//running on the computer is less than BITS 2.0.
}
Persyaratan
Persyaratan | Nilai |
---|---|
Klien minimum yang didukung | Windows Vista, Windows XP dengan SP2,KB842773 di Windows Server 2003, dan Windows XP |
Server minimum yang didukung | Windows Server 2008, Windows Server 2003 dengan SP1 |
Target Platform | Windows |
Header | bits2_0.h (termasuk Bits.h) |
Pustaka | Bits.lib |
DLL | BitsPrx3.dll |
Lihat juga
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk