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


Метод IBackgroundCopyJob::Complete (bits.h)

Завершает задание и сохраняет переданные файлы на клиенте.

Синтаксис

HRESULT Complete();

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

Этот метод возвращает следующие значения HRESULT . Метод также может возвращать ошибки, связанные с переименованием временных копий переданных файлов с заданными именами.

Код возврата Описание
S_OK
Все файлы успешно переданы.
BG_S_PARTIAL_COMPLETE
Подмножество файлов успешно передано.
BG_S_UNABLE_TO_DELETE_FILES
Задание успешно завершено; однако службе не удалось удалить временные файлы, связанные с заданием.
BG_E_INVALID_STATE
При скачивании состояние задания не может быть BG_JOB_STATE_CANCELLED или BG_JOB_STATE_ACKNOWLEDGED.

Для отправки состояние задания должно быть BG_JOB_STATE_TRANSFERRED.

Комментарии

Скачиваемые файлы недоступны, пока вы не вызовете метод Complete . Вызовите метод Complete после того, как BITS успешно передаст файлы. Метод переименовывает временные скачанные файлы в конечные конечные имена и удаляет задание из очереди. Обратите внимание, что BITS переименовывает временный файл отправки, когда сервер получает последний фрагмент, поэтому задания загрузки требуют сетевого подключения, а задания отправки — нет.

Все файлы успешно перенесены, если задание находится в состоянии BG_JOB_STATE_TRANSFERRED. Чтобы проверка состояние задания, вызовите метод IBackgroundCopyJob::GetState. Вы также можете реализовать интерфейс IBackgroundCopyCallback для получения уведомлений о передаче всех файлов клиенту.

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

BITS удаляет задание из очереди передачи, если HRESULT S_OK или BG_S_PARTIAL_COMPLETE. Задание остается в очереди передачи, если BITS не удалось переименовать все временные файлы. Файлы, которые были успешно переименованы, доступны пользователю. Задание остается в очереди (состояние BG_JOB_STATE_TRANSFERRED), пока приложение не сможет устранить проблему и снова не вызовет метод Complete или метод IBackgroundCopyJob::Cancel для отмены задания. Сведения о том, какие файлы не были переименованы для заданий загрузки, см. в разделе Завершено структуры BG_FILE_PROGRESS .

Для заданий скачивания можно вызвать метод Complete в любое время во время процесса передачи. однако сохраняются только файлы, которые были успешно переданы клиенту перед вызовом этого метода. Например, при вызове метода Complete в то время как BITS обрабатывает трети из пяти файлов, сохраняются только первые два файла. Чтобы определить, какие файлы были переданы, вызовите метод IBackgroundCopyFile::GetProgress и сравните элемент BytesTransferred с элементом BytesTotalструктуры BG_FILE_PROGRESS .

Для отправки заданий метод Complete можно вызывать только в том случае, если задание находится в состоянии BG_JOB_STATE_TRANSFERRED.

BITS не гарантирует целостность переданных файлов от сторонних вторжений. Клиенты могут реализовать проверки целостности для проверки переданных файлов после вызова метода Complete .

Владельцем файла является пользователь, который сделал вызов. Например, если администратор выполняет задание другого пользователя, администратор, а не владелец задания, владеет файлом.

BITS 1.2 и более ранние версии: Владелец файла является владельцем задания независимо от того, кто вызвал метод Complete .

Требования

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

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

Завершение и отмена задания

IBackgroundCopyCallback::JobTransferred

IBackgroundCopyJob::Cancel

IBackgroundCopyJob::GetState