Share via


IBackgroundCopyCallback::JobTransferred 方法 (bits.h)

BITS 會在作業中的所有檔案都成功傳輸時,呼叫 JobTransferred 方法的實作。 對於BG_JOB_TYPE_UPLOAD_REPLY作業,BITS 會在上傳檔案傳輸至伺服器且已將回復傳送至客戶端之後呼叫 JobTransferred 方法。

語法

HRESULT JobTransferred(
  [in] IBackgroundCopyJob *pJob
);

參數

[in] pJob

包含作業相關信息,例如作業完成的時間、傳輸的位元元組數目,以及傳輸的檔案數目。 不要發行 pJob;BITS 會在方法傳回時釋放介面。

傳回值

這個方法應該傳回 S_OK;否則,BITS 會繼續呼叫這個方法,直到 傳回S_OK 為止。 基於效能考慮,您應該將傳回值S_OK以外的次數 限制為數 次。 除了傳回錯誤碼,請考慮一律傳回 S_OK 並在內部處理錯誤。 呼叫這個方法的間隔是任意的。

請注意,如果此方法失敗,而且您呼叫 IBackgroundCopyJob2::SetNotifyCmdLine 方法,則會執行命令行,而且不會再次呼叫此方法。

備註

一般而言,您的實作應該呼叫 IBackgroundCopyJob::Complete 方法來確認 BITS 已成功傳輸檔案。 在您呼叫 Complete 方法之前,用戶端上無法下載檔案和回復檔案。

如果您未在 90 天內呼叫 Complete 方法或 IBackgroundCopyJob::Cancel 方法, (預設 JobInactivityTimeout 群組原則) ,BITS 會取消作業並刪除下載的檔案和回復檔案;作業取消不會影響已成功上傳的檔案。

如果您想要擷取回呼中的回復數據,請查詢 pJob 以取得 IBackgroundCopyJob2 介面,並呼叫其 GetReplyData 方法。 若要擷取包含回復數據的檔名,請呼叫 GetReplyFileName 方法。

BITS 不保證傳輸的檔案對第三方入侵的完整性。 用戶端可以實作完整性檢查,以在呼叫 Complete 方法之前驗證已傳送的檔案。 若要在傳輸檔案時取得通知,請實作 IBackgroundCopyCallback2::FileTransferred 方法。 在回呼內,呼叫 IBackgroundCopyFile3::GetTemporaryName 方法,以取得包含已下載內容的臨時文件名稱。 驗證內容,然後呼叫 IBackgroundCopyFile3::SetValidationState 方法,以指出內容是否有效。 如果內容無效,且 BITS 已從源伺服器下載檔,則作業會處於錯誤狀態。 如果作業是從對等下載,BITS 會從源伺服器下載檔。

注意 BITS 支援每個使用者最多四個同時通知。 如果一或多個應用程式封鎖用戶傳回所有四個通知,則執行為相同使用者的應用程式將不會收到通知,直到一或多個封鎖通知傳回為止。 若要減少回呼封鎖其他通知的機會,請縮短實作。
 

範例

請參閱 IBackgroundCopyCallback 介面的範例程序代碼。

規格需求

需求
最低支援的用戶端 Windows XP
最低支援的伺服器 Windows Server 2003
目標平台 Windows
標頭 bits.h

另請參閱

IBackgroundCopyCallback

IBackgroundCopyJob

IBackgroundCopyJob::Cancel

IBackgroundCopyJob::Complete