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


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

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

Синтаксис

HRESULT Complete();

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

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

Код возврата Description
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
целевая платформа Виндоус
Header bits.h
Library Bits.lib
DLL QmgrPrxy.dll

См. также

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

IBackgroundCopyCallback::JobTransferred

IBackgroundCopyJob::Cancel

IBackgroundCopyJob::GetState