Win32 API 日本語リファレンス
ホームStorage.CloudFilters › CF_HYDRATION_POLICY_MODIFIER

CF_HYDRATION_POLICY_MODIFIER

列挙型フラグ
基底型u2

メンバー 5

名前10進16進説明
CF_HYDRATION_POLICY_MODIFIER_NONE00x0

0x0000

ポリシー修飾子はありません。

CF_HYDRATION_POLICY_MODIFIER_VALIDATION_REQUIRED10x1

0x0001

このポリシー修飾子は、同期プロバイダーに 2 つの保証を提供します。1 つ目は、同期プロバイダーが返したデータが、ユーザー アプリケーションに返される前に必ずディスクへ永続化されることを保証します。2 つ目は、同期プロバイダーが以前にプラットフォームへ返したデータと同じデータを取得し、その整合性を検証できるようにします。同期プロバイダーによって整合性が正常に確認された場合にのみ、プラットフォームはユーザーの I/O 要求を完了します。この修飾子は、追加のディスク I/O を代償として、エンド ツー エンドのデータ整合性のサポートに役立ちます。

CF_HYDRATION_POLICY_MODIFIER_STREAMING_ALLOWED20x2

0x0002

このポリシー修飾子は、同期プロバイダーが返したデータをローカル ディスクに保存しない権限をプラットフォームに与えます。このポリシー修飾子は、CF_HYDRATION_POLICY_MODIFIER_VALIDATION_REQUIRED と組み合わせた場合は無効です。

CF_HYDRATION_POLICY_MODIFIER_AUTO_DEHYDRATION_ALLOWED40x4

0x0004

このポリシー修飾子は、同期プロバイダーの助けを借りずに、同期済みのクラウド ファイル プレースホルダーをデハイドレートする権限をプラットフォームに与えます。このフラグがない場合、プラットフォームが CfDehydratePlaceholder を直接呼び出すことはできません。その場合、クラウド ファイル プレースホルダーをデハイドレートする唯一のサポートされた方法は、ファイルのピン留め属性をクリアし、ピン留め解除属性を設定することです。その時点で、実際のデハイドレートは、これら 2 つの属性に対するディレクトリ変更通知を受け取った後に、同期エンジンによって非同期に実行されます。このフラグが指定されている場合、プラットフォームは任意の同期済みクラウド ファイル プレースホルダーに対して CfDehydratePlaceholder を直接呼び出すことができます。同期プロバイダーでは自動デハイドレートをサポートすることをお勧めします。

メモ

この値は Windows 10 バージョン 1803 以降で使用できます。

CF_HYDRATION_POLICY_MODIFIER_ALLOW_FULL_RESTART_HYDRATION80x8

0x0008

このポリシー修飾子は、AV フィルターによるファイルのスキャン試行をインターセプトしたときに、ファイルを同期的に完全にハイドレートする権限をプラットフォームに与えます。FetchData コールバックから fileSize を変更するために RestartHydration を使用する同期プロバイダーは、ALLOW_FULL_RESTART_HYDRATION ポリシーをオプトインする必要があります。これにより、ファイルをスキャンしようとするウイルス対策ソフトウェアやマルウェア対策ソフトウェアと、RestartHydrationfileSize を変更しようとするプロバイダーとの間で発生しうるデッドロックを回避できます。

メモ

この列挙型の更新は、CfGetPlatformInfo から取得した PlatformVersion.IntegrationNumber0x500 以上の場合にのみサポートされます。

公式ドキュメント

同期プロバイダーが、プレースホルダー ファイルをプラットフォームでどのようにハイドレートするかを制御できるようにします。これは、プライマリ ポリシー CF_HYDRATION_POLICY_PRIMARY と組み合わせて使用できる修飾子です。

解説(Remarks)

一般に、修飾子は、その組み合わせが自己矛盾しない限り、任意のプライマリ ポリシー (CF_HYDRATION_POLICY_PRIMARY) および他のポリシー修飾子と自由に組み合わせることができます。

