Compartilhar via


Método IBackgroundCopyJob::Complete (bits.h)

Encerra o trabalho e salva os arquivos transferidos no cliente.

Sintaxe

HRESULT Complete();

Retornar valor

Esse método retorna os seguintes valores HRESULT . O método também pode retornar erros relacionados à renomeação das cópias temporárias dos arquivos transferidos para seus nomes determinados.

Código de retorno Descrição
S_OK
Todos os arquivos transferidos com êxito.
BG_S_PARTIAL_COMPLETE
Um subconjunto dos arquivos transferidos com êxito.
BG_S_UNABLE_TO_DELETE_FILES
O trabalho foi concluído com êxito; no entanto, o serviço não pôde excluir os arquivos temporários associados ao trabalho.
BG_E_INVALID_STATE
Para downloads, o estado do trabalho não pode ser BG_JOB_STATE_CANCELLED ou BG_JOB_STATE_ACKNOWLEDGED.

Para uploads, o estado do trabalho deve ser BG_JOB_STATE_TRANSFERRED.

Comentários

Os arquivos de download não estarão disponíveis até que você chame o método Complete . Chame o método Complete depois que o BITS transferir os arquivos com êxito. O método renomeia os arquivos de download temporários para seus nomes de destino finais e remove o trabalho da fila. Observe que o BITS renomeia o arquivo de upload temporário quando o servidor recebe o último fragmento, e é por isso que os trabalhos de download exigem conectividade de rede e trabalhos de upload não.

Todos os arquivos foram transferidos com êxito se o estado do trabalho for BG_JOB_STATE_TRANSFERRED. Para marcar o estado do trabalho, chame o método IBackgroundCopyJob::GetState. Você também pode implementar a interface IBackgroundCopyCallback para receber notificação quando todos os arquivos forem transferidos para o cliente.

Se você não chamar o método Complete ou o método IBackgroundCopyJob::Cancel dentro de 90 dias (jobInactivityTimeout padrão Política de Grupo), o serviço cancelará o trabalho. Se o serviço cancelar o trabalho, os arquivos baixados e o arquivo de resposta não estarão disponíveis para o cliente; O cancelamento de trabalho não afeta os arquivos que foram carregados com êxito.

O BITS removerá o trabalho da fila de transferência se o HRESULT for S_OK ou BG_S_PARTIAL_COMPLETE. O trabalho permanecerá na fila de transferência se o BITS não puder renomear todos os arquivos temporários. Os arquivos que foram renomeados com êxito estão disponíveis para o usuário. O trabalho permanece na fila (o estado é BG_JOB_STATE_TRANSFERRED) até que o aplicativo seja capaz de corrigir o problema e chame o método Complete novamente ou o método IBackgroundCopyJob::Cancel para cancelar o trabalho. Para determinar quais arquivos não foram renomeados para trabalhos de download, consulte o membro Concluído da estrutura BG_FILE_PROGRESS .

Para trabalhos de download, você pode chamar o método Complete a qualquer momento durante o processo de transferência; no entanto, somente os arquivos que foram transferidos com êxito para o cliente antes de chamar esse método são salvos. Por exemplo, se você chamar o método Complete enquanto o BITS estiver processando o terceiro de cinco arquivos, somente os dois primeiros arquivos serão salvos. Para determinar quais arquivos foram transferidos, chame o método IBackgroundCopyFile::GetProgress e compare o membro BytesTransferred com o membro BytesTotal da estrutura BG_FILE_PROGRESS .

Para trabalhos de upload, você pode chamar o método Complete somente quando o estado do trabalho for BG_JOB_STATE_TRANSFERRED.

O BITS não garante a integridade dos arquivos transferidos contra invasões de terceiros. Os clientes podem implementar verificações de integridade para validar arquivos transferidos depois de chamar o método Complete .

O proprietário do arquivo é o usuário que fez a chamada. Por exemplo, se um administrador concluir o trabalho de outra pessoa, o administrador, não o proprietário do trabalho, será o proprietário do arquivo.

BITS 1.2 e anterior: O proprietário do arquivo é o proprietário do trabalho, independentemente de quem chamou o método Complete .

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows XP
Servidor mínimo com suporte Windows Server 2003
Plataforma de Destino Windows
Cabeçalho bits.h
Biblioteca Bits.lib
DLL QmgrPrxy.dll

Confira também

Concluindo e cancelando um trabalho

IBackgroundCopyCallback::JobTransferred

IBackgroundCopyJob::Cancel

IBackgroundCopyJob::GetState