CF_CALLBACK_TYPE列挙 (cfapi.h)

プレースホルダー ファイルまたはフォルダーで使用されるさまざまな種類のコールバックが含まれます。

構文

typedef enum CF_CALLBACK_TYPE {
  CF_CALLBACK_TYPE_FETCH_DATA,
  CF_CALLBACK_TYPE_VALIDATE_DATA,
  CF_CALLBACK_TYPE_CANCEL_FETCH_DATA,
  CF_CALLBACK_TYPE_FETCH_PLACEHOLDERS,
  CF_CALLBACK_TYPE_CANCEL_FETCH_PLACEHOLDERS,
  CF_CALLBACK_TYPE_NOTIFY_FILE_OPEN_COMPLETION,
  CF_CALLBACK_TYPE_NOTIFY_FILE_CLOSE_COMPLETION,
  CF_CALLBACK_TYPE_NOTIFY_DEHYDRATE,
  CF_CALLBACK_TYPE_NOTIFY_DEHYDRATE_COMPLETION,
  CF_CALLBACK_TYPE_NOTIFY_DELETE,
  CF_CALLBACK_TYPE_NOTIFY_DELETE_COMPLETION,
  CF_CALLBACK_TYPE_NOTIFY_RENAME,
  CF_CALLBACK_TYPE_NOTIFY_RENAME_COMPLETION,
  CF_CALLBACK_TYPE_NONE = 0xffffffff
} ;

定数

 
CF_CALLBACK_TYPE_FETCH_DATA
このコールバックは、プレースホルダーの I/O 要求または明示的なハイドレーション要求を満たすために必要なファイル データの範囲を同期プロバイダーに要求するために使用されます。 同期プロバイダーが同期ルート登録時にALWAYS_FULLされていないハイドレーション ポリシーを指定する場合は、このコールバックの実装が必要です。
CF_CALLBACK_TYPE_VALIDATE_DATA
このコールバックは 、以前の CF_OPERATION_TYPE_TRANSFER_DATA操作からディスク上に既に存在する特定の範囲のファイル データが有効であり、ユーザー I/O 要求を満たすためにプラットフォームで使用できることを同期プロバイダーに確認するために使用されます。 このコールバックの実装は、同期プロバイダーが同期ルート登録時に VALIDATION_REQUIRED ハイドレーション ポリシー修飾子を指定する場合にのみ必要です。
CF_CALLBACK_TYPE_CANCEL_FETCH_DATA
このコールバックは、通常、元の要求が取り消されたために、ファイル データの範囲が不要であることを同期プロバイダーに通知するために使用されます。 これにより、同期プロバイダーは、データを取得しようとする作業の使用を停止できます (未処理のネットワーク要求を取り消すなど)。 このコールバックの実装は省略可能です。
CF_CALLBACK_TYPE_FETCH_PLACEHOLDERS
このコールバックは、ディレクトリ クエリ操作を満たすためにプレースホルダー ディレクトリの内容に関する情報を提供するか、ディレクトリの下にあるファイルを開こうとする場合に同期プロバイダーに要求するために使用されます。 このコールバックの実装は、同期プロバイダーが同期ルート登録時に CF_POPULATION_POLICY_ALWAYS_FULL 以外のポリシーを指定する場合にのみ必要です。
CF_CALLBACK_TYPE_CANCEL_FETCH_PLACEHOLDERS
このコールバックは、通常、元の要求が取り消されたため、プレースホルダー ディレクトリの内容が不要であることを同期プロバイダーに通知するために使用されます。 これにより、同期プロバイダーは、コンテンツの取得 (未処理のネットワーク要求の取り消しなど) の試行に費やされる作業を停止できます。 このコールバックの実装は省略可能です。
CF_CALLBACK_TYPE_NOTIFY_FILE_OPEN_COMPLETION
このコールバックは、同期プロバイダーに、同期ルートの 1 つ下のプレースホルダーが読み取り/書き込み/削除アクセス用に正常に開かれたことを通知するために使用されます。 オープンを実行するユーザー・アプリケーションはブロックされません。 同期プロバイダーからの応答は期待されません。 この通知はディレクトリには適用されません。 このコールバックの実装は省略可能です。
CF_CALLBACK_TYPE_NOTIFY_FILE_CLOSE_COMPLETION
このコールバックは、以前に読み取り/書き込み/削除アクセス用に開かれたいずれかの同期ルートの下にあるプレースホルダーが閉じられていることを同期プロバイダーに通知するために使用されます。 クローズを実行するユーザー アプリケーションはブロックされません。 同期プロバイダーからの応答は期待されません。 この通知はディレクトリには適用されません。 このコールバックの実装は省略可能です。
CF_CALLBACK_TYPE_NOTIFY_DEHYDRATE
このコールバックは、同期ルートの 1 つ下のプレースホルダーが脱水されようとしていることを同期プロバイダーに通知するために使用されます。 脱水を実行するユーザー アプリケーションがブロックされます。 同期プロバイダーからの応答が必要です。 このコールバックの実装は省略可能です。
CF_CALLBACK_TYPE_NOTIFY_DEHYDRATE_COMPLETION
このコールバックは、同期ルートの 1 つ下のプレースホルダーが正常に脱水されたことを同期プロバイダーに通知するために使用されます。 脱水を実行するユーザー アプリケーションはブロックされません。 同期プロバイダーからの応答は期待されません。 このコールバックの実装は省略可能です。
CF_CALLBACK_TYPE_NOTIFY_DELETE
このコールバックは、同期ルートの 1 つ下のプレースホルダーが削除されようとしていることを同期プロバイダーに通知するために使用されます。 削除を実行するユーザー アプリケーションはブロックされます。 同期プロバイダーからの応答が必要です。 このコールバックの実装は省略可能です。
CF_CALLBACK_TYPE_NOTIFY_DELETE_COMPLETION
このコールバックは、同期ルートの 1 つ下のプレースホルダーが正常に削除されたことを同期プロバイダーに通知するために使用されます。 削除を実行するユーザー アプリケーションはブロックされません。 同期プロバイダーからの応答は期待されません。 このコールバックの実装は省略可能です。
CF_CALLBACK_TYPE_NOTIFY_RENAME
このコールバックは、同期ルートの 1 つ下のプレースホルダーの名前が変更または移動されようとしていることを同期プロバイダーに通知するために使用されます。 名前の変更/移動を実行するユーザー アプリケーションがブロックされます。 同期プロバイダーからの応答が必要です。 このコールバックの実装は省略可能です。
CF_CALLBACK_TYPE_NOTIFY_RENAME_COMPLETION
このコールバックは、同期ルートの 1 つ下のプレースホルダーの名前が正常に変更または移動されたことを同期プロバイダーに通知するために使用されます。 名前の変更/移動を実行するユーザー アプリケーションはブロックされません。 同期プロバイダーからの応答は期待されません。 このコールバックの実装は省略可能です。
CF_CALLBACK_TYPE_NONE
値: 0xffffffff
コールバックの種類はありません。

