Freigeben über


IBackgroundCopyCallback::JobTransferred-Methode (bits.h)

BITS ruft Ihre Implementierung der JobTransferred-Methode auf, wenn alle Dateien im Auftrag erfolgreich übertragen wurden. Für BG_JOB_TYPE_UPLOAD_REPLY Aufträge ruft BITS die JobTransferred-Methode auf, nachdem die Uploaddatei auf den Server übertragen und die Antwort an den Client übertragen wurde.

Syntax

HRESULT JobTransferred(
  [in] IBackgroundCopyJob *pJob
);

Parameter

[in] pJob

Enthält auftragsbezogene Informationen, z. B. den Zeitpunkt, zu dem der Auftrag abgeschlossen wurde, die Anzahl der übertragenen Bytes und die Anzahl der übertragenen Dateien. Geben Sie pJob nicht frei. BITS gibt die Schnittstelle frei, wenn die -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

In der Regel sollte Ihre Implementierung die IBackgroundCopyJob::Complete-Methode aufrufen, um zu bestätigen, dass BITS die Dateien erfolgreich übertragen hat. Downloaddateien und die Antwortdatei sind erst auf dem Client verfügbar, wenn Sie die Complete-Methode aufrufen.

Wenn Sie die Complete-Methode oder die IBackgroundCopyJob::Cancel-Methode nicht innerhalb von 90 Tagen aufrufen (Standard jobInactivityTimeout Gruppenrichtlinie), bricht BITS den Auftrag ab und löscht die heruntergeladenen Dateien und die Antwortdatei. Der Auftragsabbruch wirkt sich nicht auf Dateien aus, die erfolgreich hochgeladen wurden.

Wenn Sie die Antwortdaten in Ihrem Rückruf abrufen möchten, fragen Sie pJob für die IBackgroundCopyJob2-Schnittstelle ab, und rufen Sie die GetReplyData-Methode auf. Um den Namen der Datei abzurufen, die die Antwortdaten enthält, rufen Sie die GetReplyFileName-Methode auf.

BITS garantiert nicht die Integrität der übertragenen Dateien gegen Eindringlinge von Drittanbietern. Clients können Integritätsprüfungen implementieren, um übertragene Dateien zu überprüfen, bevor die Complete-Methode aufgerufen wird. Um Benachrichtigungen zu erhalten, wenn eine Datei übertragen wird, implementieren Sie die IBackgroundCopyCallback2::FileTransferred-Methode . Rufen Sie im Rückruf die IBackgroundCopyFile3::GetTemporaryName-Methode auf, um den Namen der temporären Datei abzurufen, die den heruntergeladenen Inhalt enthält. Überprüfen Sie den Inhalt, und rufen Sie dann die IBackgroundCopyFile3::SetValidationState-Methode auf, um anzugeben, ob der Inhalt gültig ist. Wenn der Inhalt ungültig ist und BITS die Datei vom Ursprungsserver heruntergeladen hat, befindet sich der Auftrag im Fehlerzustand. Wenn der Auftrag von einem Peer heruntergeladen wurde, lädt BITS die Datei vom Ursprungsserver herunter.

Hinweis BITS unterstützt bis zu vier gleichzeitige Benachrichtigungen pro Benutzer. Wenn eine oder mehrere Anwendungen verhindern, dass alle vier Benachrichtigungen für einen Benutzer zurückgegeben werden, erhält eine Anwendung, die als derselbe Benutzer ausgeführt wird, keine Benachrichtigungen, bis mindestens eine der blockierenden Benachrichtigungen zurückgegeben wird. Um das Risiko zu verringern, dass Ihr Rückruf andere Benachrichtigungen blockiert, halten Sie Ihre Implementierung kurz.
 

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

Weitere Informationen

IBackgroundCopyCallback

IBackgroundCopyJob

IBackgroundCopyJob::Cancel

IBackgroundCopyJob::Complete