CF_HYDRATION_POLICY_MODIFIER_ALLOW_FULL_RESTART_HYDRATION フラグは、ウイルス対策ソフトウェアおよびマルウェア検出ソフトウェア (AV) に起因するデッドロックが Restart Hydration 機能で発生することを回避するために追加されました。ハイドレート要求の処理中にデハイドレート済みファイルのファイル サイズを更新する予定のすべての同期プロバイダーは、この機能をオプトインする必要があります。オプトインしない場合、AV がファイルのメモリ マップト セクションを作成して、開かれているファイルをスキャンしようとし、それがハイドレートを引き起こしたときに、Restart Hydration がデッドロックに陥る可能性があります。なお、ファイルのスナップショットやバージョンを保持し、バックエンド/サーバー上でファイルが更新されていても要求されたバージョンのファイルを提供してユーザーの要求を満たすプロバイダーは、このポリシーをオプトインする必要はありません。同様に、バックエンドでファイルが変更された場合にハイドレート要求を失敗させるプロバイダーも、このポリシーをオプトインしなくてかまいません。

出典・ライセンス: 上記「公式ドキュメント」の内容は Microsoft の Win32 API ドキュメント(MicrosoftDocs/sdk-api)を日本語に翻訳・改変したものです。© Microsoft Corporation. CC BY 4.0 で提供。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)

各言語での定義

列挙メンバーの定義。HSP タブは #define global(値は16進)。

typedef enum CF_HYDRATION_POLICY_MODIFIER : unsigned short {
    CF_HYDRATION_POLICY_MODIFIER_NONE = 0,
    CF_HYDRATION_POLICY_MODIFIER_VALIDATION_REQUIRED = 1,
    CF_HYDRATION_POLICY_MODIFIER_STREAMING_ALLOWED = 2,
    CF_HYDRATION_POLICY_MODIFIER_AUTO_DEHYDRATION_ALLOWED = 4,
    CF_HYDRATION_POLICY_MODIFIER_ALLOW_FULL_RESTART_HYDRATION = 8
} CF_HYDRATION_POLICY_MODIFIER;
[Flags]
public enum CF_HYDRATION_POLICY_MODIFIER : ushort
{
    CF_HYDRATION_POLICY_MODIFIER_NONE = 0,
    CF_HYDRATION_POLICY_MODIFIER_VALIDATION_REQUIRED = 1,
    CF_HYDRATION_POLICY_MODIFIER_STREAMING_ALLOWED = 2,
    CF_HYDRATION_POLICY_MODIFIER_AUTO_DEHYDRATION_ALLOWED = 4,
    CF_HYDRATION_POLICY_MODIFIER_ALLOW_FULL_RESTART_HYDRATION = 8,
}
<Flags>
Public Enum CF_HYDRATION_POLICY_MODIFIER As UShort
    CF_HYDRATION_POLICY_MODIFIER_NONE = 0
    CF_HYDRATION_POLICY_MODIFIER_VALIDATION_REQUIRED = 1
    CF_HYDRATION_POLICY_MODIFIER_STREAMING_ALLOWED = 2
    CF_HYDRATION_POLICY_MODIFIER_AUTO_DEHYDRATION_ALLOWED = 4
    CF_HYDRATION_POLICY_MODIFIER_ALLOW_FULL_RESTART_HYDRATION = 8
End Enum
import enum

class CF_HYDRATION_POLICY_MODIFIER(enum.IntFlag):
    CF_HYDRATION_POLICY_MODIFIER_NONE = 0
    CF_HYDRATION_POLICY_MODIFIER_VALIDATION_REQUIRED = 1
    CF_HYDRATION_POLICY_MODIFIER_STREAMING_ALLOWED = 2
    CF_HYDRATION_POLICY_MODIFIER_AUTO_DEHYDRATION_ALLOWED = 4
    CF_HYDRATION_POLICY_MODIFIER_ALLOW_FULL_RESTART_HYDRATION = 8
