CF_CALLBACK_PARAMETERS構造体 (cfapi.h)
この構造体には、ファイル オフセット、長さ、フラグなどのコールバック固有のパラメーターが含まれています。
構文
typedef struct CF_CALLBACK_PARAMETERS {
ULONG ParamSize;
union {
struct {
CF_CALLBACK_CANCEL_FLAGS Flags;
union {
struct {
LARGE_INTEGER FileOffset;
LARGE_INTEGER Length;
} FetchData;
} DUMMYUNIONNAME;
} Cancel;
struct {
CF_CALLBACK_FETCH_DATA_FLAGS Flags;
LARGE_INTEGER RequiredFileOffset;
LARGE_INTEGER RequiredLength;
LARGE_INTEGER OptionalFileOffset;
LARGE_INTEGER OptionalLength;
LARGE_INTEGER LastDehydrationTime;
CF_CALLBACK_DEHYDRATION_REASON LastDehydrationReason;
} FetchData;
struct {
CF_CALLBACK_VALIDATE_DATA_FLAGS Flags;
LARGE_INTEGER RequiredFileOffset;
LARGE_INTEGER RequiredLength;
} ValidateData;
struct {
CF_CALLBACK_FETCH_PLACEHOLDERS_FLAGS Flags;
PCWSTR Pattern;
} FetchPlaceholders;
struct {
CF_CALLBACK_OPEN_COMPLETION_FLAGS Flags;
} OpenCompletion;
struct {
CF_CALLBACK_CLOSE_COMPLETION_FLAGS Flags;
} CloseCompletion;
struct {
CF_CALLBACK_DEHYDRATE_FLAGS Flags;
CF_CALLBACK_DEHYDRATION_REASON Reason;
} Dehydrate;
struct {
CF_CALLBACK_DEHYDRATE_COMPLETION_FLAGS Flags;
CF_CALLBACK_DEHYDRATION_REASON Reason;
} DehydrateCompletion;
struct {
CF_CALLBACK_DELETE_FLAGS Flags;
} Delete;
struct {
CF_CALLBACK_DELETE_COMPLETION_FLAGS Flags;
} DeleteCompletion;
struct {
CF_CALLBACK_RENAME_FLAGS Flags;
PCWSTR TargetPath;
} Rename;
struct {
CF_CALLBACK_RENAME_COMPLETION_FLAGS Flags;
PCWSTR SourcePath;
} RenameCompletion;
} DUMMYUNIONNAME;
} CF_CALLBACK_PARAMETERS;
メンバー
ParamSize
ParamSize は、実行されているコールバックに基づいて設定されます。
コールバック | ParamSize 情報 |
---|---|
CF_CALLBACK_TYPE_FETCH_DATA | のサイズ FetchData と のサイズに ULONG 設定します。 |
CF_CALLBACK_TYPE_VALIDATE_DATA | のサイズ ValidateData と のサイズに ULONG 設定します。 |
CF_CALLBACK_TYPE_CANCEL_FETCH_DATA | のサイズ Cancel.FetchData に 2 つの ULONG s のサイズを加えた値に設定します。 |
CF_CALLBACK_TYPE_FETCH_PLACHOLDERS | のサイズ FetchPlaceholders と のサイズに ULONG 設定します。 |
CF_CALLBACK_TYPE_CANCEL_FETCH_PLACHOLDERS | 2 つの ULONG s のサイズに設定します。 |
CF_CALLBACK_TYPE_NOTIFY_FILE_OPEN_COMPLETION | のサイズ OpenCompletion と のサイズに ULONG 設定します。 |
CF_CALLBACK_TYPE_NOTIFY_FILE_CLOSE_COMPLETION | のサイズ CloseCompletion と のサイズに ULONG 設定します。 |
CF_CALLBACK_TYPE_NOTIFY_DEHYDRATE | のサイズ Dehydrate と のサイズに ULONG 設定します。 |
CF_CALLBACK_TYPE_NOTIFY_DEHYDRATE_COMPLETION | のサイズ DehydrateCompletion と のサイズに ULONG 設定します。 |
CF_CALLBACK_TYPE_NOTIFY_DELETE | のサイズ Delete と のサイズに ULONG 設定します。 |
CF_CALLBACK_TYPE_NOTIFY_DELETE_COMPLETION | のサイズ DeleteCompletion と のサイズに ULONG 設定します。 |
CF_CALLBACK_TYPE_NOTIFY_RENAME | のサイズ Rename と のサイズに ULONG 設定します。 |
CF_CALLBACK_TYPE_NOTIFY_RENAME_COMPLETION | のサイズ RenameCompletion と のサイズに ULONG 設定します。 |
DUMMYUNIONNAME
DUMMYUNIONNAME.Cancel
DUMMYUNIONNAME.Cancel.Flags
フラグ は、次のフラグに設定できます。
- CF_CALLBACK_CANCEL_FLAG_IO_TIMEOUT は、60 秒のタイマーの有効期限の結果としてユーザー要求が取り消された場合に設定されます。
- CF_CALLBACK_CANCEL_FLAG_IO_ABORTED は、ユーザーがアプリによって開始されたダウンロード トーストからハイドレーションを明示的に終了した結果、ユーザー要求が取り消された場合に設定されます。
DUMMYUNIONNAME.Cancel.DUMMYUNIONNAME
DUMMYUNIONNAME.Cancel.DUMMYUNIONNAME.FetchData
DUMMYUNIONNAME.Cancel.DUMMYUNIONNAME.FetchData.FileOffset
不要になったファイル データの範囲を指定するためのオフセット (バイト単位)。 これは、対応するフェッチからの RequiredFileOffset と一致する可能性がありますが、サブセットである場合もあります。 サブセットの場合、キャンセル範囲外のデータは、たとえば、後続に到着した未処理の I/O 操作を満たすために必要です。
DUMMYUNIONNAME.Cancel.DUMMYUNIONNAME.FetchData.Length
不要になったファイル データの長さ (バイト単位)。 これは、対応するフェッチの RequiredLength と一致する可能性がありますが、サブセットである場合もあります。 サブセットの場合、キャンセル範囲外のデータは、たとえば、後続に到着した未処理の I/O 操作を満たすために必要です。
DUMMYUNIONNAME.FetchData
DUMMYUNIONNAME.FetchData.Flags
フラグ は、次の値に設定できます。
- CF_CALLBACK_FETCH_DATA_FLAG_RECOVER は、同期プロバイダーのクリーンでないシャットダウンや電源の損失などが原因で、以前にハイドレーション プロセスが中断された結果としてコールバックが呼び出された場合に設定されます。
- CF_CALLBACK_FETCH_DATA_FLAG_EXPLICIT_HYDRATION は、 CfHydratePlaceholder の呼び出しの結果としてコールバックが呼び出された場合に設定されます。
DUMMYUNIONNAME.FetchData.RequiredFileOffset
未処理の I/O 要求を満たすためにフィルターで絶対に必要なファイル データの範囲を指定するためのオフセット (バイト単位)。
DUMMYUNIONNAME.FetchData.RequiredLength
未処理の I/O 要求を満たすためにフィルターで絶対に必要なファイル データの長さ (バイト単位)。
DUMMYUNIONNAME.FetchData.OptionalFileOffset
オフセット (バイト単位) は、より広範なファイル データに関するヒントとして提供されます。これは、同期プロバイダーがより大きなチャンクでデータを提供することを好む場合に備えて、プラットフォームに役立つ可能性があります。 通常、省略可能な範囲は、プレースホルダーに現在存在しない最大連続範囲になります。 これは省略可能であり、同期プロバイダーがより大きなデータ セグメントを操作する場合に使用できます。
DUMMYUNIONNAME.FetchData.OptionalLength
同期プロバイダーがより大きなチャンクでデータを提供することを好む場合に備えて、プラットフォームに役立つ可能性のある、より広範なファイル データに関するヒントとして提供される長さ (バイト単位)。 通常、省略可能な範囲は、プレースホルダーに現在存在しない最大連続範囲になります。 これは省略可能であり、同期プロバイダーがより大きなデータ セグメントを操作する場合に使用できます。
-1 の長さは、 CF_EOF
無限大 (つまりファイルの末尾) を意味します。
同期プロバイダーが必要なすべてのデータを一度に返す必要はありません。 また、同期プロバイダーが必要な範囲内またはオプションの範囲内のデータを返す必要もありません。 プラットフォームは、無効な CF_OPERATION_TYPE_TRANSFER_DATA 操作のために、変更または同期されていないファイル データが clobbered になる状況がないことを保証します。 ただし、返されるデータは、返される範囲がファイルの末尾で終了しない限り、オフセットと長さの両方に対して 4 KB のアラインメントが必要です。この場合、範囲がファイルの末尾以降で終了する場合は、長さが 4 KB 揃えである必要はありません。
DUMMYUNIONNAME.FetchData.LastDehydrationTime
問題のクラウド ファイルが脱水されたシステム時刻。 これは、1601 年 1 月 1 日以降の 100 ナノ秒間隔のカウントです。
DUMMYUNIONNAME.FetchData.LastDehydrationReason
ファイルが最後に退避された理由を指定する CF_CALLBACK_DEHYDRATION_REASON 列挙体のメンバー。
LastDehydrationReason には、次のいずれかを指定できます。
理由 | 説明 |
---|---|
CF_CALLBACK_DEHYDRATE_REASON_NEVER | クラウド ファイルは、作成後に一度も脱水されていません。 |
CF_CALLBACK_DEHYDRATE_REASON_USER_MANUAL | ユーザーがクラウド ファイルを明示的に退避しました。 |
CF_CALLBACK_DEHYDRATE_REASON_SYSTEM_PERIODIC | ユーザー定義ポリシーに基づいてクラウド ファイルが期限切れになっているプラットフォーム。 |
CF_CALLBACK_DEHYDRATE_REASON_SYSTEM_LOWSPACE | このファイルが存在するボリュームでディスク領域が少ない場合、プラットフォームによってクラウド ファイルが脱水されました。 |
CF_CALLBACK_DEHYDRATE_REASON_SYSTEM_UPGRADE | OS をアップグレードするためにディスク領域を再利用するときに、プラットフォームによってこのファイルが脱水されました。 |
DUMMYUNIONNAME.ValidateData
DUMMYUNIONNAME.ValidateData.Flags
データ検証フラグ。 CF_CALLBACK_VALIDATE_DATA_FLAG_EXPLICIT_HYDRATION は、 CfHydratePlaceholder の呼び出しの結果としてコールバックが呼び出された場合に設定されます。
DUMMYUNIONNAME.ValidateData.RequiredFileOffset
検証するファイル データの範囲を指定するためのオフセット (バイト単位)。
DUMMYUNIONNAME.ValidateData.RequiredLength
検証する必要があるファイル データの範囲の長さ (バイト単位)。 -1 の長さは、 CF_EOF
無限大 (つまりファイルの末尾) を意味します。
同期プロバイダーが一度に必要なすべてのデータを確認する必要はありません。 また、同期プロバイダーが必要な範囲内のデータを確認する必要もありません。 プラットフォームは、無効な CF_OPERATION_TYPE_ACT_DATA 操作のために、変更または同期されていないファイル データが clobbered になる状況がないことを保証します。 ただし、返される範囲がファイルの末尾で終了しない限り、受信確認データはオフセットと長さの両方に対して 4 KB に揃える必要があります。この場合、範囲がファイルの末尾または末尾を超える場合は、長さが 4 KB 揃えである必要はありません。
DUMMYUNIONNAME.FetchPlaceholders
DUMMYUNIONNAME.FetchPlaceholders.Flags
この Flags 値は 、CF_CALLBACK_FETCH_PLACEHOLDERS_FLAG_NONEに設定する必要があります。
DUMMYUNIONNAME.FetchPlaceholders.Pattern
ワイルドカード文字 (?
、 *
) を含む標準の Windows ファイル パターン。 多くの場合、パターンは になります *
が、より具体的になる可能性があります。 同期プロバイダーは、 CF_OPERATION_TYPE_TRANSFER_PLACEHOLDERSを使用して、ディレクトリ内のすべてのファイルのプレースホルダー情報の転送を開始する必要があります。 同期プロバイダーは、パターンに一致するすべてのプレースホルダーを転送する必要がありますが、必ずしも 1 回限りの要件として転送する必要があります。 同期プロバイダーは、パターンに一致しないプレースホルダーを転送することもできます。
DUMMYUNIONNAME.OpenCompletion
DUMMYUNIONNAME.OpenCompletion.Flags
プレースホルダーで完了フラグを開きます。 次の 2 つのフラグのいずれかに設定できます。
- プレースホルダー メタデータが破損している場合は、CF_CALLBACK_OPEN_COMPLETION_FLAG_PLACEHOLDER_UNKNOWNが設定されます。
- プレースホルダー メタデータが古く、サポートされていないバージョンの場合、CF_CALLBACK_OPEN_COMPLETION_FLAG_PLACEHOLDER_UNSUPPORTEDが設定されます。
DUMMYUNIONNAME.CloseCompletion
DUMMYUNIONNAME.CloseCompletion.Flags
プレースホルダー終了完了フラグ。 プレースホルダーがクローズの結果として削除された場合は、 CF_CALLBACK_CLOSE_COMPLETION_FLAG_DELETED に設定できます。
DUMMYUNIONNAME.Dehydrate
DUMMYUNIONNAME.Dehydrate.Flags
プレースホルダーの脱水フラグ。 退避要求がシステム バックグラウンド サービスによって開始される場合は、 CF_CALLBACK_DEHYDRATE_FLAG_BACKGROUND に設定できます。
DUMMYUNIONNAME.Dehydrate.Reason
Reason は、プレースホルダーが脱水される理由を指定するCF_CALLBACK_DEHYDRATION_REASON列挙体のメンバーです。 次のいずれかの値を指定できます。
理由 | 説明 |
---|---|
CF_CALLBACK_DEHYDRATE_REASON_USER_MANUAL | ユーザーは、クラウド ファイルの脱水を明示的に要求します。 |
CF_CALLBACK_DEHYDRATE_REASON_SYSTEM_INACTIVITY | プラットフォームは、ユーザー定義のポリシーに基づいてクラウド ファイルを定期的にタイムアウトします。 |
CF_CALLBACK_DEHYDRATE_REASON_SYSTEM_LOW_SPACE | プラットフォームで、このクラウド ファイルが存在するボリュームのディスク領域が不足しています。 |
CF_CALLBACK_DEHYDRATE_REASON_SYSTEM_OS_UPGRADE | プラットフォームは、OS をアップグレードするためにディスク領域を再利用しています。 |
DUMMYUNIONNAME.DehydrateCompletion
DUMMYUNIONNAME.DehydrateCompletion.Flags
プレースホルダー脱水完了フラグ。 次の値に設定できます。
- CF_CALLBACK_DEHYDRATE_COMPLETION_FLAG_BACKGROUND は、退避要求がシステム バックグラウンド サービスによって開始された場合に設定されます。
- CF_CALLBACK_DEHYDRATE_COMPLETION_FLAG_DEHYDRATED は、脱水要求の前にプレイスャーを水和した場合に設定される。
DUMMYUNIONNAME.DehydrateCompletion.Reason
Reason は、プレースホルダーが脱水された理由を指定するCF_CALLBACK_DEHYDRATION_REASON列挙体のメンバーです。 次のいずれかの値を指定できます。
理由 | 説明 |
---|---|
CF_CALLBACK_DEHYDRATE_REASON_USER_MANUAL | ユーザーは、クラウド ファイルの脱水を明示的に要求します。 |
CF_CALLBACK_DEHYDRATE_REASON_SYSTEM_INACTIVITY | プラットフォームは、ユーザー定義のポリシーに基づいてクラウド ファイルを定期的にタイムアウトします。 |
CF_CALLBACK_DEHYDRATE_REASON_SYSTEM_LOW_SPACE | プラットフォームで、このクラウド ファイルが存在するボリュームのディスク領域が不足しています。 |
CF_CALLBACK_DEHYDRATE_REASON_SYSTEM_OS_UPGRADE | プラットフォームは、OS をアップグレードするためにディスク領域を再利用しています。 |
DUMMYUNIONNAME.Delete
DUMMYUNIONNAME.Delete.Flags
プレースホルダー削除フラグ。 CF_CALLBACK_DELETE_FLAG_NONEに設定されています。
DUMMYUNIONNAME.DeleteCompletion
DUMMYUNIONNAME.DeleteCompletion.Flags
プレースホルダーの削除完了フラグ。 CF_CALLBACK_DELETE_COMPLETION_FLAG_NONEに設定されます。
DUMMYUNIONNAME.Rename
DUMMYUNIONNAME.Rename.Flags
プレースホルダー フラグの名前を変更します。 次の値に設定できます。
- プレースホルダー がディレクトリの場合、CF_CALLBACK_RENAME_FLAG_IS_DIRECTORYが設定されます。
- CF_CALLBACK_RENAME_FLAG_SOURCE_IN_SCOPE は、名前を変更または移動するリンクが同期プロセスによって管理される同期ルート内にある場合に設定されます。
- CF_CALLBACK_RENAME_FLAG_TARGET_IN_SCOPE は、名前変更または移動ターゲットがソース パスの同じ同期ルートにある場合に設定されます。
DUMMYUNIONNAME.Rename.TargetPath
ボリュームに対する完全な名前変更/移動ターゲット パス。
DUMMYUNIONNAME.RenameCompletion
DUMMYUNIONNAME.RenameCompletion.Flags
名前変更完了プレースホルダー フラグ。 CF_CALLBACK_RENAME_COMPLETION_FLAG_NONEに設定されています。
DUMMYUNIONNAME.RenameCompletion.SourcePath
ボリュームに対する完全なソース リンク パス。
要件
サポートされている最小のクライアント | Windows 10バージョン 1709 [デスクトップ アプリのみ] |
サポートされている最小のサーバー | Windows Server 2016 [デスクトップ アプリのみ] |
ヘッダー | cfapi.h |