IBackgroundCopyCallback::JobError-Methode (bits.h)
BITS ruft Ihre Implementierung der JobError-Methode auf, wenn sich der Status des Auftrags in BG_JOB_STATE_ERROR ändert.
Syntax
HRESULT JobError(
[in] IBackgroundCopyJob *pJob,
[in] IBackgroundCopyError *pError
);
Parameter
[in] pJob
Enthält auftragsbezogene Informationen, z. B. die Anzahl der Bytes und Dateien, die vor dem Auftreten des Fehlers übertragen wurden. Sie enthält auch die Methoden zum Fortsetzen und Abbrechen des Auftrags. Geben Sie pJob nicht frei. BITS gibt die Schnittstelle frei, wenn die JobError-Methode zurückgibt.
[in] pError
Enthält Fehlerinformationen, z. B. die Datei, die zum Zeitpunkt des Auftretens des schwerwiegenden Fehlers verarbeitet wird, und eine Beschreibung des Fehlers. Lassen Sie pError nicht los. BITS gibt die Schnittstelle frei, wenn die JobError-Methode zurückgibt.
Rückgabewert
Diese Methode sollte S_OK zurückgeben. Andernfalls ruft BITS diese Methode weiterhin auf, bis S_OK zurückgegeben wird. Aus Leistungsgründen sollten Sie die Anzahl der Rückgaben eines anderen Werts als S_OK auf einige Male beschränken. Alternativ zum Zurückgeben eines Fehlercodes sollten Sie immer S_OK zurückgeben und den Fehler intern behandeln. Das Intervall, in dem diese Methode aufgerufen wird, ist willkürlich.
Beachten Sie, dass, wenn diese Methode fehlschlägt und Sie die IBackgroundCopyJob2::SetNotifyCmdLine-Methode aufgerufen haben, die Befehlszeile ausgeführt wird und diese Methode nicht erneut aufgerufen wird.
Hinweise
Nachdem Sie die Fehlerursache ermittelt haben, führen Sie eine der folgenden Optionen aus:
- Um den Auftrag abzubrechen, rufen Sie die IBackgroundCopyJob::Cancel-Methode auf. Die Abbruchanforderung hat keine Auswirkungen auf Uploadaufträge, wenn der Fehler nach dem erfolgreichen Hochladen der Datei aufgetreten ist. Wenn der Auftragstyp jedoch BG_JOB_TYPE_UPLOAD_REPLY ist und der Upload erfolgreich war, wird die Anforderung für die Antwortdaten durch Aufrufen der Cancel-Methode abgebrochen.
- Um den Teil des Auftrags zu akzeptieren, der erfolgreich übertragen wurde, bevor der Fehler aufgetreten ist, rufen Sie die IBackgroundCopyJob::Complete-Methode auf. Diese Option gilt nicht für Uploadaufträge. Sie können einen Teil eines Uploadauftrags nicht abschließen.
- Um die Verarbeitung des Auftrags abzuschließen, beheben Sie das Problem, und rufen Sie dann die IBackgroundCopyJob::Resume-Methode auf.
Vorübergehende Fehler generieren keine Aufrufe der JobError-Methode .
Um zu ermitteln, ob der Upload-, Antwort- oder Serveranwendungsteil eines Uploadantwortauftrags fehlgeschlagen ist, rufen Sie die IBackgroundCopyError::GetError-Methode auf, um den Kontext abzurufen, in dem der Fehler aufgetreten ist. Fehler bei der Serveranwendung, wenn der Kontext BG_ERROR_CONTEXT_REMOTE_APPLICATION ist. Der Kontext für Upload und Antwort ist BG_ERROR_CONTEXT_REMOTE_FILE. Die Antwort ist fehlgeschlagen, wenn das BytesTotal-Element der BG_JOB_REPLY_PROGRESS-Struktur nicht BG_SIZE_UNKNOWN ist. Andernfalls ist beim Hochladen ein Fehler aufgetreten.
Beispiele
Sehen Sie sich den Beispielcode für die IBackgroundCopyCallback-Schnittstelle an.
Anforderungen
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) | Windows XP |
Unterstützte Mindestversion (Server) | Windows Server 2003 |
Zielplattform | Windows |
Kopfzeile | bits.h |