Share via


IBackgroundCopyJob::Complete-Methode (bits.h)

Beendet den Auftrag und speichert die übertragenen Dateien auf dem Client.

Syntax

HRESULT Complete();

Rückgabewert

Diese Methode gibt die folgenden HRESULT-Werte zurück. Die -Methode kann auch Fehler im Zusammenhang mit dem Umbenennen der temporären Kopien der übertragenen Dateien in die angegebenen Namen zurückgeben.

Rückgabecode Beschreibung
S_OK
Alle Dateien wurden erfolgreich übertragen.
BG_S_PARTIAL_COMPLETE
Eine Teilmenge der erfolgreich übertragenen Dateien.
BG_S_UNABLE_TO_DELETE_FILES
Der Auftrag wurde erfolgreich abgeschlossen; Der Dienst konnte jedoch die dem Auftrag zugeordneten temporären Dateien nicht löschen.
BG_E_INVALID_STATE
Bei Downloads kann der Status des Auftrags nicht BG_JOB_STATE_CANCELLED oder BG_JOB_STATE_ACKNOWLEDGED werden.

Bei Uploads muss der Status des Auftrags BG_JOB_STATE_TRANSFERRED sein.

Hinweise

Downloaddateien sind erst verfügbar, wenn Sie die Complete-Methode aufrufen. Rufen Sie die Complete-Methode auf, nachdem BITS die Dateien erfolgreich übertragen hat. Die -Methode benennt die temporären Downloaddateien in ihre endgültigen Zielnamen um und entfernt den Auftrag aus der Warteschlange. Beachten Sie, dass BITS die temporäre Uploaddatei umbenennt, wenn der Server das letzte Fragment empfängt, weshalb Downloadaufträge Netzwerkkonnektivität erfordern, und Uploadaufträge nicht.

Alle Dateien wurden erfolgreich übertragen, wenn der Status des Auftrags BG_JOB_STATE_TRANSFERRED ist. Um den Status des Auftrags zu überprüfen, rufen Sie die IBackgroundCopyJob::GetState-Methode auf. Sie können auch die IBackgroundCopyCallback-Schnittstelle implementieren, um Benachrichtigungen zu erhalten, wenn alle Dateien auf den Client übertragen wurden.

Wenn Sie die Complete-Methode oder die IBackgroundCopyJob::Cancel-Methode nicht innerhalb von 90 Tagen aufrufen (standard jobInactivityTimeout Gruppenrichtlinie), bricht der Dienst den Auftrag ab. Wenn der Dienst den Auftrag abbricht, sind die heruntergeladenen Dateien und die Antwortdatei für den Client nicht verfügbar. Der Auftragsabbruch wirkt sich nicht auf Dateien aus, die erfolgreich hochgeladen wurden.

BITS entfernt den Auftrag aus der Übertragungswarteschlange, wenn das HRESULT S_OK oder BG_S_PARTIAL_COMPLETE ist. Der Auftrag verbleibt in der Übertragungswarteschlange, wenn BITS nicht alle temporären Dateien umbenennen konnte. Dateien, die erfolgreich umbenannt wurden, stehen dem Benutzer zur Verfügung. Der Auftrag verbleibt in der Warteschlange (der Status ist BG_JOB_STATE_TRANSFERRED), bis die Anwendung das Problem beheben kann und entweder die Complete-Methode oder die IBackgroundCopyJob::Cancel-Methode aufruft, um den Auftrag abzubrechen. Informationen dazu, welche Dateien für Downloadaufträge nicht umbenannt wurden, finden Sie im Element Abgeschlossen der BG_FILE_PROGRESS-Struktur .

Für Downloadaufträge können Sie die Complete-Methode jederzeit während des Übertragungsvorgangs aufrufen. Es werden jedoch nur Dateien gespeichert, die vor dem Aufruf dieser Methode erfolgreich an den Client übertragen wurden. Wenn Sie beispielsweise die Complete-Methode aufrufen, während BITS die dritte von fünf Dateien verarbeitet, werden nur die ersten beiden Dateien gespeichert. Um zu ermitteln, welche Dateien übertragen wurden, rufen Sie die IBackgroundCopyFile::GetProgress-Methode auf, und vergleichen Sie das BytesTransferred-Element mit dem BytesTotal-Element der BG_FILE_PROGRESS-Struktur .

Für Uploadaufträge können Sie die Complete-Methode nur aufrufen, wenn der Status des Auftrags BG_JOB_STATE_TRANSFERRED ist.

BITS garantiert nicht die Integrität der übertragenen Dateien gegen Eindringlinge von Drittanbietern. Clients können Integritätsprüfungen implementieren, um übertragene Dateien nach dem Aufruf der Complete-Methode zu überprüfen.

Der Besitzer der Datei ist der Benutzer, der den Anruf getätigt hat. Wenn z. B. ein Administrator die Aufgabe einer anderen Person erledigt, besitzt der Administrator – nicht der Besitzer des Auftrags – die Datei.

BITS 1.2 und früher: Der Besitzer der Datei ist der Besitzer des Auftrags, unabhängig davon, wer die Complete-Methode aufgerufen hat.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows XP
Unterstützte Mindestversion (Server) Windows Server 2003
Zielplattform Windows
Kopfzeile bits.h
Bibliothek Bits.lib
DLL QmgrPrxy.dll

Weitere Informationen

Abschließen und Abbrechen eines Auftrags

IBackgroundCopyCallback::JobTransferred

IBackgroundCopyJob::Cancel

IBackgroundCopyJob::GetState