IBitsPeerCacheAdministration
COM公式ドキュメント
IBitsPeerCacheAdministration は、コンテンツのダウンロード元となるピアのプールを管理するために使用します。
解説(Remarks)
ピアキャッシュを自分で管理する必要は通常ありません。BITS がキャッシュを管理します。
キャッシュを変更するには管理者権限が必要です。
メソッド 14
vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。
キャッシュの最大サイズを取得します。
| pBytes | DWORD* | out | キャッシュの最大サイズ。利用可能なハードディスク ドライブ領域に対する割合 (パーセント) で表されます。 |
戻り値
このメソッドは次の戻り値を返します。
| 戻り値 | 説明 |
|---|---|
| 成功しました。 |
キャッシュの最大サイズを指定します。
| Bytes | DWORD | in | キャッシュの最大サイズ。利用可能なハードディスク ドライブ領域に対する割合 (パーセント) で表されます。 |
戻り値
このメソッドは次の戻り値を返します。
| 戻り値 | 説明 |
|---|---|
| 成功しました。 | |
| 構成の設定値は正常に保存されましたが、設定されているグループポリシーが優先されるため、この設定値は使用されません。 |
解説(Remarks)
この値は、MaxCacheSize グループポリシーが設定されていない場合にのみ使用されます。
キャッシュが最大サイズに達すると、BITS は必要なディスク領域が確保されるまで、最後にアクセスされた時期が最も古いファイルから順に削除します。現在のキャッシュ サイズより小さい値を指定した場合、BITS は要求されたサイズになるまでキャッシュからファイルを削除します。BITS は経過時間に基づいてファイルを削除します。キャッシュ サイズより大きいファイルはキャッシュされません。
既定では、キャッシュの最大サイズはディスク サイズの 1% です。BITS はこの上限を使ってキャッシュ用のディスク領域を予約するわけではありません。ディスク領域に空きがある場合に、指定した上限までをキャッシュに使用します。指定できる最大値はディスク サイズの 80% です。
キャッシュ サイズを縮小する要求が行われた時点で、BITS がキャッシュ内のファイルをダウンロード中である場合、BITS はそのダウンロードが完了するまでファイルを削除しません。
ファイルがキャッシュから削除されるまでの経過時間を取得します。
| pSeconds | DWORD* | out | 経過時間 (秒単位)。ファイルに最後にアクセスされた時点からの経過時間がこの値を超えると、BITS はそのファイルをキャッシュから削除します。 |
戻り値
このメソッドは次の戻り値を返します。
| 戻り値 | 説明 |
|---|---|
| 成功しました。 |
経過時間に基づいて、ファイルをキャッシュから削除するタイミングを指定します。
| Seconds | DWORD | in | 経過時間 (秒単位)。ファイルに最後にアクセスされた時点からの経過時間がこの値を超えると、BITS はそのファイルをキャッシュから削除します。経過時間はファイルにアクセスされるたびにリセットされます。最大値は 10,368,000 秒 (120 日)、最小値は 86,400 秒 (1 日) です。既定値は 7,776,000 秒 (90 日) です。 |
戻り値
このメソッドは次の戻り値を返します。
| 戻り値 | 説明 |
|---|---|
| 成功しました。 | |
| 構成の設定値は正常に保存されましたが、設定されているグループポリシーが優先されるため、この設定値は使用されません。 |
解説(Remarks)
この値は、MaxContentAge グループポリシーが設定されていない場合にのみ使用されます。
コンピューターがピアにコンテンツを提供できるかどうか、およびピアからコンテンツをダウンロードできるかどうかを決定する構成フラグを取得します。
| pFlags | DWORD* | out | コンピューターがピアにコンテンツを提供できるかどうか、およびピアからコンテンツをダウンロードできるかどうかを決定するフラグです。設定できるフラグは次のとおりです。
|
戻り値
このメソッドは次の戻り値を返します。
| 戻り値 | 説明 |
|---|---|
| 成功しました。 |
解説(Remarks)
BITS がピアからダウンロードできるのは、コンピューター レベルとジョブ レベルの両方でピアキャッシュが有効になっている場合のみです。この API はコンピューター レベルにのみ影響します。詳細については、IBitsPeerCacheAdministration::SetConfigurationFlags を参照してください。
ピアキャッシュは、グループポリシーによって有効化される場合と、IBitsPeerCacheAdministration::SetConfigurationFlags メソッドの呼び出しによって有効化される場合があります。
コンピューターがピアにコンテンツを提供できるかどうか、およびピアからコンテンツをダウンロードできるかどうかを決定する構成フラグを設定します。
| Flags | DWORD | in | コンピューターがピアにコンテンツを提供できるかどうか、およびピアからコンテンツをダウンロードできるかどうかを決定するフラグです。設定できるフラグは次のとおりです。
|
戻り値
このメソッドは次の戻り値を返します。
| 戻り値 | 説明 |
|---|---|
| 成功しました。 | |
|
構成の設定値は正常に保存されましたが、設定されているグループポリシーが優先されるため、この設定値は使用されません。
このメソッドは、設定した値がグループポリシーの値と異なる場合にこの値を返します。値が同じ場合は S_OK を返します。 |
解説(Remarks)
この値は、EnablePeerCaching グループポリシーが設定されていない場合にのみ使用されます。
ピアからコンテンツをダウンロードするか、ピアにコンテンツを提供するかは、ジョブ側でも決定されます。詳細については、IBackgroundCopyJob4::SetPeerCachingFlags メソッドを参照してください。
キャッシュ内のレコードを列挙するために使用する IEnumBitsPeerCacheRecords インターフェイス ポインターを取得します。この列挙は、キャッシュ内のレコードのスナップショットです。
| ppEnum | IEnumBitsPeerCacheRecords** | out | キャッシュ内のレコードを列挙するために使用する IEnumBitsPeerCacheRecords インターフェイス ポインターです。使用が終わったら ppEnum を解放してください。 |
戻り値
このメソッドは、成功した場合は S_OK を、エラーの場合は標準 COM の HRESULT 値のいずれかを返します。
キャッシュからレコードを取得します。
| id | GUID* | in | キャッシュから取得するレコードの識別子です。識別子は IBitsPeerCacheRecord::GetId メソッドで取得できます。 |
| ppRecord | IBitsPeerCacheRecord** | out | キャッシュ レコードの IBitsPeerCacheRecord インターフェイスです。使用が終わったら ppRecord を解放してください。 |
戻り値
このメソッドは次の戻り値を返します。
| 戻り値 | 説明 |
|---|---|
| 成功しました。 |
キャッシュからすべてのレコードとファイルを削除します。
戻り値
このメソッドは次の戻り値を返します。
| 戻り値 | 説明 |
|---|---|
| 成功しました。 |
解説(Remarks)
現在実行中のキャッシュ操作がすべて完了するまで、キャッシュはクリアされません。
キャッシュからレコードとファイルを削除します。このメソッドは、レコードの識別子を使用して削除対象のレコードを特定します。
| id | GUID* | in | キャッシュから削除するレコードの識別子です。識別子は IBitsPeerCacheRecord::GetId メソッドで取得できます。 |
戻り値
このメソッドは次の戻り値を返します。
| 戻り値 | 説明 |
|---|---|
| 成功しました。 | |
| キャッシュ レコードが使用中のため、変更または削除できません。数秒後に再試行してください。 |
解説(Remarks)
そのキャッシュ レコードに対する現在の操作がすべて完了するまで、キャッシュ レコードは削除されません。
指定した URL に対応するすべてのキャッシュ レコードとファイルをキャッシュから削除します。
| url | LPWSTR | in | キャッシュ レコードとファイルをキャッシュから削除する対象ファイルの URL を含む、null 終端文字列です。 |
戻り値
このメソッドは次の戻り値を返します。
| 戻り値 | 説明 |
|---|---|
| 成功しました。 | |
| 指定された URL は存在しません。 | |
| キャッシュ レコードが使用中のため、変更または削除できません。数秒後に再試行してください。 |
解説(Remarks)
そのファイルのキャッシュ レコードに対する現在の操作がすべて完了するまで、キャッシュ レコードは削除されません。
コンテンツを提供できるピアを列挙するために使用する IEnumBitsPeers インターフェイス ポインターを取得します。この列挙は、キャッシュ内のレコードのスナップショットです。
| ppEnum | IEnumBitsPeers** | out | コンテンツを提供できるピアを列挙するために使用する IEnumBitsPeers インターフェイス ポインターです。使用が終わったら ppEnum を解放してください。 |
戻り値
このメソッドは、成功した場合は S_OK を、エラーの場合は標準 COM の HRESULT 値のいずれかを返します。
コンテンツを提供できるピアの一覧から、すべてのピアを削除します。
戻り値
このメソッドは次の戻り値を返します。
| 戻り値 | 説明 |
|---|---|
| 成功しました。 |
解説(Remarks)
このメソッドを呼び出す必要は通常ありません。
BITS は、ジョブがピアにコンテンツを要求したときに新しいピアを自動的に検出します。また、IBitsPeerCacheAdministration::DiscoverPeers メソッドを呼び出して、ピアの検出を強制することもできます。
コンテンツを提供できるピアの一覧を生成します。
戻り値
このメソッドは次の戻り値を返します。
| 戻り値 | 説明 |
|---|---|
| 成功しました。 |
解説(Remarks)
このメソッドを呼び出す必要は通常ありません。
BITS は、ジョブがピアにコンテンツを要求した際にクライアントのピア一覧に十分なピアがない場合、新しいピアを自動的に検出します。ピアは、クライアントと同じ Windows ドメインおよびサブネットに属し、ピアへのコンテンツ提供が有効になっている必要があります。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
#define global IID_IBitsPeerCacheAdministration "{659CDEAD-489E-11D9-A9CD-000D56965251}" #usecom global IBitsPeerCacheAdministration IID_IBitsPeerCacheAdministration "{}" #comfunc global IBitsPeerCacheAdministration_GetMaximumCacheSize 3 var #comfunc global IBitsPeerCacheAdministration_SetMaximumCacheSize 4 int #comfunc global IBitsPeerCacheAdministration_GetMaximumContentAge 5 var #comfunc global IBitsPeerCacheAdministration_SetMaximumContentAge 6 int #comfunc global IBitsPeerCacheAdministration_GetConfigurationFlags 7 var #comfunc global IBitsPeerCacheAdministration_SetConfigurationFlags 8 int #comfunc global IBitsPeerCacheAdministration_EnumRecords 9 sptr #comfunc global IBitsPeerCacheAdministration_GetRecord 10 var,sptr #comfunc global IBitsPeerCacheAdministration_ClearRecords 11 #comfunc global IBitsPeerCacheAdministration_DeleteRecord 12 var #comfunc global IBitsPeerCacheAdministration_DeleteUrl 13 wstr #comfunc global IBitsPeerCacheAdministration_EnumPeers 14 sptr #comfunc global IBitsPeerCacheAdministration_ClearPeers 15 #comfunc global IBitsPeerCacheAdministration_DiscoverPeers 16 ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。#define global IID_IBitsPeerCacheAdministration "{659CDEAD-489E-11D9-A9CD-000D56965251}" #usecom global IBitsPeerCacheAdministration IID_IBitsPeerCacheAdministration "{}" #comfunc global IBitsPeerCacheAdministration_GetMaximumCacheSize 3 sptr #comfunc global IBitsPeerCacheAdministration_SetMaximumCacheSize 4 int #comfunc global IBitsPeerCacheAdministration_GetMaximumContentAge 5 sptr #comfunc global IBitsPeerCacheAdministration_SetMaximumContentAge 6 int #comfunc global IBitsPeerCacheAdministration_GetConfigurationFlags 7 sptr #comfunc global IBitsPeerCacheAdministration_SetConfigurationFlags 8 int #comfunc global IBitsPeerCacheAdministration_EnumRecords 9 sptr #comfunc global IBitsPeerCacheAdministration_GetRecord 10 sptr,sptr #comfunc global IBitsPeerCacheAdministration_ClearRecords 11 #comfunc global IBitsPeerCacheAdministration_DeleteRecord 12 sptr #comfunc global IBitsPeerCacheAdministration_DeleteUrl 13 wstr #comfunc global IBitsPeerCacheAdministration_EnumPeers 14 sptr #comfunc global IBitsPeerCacheAdministration_ClearPeers 15 #comfunc global IBitsPeerCacheAdministration_DiscoverPeers 16 ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。