Condividi tramite


Metodo IBackgroundCopyCallback::JobError (bits.h)

BITS chiama l'implementazione del metodo JobError quando lo stato del processo viene modificato in BG_JOB_STATE_ERROR.

Sintassi

HRESULT JobError(
  [in] IBackgroundCopyJob   *pJob,
  [in] IBackgroundCopyError *pError
);

Parametri

[in] pJob

Contiene informazioni correlate al processo, ad esempio il numero di byte e file trasferiti prima dell'errore. Contiene anche i metodi per riprendere e annullare il processo. Non rilasciare pJob; BITS rilascia l'interfaccia quando il metodo JobError restituisce.

[in] pError

Contiene informazioni sull'errore, ad esempio il file elaborato al momento dell'errore irreversibile e una descrizione dell'errore. Non rilasciare pError; BITS rilascia l'interfaccia quando il metodo JobError 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

Dopo aver determinato la causa dell'errore, eseguire una delle opzioni seguenti:

  • Per annullare il processo, chiamare il metodo IBackgroundCopyJob::Cancel . La richiesta di annullamento non ha alcun effetto sui processi di caricamento se si è verificato l'errore dopo il caricamento del file. Tuttavia, se il tipo di processo è BG_JOB_TYPE_UPLOAD_REPLY e il caricamento ha avuto esito positivo, chiamando il metodo Cancel annulla la richiesta per i dati di risposta.
  • Per accettare la parte del processo che è stata trasferita correttamente prima dell'errore, chiamare il metodo IBackgroundCopyJob::Complete . Questa opzione non si applica ai processi di caricamento; non è possibile completare una parte di un processo di caricamento.
  • Per completare l'elaborazione del processo, risolvere il problema e quindi chiamare il metodo IBackgroundCopyJob::Resume .
Se il processo rimane in uno stato di errore per 90 giorni (jobInactivityTimeout predefinito Criteri di gruppo), BITS annulla il processo ed elimina i file temporanei correlati. L'annullamento del processo non influisce sui file caricati correttamente.

Gli errori temporanei non generano chiamate al metodo JobError .

Per determinare se la parte di caricamento, risposta o applicazione server di un processo di risposta di caricamento non è riuscita, chiamare il metodo IBackgroundCopyError::GetError per recuperare il contesto in cui si è verificato l'errore. L'applicazione server non è riuscita se il contesto è BG_ERROR_CONTEXT_REMOTE_APPLICATION. Il contesto per il caricamento e la risposta è BG_ERROR_CONTEXT_REMOTE_FILE. Risposta non riuscita se il membro BytesTotal della struttura BG_JOB_REPLY_PROGRESS non è BG_SIZE_UNKNOWN. In caso contrario, il caricamento non è riuscito.

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

IBackgroundCopyError

IBackgroundCopyJob

IBackgroundCopyJob::Cancel

IBackgroundCopyJob::Resume