Condividi tramite


Metodo IBackgroundCopyCallback::JobTransferred (bits.h)

BITS chiama l'implementazione del metodo JobTransferred quando tutti i file nel processo sono stati trasferiti correttamente. Per BG_JOB_TYPE_UPLOAD_REPLY processi, BITS chiama il metodo JobTransferred dopo che il file di caricamento è stato trasferito al server e la risposta è stata trasferita al client.

Sintassi

HRESULT JobTransferred(
  [in] IBackgroundCopyJob *pJob
);

Parametri

[in] pJob

Contiene informazioni correlate al processo, ad esempio l'ora di completamento del processo, il numero di byte trasferiti e il numero di file trasferiti. Non rilasciare pJob; BITS rilascia l'interfaccia quando il metodo restituisce.

Valore restituito

Questo metodo deve restituire S_OK; in caso contrario, BITS continua a chiamare questo metodo fino a quando non viene restituito S_OK. Per motivi di prestazioni, è consigliabile limitare il numero di volte in cui si restituisce un valore diverso da S_OK a poche volte. In alternativa alla restituzione di un codice di errore, è consigliabile restituire sempre S_OK e gestire internamente l'errore. L'intervallo in cui viene chiamato questo metodo è arbitrario.

Si noti che se questo metodo ha esito negativo e si chiama il metodo IBackgroundCopyJob2::SetNotifyCmdLine , la riga di comando viene eseguita e questo metodo non viene chiamato di nuovo.

Commenti

In genere, l'implementazione deve chiamare il metodo IBackgroundCopyJob::Complete per riconoscere che BITS ha trasferito correttamente i file. Scaricare i file e il file di risposta non sono disponibili nel client finché non si chiama il metodo Complete .

Se non si chiama il metodo Complete o il metodo IBackgroundCopyJob::Cancel entro 90 giorni (processo predefinito JobInactivityTimeout Criteri di gruppo), BITS annulla il processo ed elimina i file di risposta scaricati. L'annullamento del processo non influisce sui file caricati correttamente.

Se si desidera recuperare i dati di risposta nel callback, eseguire una query pJob per l'interfaccia IBackgroundCopyJob2 e chiamare il relativo metodo GetReplyData . Per recuperare il nome del file contenente i dati di risposta, chiamare il metodo GetReplyFileName .

BITS non garantisce l'integrità dei file trasferiti contro le intrusioni di terze parti. I client possono implementare controlli di integrità per convalidare i file trasferiti prima di chiamare il metodo Complete . Per ottenere una notifica quando viene trasferito un file, implementare il metodo IBackgroundCopyCallback2::FileTransferred . All'interno del callback chiamare il metodo IBackgroundCopyFile3::GetTemporaryName per ottenere il nome del file temporaneo contenente il contenuto scaricato. Convalidare il contenuto e quindi chiamare il metodo IBackgroundCopyFile3::SetValidationState per indicare se il contenuto è valido. Se il contenuto non è valido e BITS ha scaricato il file dal server di origine, il processo viene inserito nello stato di errore. Se il processo è stato scaricato da un peer, BITS scarica il file dal server di origine.

Nota BITS supporta fino a quattro notifiche simultanee per utente. Se una o più applicazioni bloccano tutte e quattro le notifiche per un utente che restituisce, un'applicazione in esecuzione nello stesso utente non riceverà notifiche fino a quando non verrà restituita una o più notifiche di blocco. Per ridurre la possibilità che il callback blocchi altre notifiche, mantenere breve l'implementazione.
 

Esempio

Vedere il codice di esempio per l'interfaccia IBackgroundCopyCallback .

Requisiti

Requisito Valore
Client minimo supportato Windows XP
Server minimo supportato Windows Server 2003
Piattaforma di destinazione Windows
Intestazione bits.h

Vedi anche

IBackgroundCopyCallback

IBackgroundCopyJob

IBackgroundCopyJob::Cancel

IBackgroundCopyJob::Complete