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 會從源伺服器下載檔。
範例
請參閱 IBackgroundCopyCallback 介面的範例程序代碼。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows XP |
最低支援的伺服器 | Windows Server 2003 |
目標平台 | Windows |
標頭 | bits.h |