Compartilhar via


Método IBackgroundCopyCallback::JobTransferred (bits.h)

O BITS chama a implementação do método JobTransferred quando todos os arquivos no trabalho foram transferidos com êxito. Para trabalhos BG_JOB_TYPE_UPLOAD_REPLY, o BITS chama o método JobTransferred depois que o arquivo de upload é transferido para o servidor e a resposta foi transferida para o cliente.

Sintaxe

HRESULT JobTransferred(
  [in] IBackgroundCopyJob *pJob
);

Parâmetros

[in] pJob

Contém informações relacionadas ao trabalho, como a hora em que o trabalho foi concluído, o número de bytes transferidos e o número de arquivos transferidos. Não liberar pJob; O BITS libera a interface quando o método retorna.

Retornar valor

Esse método deve retornar S_OK; caso contrário, o BITS continuará a chamar esse método até que S_OK seja retornado. Por motivos de desempenho, você deve limitar o número de vezes que retorna um valor diferente de S_OK para algumas vezes. Como alternativa ao retorno de um código de erro, considere sempre retornar S_OK e lidar com o erro internamente. O intervalo no qual esse método é chamado é arbitrário.

Observe que, se esse método falhar e você chamar o método IBackgroundCopyJob2::SetNotifyCmdLine , a linha de comando será executada e esse método não será chamado novamente.

Comentários

Normalmente, sua implementação deve chamar o método IBackgroundCopyJob::Complete para reconhecer que o BITS transferiu os arquivos com êxito. Os arquivos de download e o arquivo de resposta não estarão disponíveis no cliente até que você chame o método Complete .

Se você não chamar o método Complete ou o método IBackgroundCopyJob::Cancel dentro de 90 dias (Política de Grupo JobInactivityTimeout padrão), o BITS cancelará o trabalho e excluirá os arquivos baixados e o arquivo de resposta; o cancelamento do trabalho não afetará os arquivos que foram carregados com êxito.

Se você quiser recuperar os dados de resposta em seu retorno de chamada, consulte pJob para a interface IBackgroundCopyJob2 e chame seu método GetReplyData . Para recuperar o nome do arquivo que contém os dados de resposta, chame o método GetReplyFileName .

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 antes de chamar o método Complete . Para receber notificação quando um arquivo é transferido, implemente o método IBackgroundCopyCallback2::FileTransferred . Dentro do retorno de chamada, chame o método IBackgroundCopyFile3::GetTemporaryName para obter o nome do arquivo temporário que contém o conteúdo baixado. Valide o conteúdo e chame o método IBackgroundCopyFile3::SetValidationState para indicar se o conteúdo é válido. Se o conteúdo não for válido e o BITS tiver baixado o arquivo do servidor de origem, o trabalho entrará no estado de erro. Se o trabalho tiver sido baixado de um par, o BITS baixará o arquivo do servidor de origem.

Nota O BITS dá suporte a até quatro notificações simultâneas por usuário. Se um ou mais aplicativos bloquearem o retorno de todas as quatro notificações para um usuário, um aplicativo em execução como o mesmo usuário não receberá notificações até que uma ou mais notificações de bloqueio retornem. Para reduzir a chance de que o retorno de chamada bloqueie outras notificações, mantenha sua implementação curta.
 

Exemplos

Consulte o código de exemplo para a interface IBackgroundCopyCallback .

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

Confira também

IBackgroundCopyCallback

IBackgroundCopyJob

IBackgroundCopyJob::Cancel

IBackgroundCopyJob::Complete