Metode IBackgroundCopyCallback::JobError (bits.h)

BITS memanggil implementasi metode JobError Anda ketika status pekerjaan berubah menjadi BG_JOB_STATE_ERROR.

Sintaks

HRESULT JobError(
  [in] IBackgroundCopyJob   *pJob,
  [in] IBackgroundCopyError *pError
);

Parameter

[in] pJob

Berisi informasi terkait pekerjaan, seperti jumlah byte dan file yang ditransfer sebelum kesalahan terjadi. Ini juga berisi metode untuk melanjutkan dan membatalkan pekerjaan. Jangan lepaskan pJob; BITS merilis antarmuka saat metode JobError kembali.

[in] pError

Berisi informasi kesalahan, seperti file yang sedang diproses pada saat kesalahan fatal terjadi dan deskripsi kesalahan. Jangan lepaskan pError; BITS merilis antarmuka saat metode JobError kembali.

Menampilkan nilai

Metode ini harus mengembalikan S_OK; jika tidak, BITS terus memanggil metode ini sampai S_OK dikembalikan. Untuk alasan performa, Anda harus membatasi berapa kali Anda mengembalikan nilai selain S_OK beberapa kali. Sebagai alternatif untuk mengembalikan kode kesalahan, pertimbangkan untuk selalu mengembalikan S_OK dan menangani kesalahan secara internal. Interval di mana metode ini dipanggil bersifat arbitrer.

Perhatikan bahwa jika metode ini gagal dan Anda memanggil metode IBackgroundCopyJob2::SetNotifyCmdLine , baris perintah dijalankan dan metode ini tidak dipanggil lagi.

Keterangan

Setelah Anda menentukan penyebab kesalahan, lakukan salah satu opsi berikut:

  • Untuk membatalkan pekerjaan, panggil metode IBackgroundCopyJob::Cancel . Permintaan pembatalan tidak berpengaruh pada pekerjaan unggahan jika kesalahan terjadi setelah file berhasil diunggah. Namun, jika jenis pekerjaan BG_JOB_TYPE_UPLOAD_REPLY dan unggahan berhasil, memanggil metode Batalkan akan membatalkan permintaan data balasan.
  • Untuk menerima bagian pekerjaan yang berhasil ditransfer sebelum kesalahan terjadi, panggil metode IBackgroundCopyJob::Complete . Opsi ini tidak berlaku untuk mengunggah pekerjaan; Anda tidak dapat menyelesaikan sebagian pekerjaan pengunggahan.
  • Untuk menyelesaikan pemrosesan pekerjaan, perbaiki masalah, lalu panggil metode IBackgroundCopyJob::Resume .
Jika pekerjaan tetap dalam status kesalahan selama 90 hari (Kebijakan Grup JobInactivityTimeout default), BITS membatalkan pekerjaan dan menghapus file sementara terkait; pembatalan pekerjaan tidak memengaruhi file yang telah berhasil diunggah.

Kesalahan sementara tidak menghasilkan panggilan ke metode JobError .

Untuk menentukan apakah bagian pengunggahan, balasan, atau aplikasi server dari pekerjaan balasan unggahan gagal, panggil metode IBackgroundCopyError::GetError untuk mengambil konteks di mana kesalahan terjadi. Aplikasi server gagal jika konteksnya BG_ERROR_CONTEXT_REMOTE_APPLICATION. Konteks untuk mengunggah dan membalas BG_ERROR_CONTEXT_REMOTE_FILE. Balasan gagal jika anggota BytesTotal dari struktur BG_JOB_REPLY_PROGRESS tidak BG_SIZE_UNKNOWN. Jika tidak, unggahan gagal.

Catatan BITS mendukung hingga empat pemberitahuan simultan per pengguna. Jika satu atau beberapa aplikasi memblokir keempat pemberitahuan untuk pengguna agar tidak kembali, aplikasi yang berjalan sebagai pengguna yang sama tidak akan menerima pemberitahuan sampai satu atau beberapa pemberitahuan pemblokiran kembali. Untuk mengurangi kemungkinan panggilan balik Anda memblokir pemberitahuan lain, jaga agar implementasi Anda tetap singkat.
 

Contoh

Lihat contoh kode untuk antarmuka IBackgroundCopyCallback .

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Windows XP
Server minimum yang didukung Windows Server 2003
Target Platform Windows
Header bits.h

Lihat juga

IBackgroundCopyCallback

IBackgroundCopyError

IBackgroundCopyJob

IBackgroundCopyJob::Cancel

IBackgroundCopyJob::Resume