Поделиться через


Метод IBackgroundCopyCallback::JobTransferred (bits.h)

BITS вызывает реализацию метода JobTransferred , если все файлы в задании успешно переданы. Для BG_JOB_TYPE_UPLOAD_REPLY заданий BITS вызывает метод JobTransferred после передачи файла отправки на сервер и передачи ответа клиенту.

Синтаксис

HRESULT JobTransferred(
  [in] IBackgroundCopyJob *pJob
);

Параметры

[in] pJob

Содержит сведения, связанные с заданием, такие как время завершения задания, количество переданных байтов и количество переданных файлов. Не выпускайте pJob; BITS освобождает интерфейс при возврате метода.

Возвращаемое значение

Этот метод должен возвращать S_OK; В противном случае BITS продолжает вызывать этот метод, пока не будет возвращен S_OK . По соображениям производительности следует ограничить количество возвращаемых значений, отличных от S_OK , несколькими разами. В качестве альтернативы возврату кода ошибки рекомендуется всегда возвращать S_OK и обрабатывать ошибку внутри системы. Интервал, с которым вызывается этот метод, является произвольным.

Обратите внимание, что если этот метод завершается сбоем и вы вызвали метод IBackgroundCopyJob2::SetNotifyCmdLine , командная строка выполняется и этот метод не вызывается повторно.

Комментарии

Как правило, реализация должна вызывать метод IBackgroundCopyJob::Complete , чтобы подтвердить, что BITS успешно передал файлы. Скачанные файлы и файл ответов недоступны на клиенте, пока вы не вызовете метод Complete .

Если не вызвать метод Complete или метод IBackgroundCopyJob::Cancel в течение 90 дней (по умолчанию JobInactivityTimeout групповая политика), BITS отменит задание и удалит скачанные файлы и файл ответа; отмена задания не повлияет на успешно отправленные файлы.

Если вы хотите получить данные ответа в обратном вызове, запросите pJob для интерфейса IBackgroundCopyJob2 и вызовите его метод GetReplyData . Чтобы получить имя файла, содержащего данные ответа, вызовите метод GetReplyFileName .

BITS не гарантирует целостность переданных файлов от сторонних вторжений. Клиенты могут реализовать проверки целостности для проверки переданных файлов перед вызовом метода Complete . Чтобы получать уведомления о передаче файла, реализуйте метод IBackgroundCopyCallback2::FileTransferred . В обратном вызове вызовите метод IBackgroundCopyFile3::GetTemporaryName , чтобы получить имя временного файла, содержащего скачанного содержимого. Проверьте содержимое, а затем вызовите метод IBackgroundCopyFile3::SetValidationState , чтобы указать, является ли содержимое допустимым. Если содержимое недопустимо и BITS скачал файл с сервера-источника, задание переходит в состояние ошибки. Если задание было загружено с однорангового узла, BITS скачивает файл с сервера-источника.

Примечание BITS поддерживает до четырех одновременных уведомлений для каждого пользователя. Если одно или несколько приложений блокируют возврат всех четырех уведомлений для пользователя, приложение, работающее от имени одного и того же пользователя, не будет получать уведомления до тех пор, пока не вернется одно или несколько блокирующих уведомлений. Чтобы снизить вероятность того, что обратный вызов блокирует другие уведомления, не закрывайте реализацию.
 

Примеры

См. пример кода для интерфейса IBackgroundCopyCallback .

Требования

Требование Значение
Минимальная версия клиента Windows XP
Минимальная версия сервера Windows Server 2003
Целевая платформа Windows
Header bits.h

См. также раздел

IBackgroundCopyCallback

IBackgroundCopyJob

IBackgroundCopyJob::Cancel

IBackgroundCopyJob::Complete