Метод IBackgroundCopyCallback::JobError (bits.h)
BITS вызывает реализацию метода JobError , когда состояние задания изменяется на BG_JOB_STATE_ERROR.
Синтаксис
HRESULT JobError(
[in] IBackgroundCopyJob *pJob,
[in] IBackgroundCopyError *pError
);
Параметры
[in] pJob
Содержит сведения, связанные с заданием, такие как количество байтов и файлов, переданных до возникновения ошибки. Он также содержит методы для возобновления и отмены задания. Не выпускайте pJob; BITS освобождает интерфейс при возврате метода JobError .
[in] pError
Содержит сведения об ошибке, такие как файл, обрабатываемый в момент возникновения неустранимой ошибки, и описание ошибки. Не отпускайте pError; BITS освобождает интерфейс при возврате метода JobError .
Возвращаемое значение
Этот метод должен возвращать S_OK; В противном случае BITS продолжает вызывать этот метод, пока не будет возвращен S_OK . Из соображений производительности следует ограничить количество возвращаемых значений, отличных от S_OK , несколькими значениями. В качестве альтернативы возврату кода ошибки рекомендуется всегда возвращать S_OK и обрабатывать ошибку внутри системы. Интервал вызова этого метода является произвольным.
Обратите внимание, что если этот метод завершается сбоем и вы вызвали метод IBackgroundCopyJob2::SetNotifyCmdLine , командная строка выполняется и этот метод не вызывается снова.
Комментарии
Определив причину ошибки, выполните один из следующих действий.
- Чтобы отменить задание, вызовите метод IBackgroundCopyJob::Cancel . Запрос на отмену не влияет на задания отправки, если ошибка произошла после успешной отправки файла. Однако если тип задания BG_JOB_TYPE_UPLOAD_REPLY и отправка выполнена успешно, вызов метода Cancel отменяет запрос на получение данных ответа.
- Чтобы принять часть задания, которая была успешно передана до возникновения ошибки, вызовите метод IBackgroundCopyJob::Complete . Этот параметр не применяется к отправке заданий; невозможно выполнить часть задания отправки.
- Чтобы завершить обработку задания, устраните проблему, а затем вызовите метод IBackgroundCopyJob::Resume .
Временные ошибки не создают вызовы метода JobError .
Чтобы определить, произошел ли сбой при отправке, ответе или серверном приложении задания ответа на отправку, вызовите метод IBackgroundCopyError::GetError , чтобы получить контекст , в котором произошла ошибка. Сбой серверного приложения, если контекст BG_ERROR_CONTEXT_REMOTE_APPLICATION. Контекст для отправки и ответа BG_ERROR_CONTEXT_REMOTE_FILE. Сбой ответа, если элемент BytesTotal структуры BG_JOB_REPLY_PROGRESS не BG_SIZE_UNKNOWN. В противном случае отправка завершится сбоем.
Примеры
См. пример кода для интерфейса IBackgroundCopyCallback .
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows XP |
Минимальная версия сервера | Windows Server 2003 |
Целевая платформа | Windows |
Header | bits.h |