注釈

これらはライブラリによって提供される API ではなく、プラットフォームからの要求を処理するために同期プロバイダーが実装する必要があるコールバックです。 必要に応じて、プラットフォームは、同期プロバイダー プロセス内で実行されているライブラリ インスタンスに、適切なコールバック ルーチンを呼び出すように求めます。

コールバック ルーチンは、任意のスレッド (スレッド プールの一部) で呼び出されます。 複数のコールバックは、異なるスレッドで同時に発生する可能性があり、この作業を確実に行うために必要な同期を実装するのは同期プロバイダー コードの役割です。 すべてのコールバックは非同期です。 コールバックをトリガーする非同期ユーザー要求がペンドされ、コントロールがユーザー アプリケーションに返されます。

すべてのコールバック要求には、60 秒のタイムアウトが固定されています。 同期プロバイダーからの保留中の要求に対して有効な操作を実行すると、保留中のすべての要求のタイマーがリセットされます。

すべてのコールバック関数には、CF_CALLBACK_INFO構造体と CF_CALLBACK_PARAMETERS 構造体という 2 つの 引数を持 つ同じプロトタイプがあります。

コールバック ルーチンには戻り値がありません。

要件

要件
サポートされている最小のクライアント Windows 10バージョン 1709 [デスクトップ アプリのみ]
サポートされている最小のサーバー Windows Server 2016 [デスクトップ アプリのみ]
Header cfapi.h

こちらもご覧ください

CF_CALLBACK_INFO

CF_CALLBACK_PARAMETERS