// CF_HYDRATION_POLICY_MODIFIER (flags)
pub const CF_HYDRATION_POLICY_MODIFIER_NONE: u16 = 0;
pub const CF_HYDRATION_POLICY_MODIFIER_VALIDATION_REQUIRED: u16 = 1;
pub const CF_HYDRATION_POLICY_MODIFIER_STREAMING_ALLOWED: u16 = 2;
pub const CF_HYDRATION_POLICY_MODIFIER_AUTO_DEHYDRATION_ALLOWED: u16 = 4;
pub const CF_HYDRATION_POLICY_MODIFIER_ALLOW_FULL_RESTART_HYDRATION: u16 = 8;
// CF_HYDRATION_POLICY_MODIFIER
const (
	CF_HYDRATION_POLICY_MODIFIER_NONE uint16 = 0
	CF_HYDRATION_POLICY_MODIFIER_VALIDATION_REQUIRED uint16 = 1
	CF_HYDRATION_POLICY_MODIFIER_STREAMING_ALLOWED uint16 = 2
	CF_HYDRATION_POLICY_MODIFIER_AUTO_DEHYDRATION_ALLOWED uint16 = 4
	CF_HYDRATION_POLICY_MODIFIER_ALLOW_FULL_RESTART_HYDRATION uint16 = 8
)
const
  CF_HYDRATION_POLICY_MODIFIER_NONE = 0;
  CF_HYDRATION_POLICY_MODIFIER_VALIDATION_REQUIRED = 1;
  CF_HYDRATION_POLICY_MODIFIER_STREAMING_ALLOWED = 2;
  CF_HYDRATION_POLICY_MODIFIER_AUTO_DEHYDRATION_ALLOWED = 4;
  CF_HYDRATION_POLICY_MODIFIER_ALLOW_FULL_RESTART_HYDRATION = 8;
// CF_HYDRATION_POLICY_MODIFIER
pub const CF_HYDRATION_POLICY_MODIFIER_NONE: u16 = 0;
pub const CF_HYDRATION_POLICY_MODIFIER_VALIDATION_REQUIRED: u16 = 1;
pub const CF_HYDRATION_POLICY_MODIFIER_STREAMING_ALLOWED: u16 = 2;
pub const CF_HYDRATION_POLICY_MODIFIER_AUTO_DEHYDRATION_ALLOWED: u16 = 4;
pub const CF_HYDRATION_POLICY_MODIFIER_ALLOW_FULL_RESTART_HYDRATION: u16 = 8;
const
  CF_HYDRATION_POLICY_MODIFIER_NONE* = 0
  CF_HYDRATION_POLICY_MODIFIER_VALIDATION_REQUIRED* = 1
  CF_HYDRATION_POLICY_MODIFIER_STREAMING_ALLOWED* = 2
  CF_HYDRATION_POLICY_MODIFIER_AUTO_DEHYDRATION_ALLOWED* = 4
  CF_HYDRATION_POLICY_MODIFIER_ALLOW_FULL_RESTART_HYDRATION* = 8
enum CF_HYDRATION_POLICY_MODIFIER : ushort {
    CF_HYDRATION_POLICY_MODIFIER_NONE = 0,
    CF_HYDRATION_POLICY_MODIFIER_VALIDATION_REQUIRED = 1,
    CF_HYDRATION_POLICY_MODIFIER_STREAMING_ALLOWED = 2,
    CF_HYDRATION_POLICY_MODIFIER_AUTO_DEHYDRATION_ALLOWED = 4,
    CF_HYDRATION_POLICY_MODIFIER_ALLOW_FULL_RESTART_HYDRATION = 8,
}
#define global CF_HYDRATION_POLICY_MODIFIER_NONE                         0x0
#define global CF_HYDRATION_POLICY_MODIFIER_VALIDATION_REQUIRED          0x1
#define global CF_HYDRATION_POLICY_MODIFIER_STREAMING_ALLOWED            0x2
#define global CF_HYDRATION_POLICY_MODIFIER_AUTO_DEHYDRATION_ALLOWED     0x4
#define global CF_HYDRATION_POLICY_MODIFIER_ALLOW_FULL_RESTART_HYDRATION 0x8
; ※フラグ列挙型。ビットORで組み合わせ可(例: FOO|BAR)。