IBackgroundCopyJob4
COM公式ドキュメント
このインターフェイスは、ピアキャッシュの有効化、ダウンロード時間の制限、およびユーザートークンの特性の確認に使用します。
メソッド 6
vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。
ジョブのファイルをキャッシュしてピアに提供できるかどうか、およびジョブがピアからコンテンツをダウンロードできるかどうかを決定するフラグを設定します。
| Flags | DWORD | in | ジョブのファイルをキャッシュしてピアに提供できるかどうか、およびジョブがピアからコンテンツをダウンロードできるかどうかを決定するフラグ。設定できるフラグは次のとおりです。
|
戻り値
このメソッドは次の値を返します。
| 戻り値 | 説明 |
|---|---|
| 成功しました。 |
解説(Remarks)
これらのフラグの設定は、EnablePeerCaching グループポリシーの設定、または IBitsPeerCacheAdministration::SetConfigurationFlags の呼び出しによってピアキャッシュが有効になっている場合にのみ意味を持ちます。
ジョブのファイルをキャッシュしてピアに提供できるかどうか、および BITS がジョブのコンテンツをピアからダウンロードできるかどうかを決定するフラグを取得します。
| pFlags | DWORD* | out | ジョブのファイルをキャッシュしてピアに提供できるかどうか、および BITS がジョブのコンテンツをピアからダウンロードできるかどうかを決定するフラグ。設定できるフラグは次のとおりです。
|
戻り値
解説(Remarks)
BITS がピアからダウンロードできるのは、コンピューターレベルとジョブレベルの両方でピアキャッシュが有効になっている場合のみです。この API はジョブレベルにのみ影響します。詳細については、IBackgroundCopyJob4::SetPeerCachingFlags を参照してください。
ジョブを作成した、またはジョブの所有権を取得した所有者のトークンの整合性レベルを取得します。
| pLevel | DWORD* | out | ジョブを作成した、またはジョブの所有権を取得した所有者のトークンの整合性レベル。 |
戻り値
このメソッドは次の値を返します。
| 戻り値 | 説明 |
|---|---|
| 成功しました。 |
解説(Remarks)
ユーザーのトークンの整合性レベルがジョブに与える影響の詳細については、User Account Control and BITS を参照してください。
このメソッドは、GetSidSubAuthority 関数が返す値を返します。設定可能な必須整合性 RID の値については、セキュリティのドキュメントの Well-known SIDs を参照してください。
ジョブを作成した時点、またはジョブの所有権を取得した時点で、所有者のトークンが昇格されていたかどうかを示す値を取得します。
| pElevated | BOOL* | out | ジョブを作成した時点、またはジョブの所有権を取得した時点で所有者のトークンが昇格されていた場合は TRUE、そうでない場合は FALSE になります。 |
戻り値
このメソッドは次の値を返します。
| 戻り値 | 説明 |
|---|---|
| 成功しました。 |
解説(Remarks)
昇格されたトークンの詳細については、User Account Control and BITS を参照してください。
ジョブが昇格されたトークンで作成された場合、そのジョブに対する以降のすべての更新も昇格されたトークンで行う必要がある点に注意してください。
BITS がジョブ内のファイルの転送に費やす最大時間を設定します。
| Timeout | DWORD | in | BITS がジョブ内のファイルの転送に費やす最大時間 (秒単位)。既定値は 7,776,000 秒 (90 日) です。 |
戻り値
このメソッドは次の値を返します。
| 戻り値 | 説明 |
|---|---|
| 成功しました。 |
解説(Remarks)
この値は、ジョブが CONNECTING 状態または TRANSFERRING 状態で費やすことのできる最大経過時間です。QUEUED 状態または TRANSIENT_ERROR 状態で費やされた時間は、タイムアウト値には加算されません。転送時間がタイムアウト値を超えると、ジョブはエラーコード BG_E_MAXDOWNLOAD_TIMEOUT の致命的エラー状態になります。
BITS がジョブのデータを転送している間にコンピューターがスリープした場合、データが転送されていなくてもスリープに費やされた時間はタイムアウトに加算される点に注意してください。
IBackgroundCopyJob::Resume メソッドを呼び出すと、経過時間はリセットされます。
このメソッドは MaxDownloadTime グループポリシーを上書きします。
BITS がジョブ内のファイルの転送に費やす最大時間を取得します。
| pTimeout | DWORD* | out | BITS がジョブ内のファイルの転送に費やす最大時間 (秒単位)。 |
戻り値
このメソッドは次の値を返します。
| 戻り値 | 説明 |
|---|---|
| 成功しました。 |
解説(Remarks)
この値は、ジョブが CONNECTING 状態または TRANSFERRING 状態で費やすことのできる最大経過時間です。QUEUED 状態または TRANSIENT_ERROR 状態で費やされた時間は、タイムアウト値には加算されません。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
#define global IID_IBackgroundCopyJob4 "{659CDEAE-489E-11D9-A9CD-000D56965251}" #usecom global IBackgroundCopyJob4 IID_IBackgroundCopyJob4 "{}" #comfunc global IBackgroundCopyJob4_SetPeerCachingFlags 47 int #comfunc global IBackgroundCopyJob4_GetPeerCachingFlags 48 var #comfunc global IBackgroundCopyJob4_GetOwnerIntegrityLevel 49 var #comfunc global IBackgroundCopyJob4_GetOwnerElevationState 50 var #comfunc global IBackgroundCopyJob4_SetMaximumDownloadTime 51 int #comfunc global IBackgroundCopyJob4_GetMaximumDownloadTime 52 var ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。#define global IID_IBackgroundCopyJob4 "{659CDEAE-489E-11D9-A9CD-000D56965251}" #usecom global IBackgroundCopyJob4 IID_IBackgroundCopyJob4 "{}" #comfunc global IBackgroundCopyJob4_SetPeerCachingFlags 47 int #comfunc global IBackgroundCopyJob4_GetPeerCachingFlags 48 sptr #comfunc global IBackgroundCopyJob4_GetOwnerIntegrityLevel 49 sptr #comfunc global IBackgroundCopyJob4_GetOwnerElevationState 50 sptr #comfunc global IBackgroundCopyJob4_SetMaximumDownloadTime 51 int #comfunc global IBackgroundCopyJob4_GetMaximumDownloadTime 52 sptr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。