次の方法で共有


IBackgroundCopyJob::Complete メソッド (bits.h)

ジョブを終了し、転送されたファイルをクライアントに保存します。

構文

HRESULT Complete();

戻り値

このメソッドは、次の HRESULT 値を 返します。 メソッドは、転送されたファイルの一時コピーの名前を指定された名前に変更することに関連するエラーを返すこともできます。

リターン コード 説明
S_OK
すべてのファイルが正常に転送されました。
BG_S_PARTIAL_COMPLETE
正常に転送されたファイルのサブセット。
BG_S_UNABLE_TO_DELETE_FILES
ジョブが正常に完了しました。ただし、サービスはジョブに関連付けられている一時ファイルを削除できませんでした。
BG_E_INVALID_STATE
ダウンロードの場合、ジョブの状態をBG_JOB_STATE_CANCELLEDまたはBG_JOB_STATE_ACKNOWLEDGEDすることはできません。

アップロードの場合、ジョブの状態をBG_JOB_STATE_TRANSFERREDする必要があります。

注釈

Complete メソッドを呼び出すまで、ダウンロード ファイルは使用できません。 BITS がファイルを正常に転送した後、 Complete メソッドを呼び出します。 メソッドは、一時ダウンロード ファイルの名前を最終的な宛先名に変更し、キューからジョブを削除します。 BITS は、サーバーが最後のフラグメントを受信したときに一時アップロード ファイルの名前を変更します。そのため、ダウンロード ジョブではネットワーク接続が必要であり、アップロード ジョブは必要ありません。

ジョブの状態が BG_JOB_STATE_TRANSFERRED場合、すべてのファイルが正常に転送されました。 ジョブの状態をチェックするには、IBackgroundCopyJob::GetState メソッドを呼び出します。 IBackgroundCopyCallback インターフェイスを実装して、すべてのファイルがクライアントに転送されたときに通知を受け取ることもできます。

Complete メソッドまたは IBackgroundCopyJob::Cancel メソッドを 90 日以内に呼び出さない場合 (既定の JobInactivityTimeout グループ ポリシー)、サービスはジョブを取り消します。 サービスがジョブを取り消した場合、ダウンロードしたファイルと応答ファイルはクライアントで使用できません。ジョブの取り消しは、正常にアップロードされたファイルには影響しません。

HRESULT が S_OKまたはBG_S_PARTIAL_COMPLETE されている場合、BITS は転送キューからジョブを削除します。 BITS ですべての一時ファイルの名前を変更できなかった場合、ジョブは転送キューに残ります。 名前が正常に変更されたファイルは、ユーザーが使用できます。 アプリケーションが問題を解決し、Complete メソッドを再度呼び出すか、IBackgroundCopyJob::Cancel メソッドを呼び出してジョブを取り消すまで、ジョブはキューに残ります (状態はBG_JOB_STATE_TRANSFERRED)。 ダウンロード ジョブの名前が変更されていないファイルを確認するには、BG_FILE_PROGRESS構造体の Completed メンバーを参照してください。

ダウンロード ジョブの場合は、転送プロセス中にいつでも Complete メソッドを呼び出すことができます。ただし、このメソッドを呼び出す前にクライアントに正常に転送されたファイルのみが保存されます。 たとえば、BITS が 5 つのファイルの 3 つ目を処理しているときに Complete メソッドを呼び出すと、最初の 2 つのファイルのみが保存されます。 転送されたファイルを確認するには、IBackgroundCopyFile::GetProgress メソッドを呼び出し、BytesTransferred メンバーをBG_FILE_PROGRESS構造体の BytesTotal メンバーと比較します。

アップロード ジョブの場合は、ジョブの状態がBG_JOB_STATE_TRANSFERREDされている場合にのみ Complete メソッドを呼び出すことができます。

BITS では、サードパーティの侵入に対する転送されたファイルの整合性は保証されません。 クライアントは、 Complete メソッドを呼び出した後に、転送されたファイルを検証する整合性チェックを実装できます。

ファイルの所有者は、呼び出しを行ったユーザーです。 たとえば、管理者が他のユーザーのジョブを完了した場合、管理者はファイルを所有します (ジョブの所有者ではありません)。

BITS 1.2 以前: ファイルの所有者は、 Complete メソッドを呼び出したユーザーに関係なく、ジョブの所有者です。

要件

要件
サポートされている最小のクライアント Windows XP
サポートされている最小のサーバー Windows Server 2003
対象プラットフォーム Windows
ヘッダー bits.h
Library Bits.lib
[DLL] QmgrPrxy.dll

こちらもご覧ください

ジョブの完了と取り消し

IBackgroundCopyCallback::JobTransferred

IBackgroundCopyJob::Cancel

IBackgroundCopyJob::GetState