Share via


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의 크기로 설정합니다.
CF_CALLBACK_TYPE_FETCH_PLACHOLDERS 의 크기와 FetchPlaceholders 의 크기로 ULONG설정합니다.
CF_CALLBACK_TYPE_CANCEL_FETCH_PLACHOLDERS 을 2 ULONG의 크기로 설정합니다.
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

플래그 는 다음 플래그로 설정할 수 있습니다.

  • 60초 타이머의 만료로 인해 사용자 요청이 취소되면 CF_CALLBACK_CANCEL_FLAG_IO_TIMEOUT 설정됩니다.
  • 사용자가 앱 시작 다운로드 알림에서 하이드레이션을 명시적으로 종료한 결과로 사용자 요청이 취소되면 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 설정됩니다.
  • CfHydratePlaceholder 호출의 결과로 콜백이 호출되면 CF_CALLBACK_FETCH_DATA_FLAG_EXPLICIT_HYDRATION 설정됩니다.

DUMMYUNIONNAME.FetchData.RequiredFileOffset

미해결 I/O 요청을 충족하기 위해 필터에 절대적으로 필요한 파일 데이터 범위를 지정하기 위한 오프셋(바이트)입니다.

DUMMYUNIONNAME.FetchData.RequiredLength

미해결 I/O 요청을 충족하기 위해 필터에 절대적으로 필요한 파일 데이터의 길이(바이트)입니다.

DUMMYUNIONNAME.FetchData.OptionalFileOffset

동기화 공급자가 더 큰 청크로 데이터를 제공하는 것을 선호하는 경우 플랫폼에 유용하게 제공할 수 있는 광범위한 파일 데이터에 대한 힌트로 제공되는 오프셋(바이트)입니다. 일반적으로 선택적 범위는 현재 자리 표시자에 없는 최대 연속 범위입니다. 이는 선택 사항이며 동기화 공급자가 더 큰 데이터 세그먼트로 작업하는 것을 선호하는 경우에 사용할 수 있습니다.

DUMMYUNIONNAME.FetchData.OptionalLength

동기화 공급자가 더 큰 청크로 데이터를 제공하는 것을 선호하는 경우 플랫폼에 유용하게 제공할 수 있는 광범위한 파일 데이터에 대한 힌트로 제공되는 길이(바이트)입니다. 일반적으로 선택적 범위는 현재 자리 표시자에 없는 최대 연속 범위입니다. 이는 선택 사항이며 동기화 공급자가 더 큰 데이터 세그먼트로 작업하는 것을 선호하는 경우에 사용할 수 있습니다.

-1의 길이는 로 CF_EOF표시되며 무한대(즉, 파일의 끝)를 의미합니다.

동기화 공급자가 필요한 모든 데이터를 한 번에 반환할 필요는 없습니다. 또한 동기화 공급자가 필요한 범위 또는 선택적 범위 내에서 데이터를 반환할 필요가 없습니다. 플랫폼은 잘못된 CF_OPERATION_TYPE_TRANSFER_DATA 작업으로 인해 수정/동기화되지 않은 파일 데이터가 수정되지 않도록 보장합니다. 그러나 반환된 범위가 파일 끝에서 끝나지 않는 한 반환된 데이터는 오프셋과 길이 모두에 대해 4KB로 정렬되어야 합니다. 이 경우 범위가 파일의 끝 또는 끝 이상으로 끝나는 경우 길이를 4KB로 정렬할 필요가 없습니다.

DUMMYUNIONNAME.FetchData.LastDehydrationTime

문제의 클라우드 파일이 탈수된 시스템 시간입니다. 1601년 1월 1일 이후 100나노초 간격의 수입니다.

DUMMYUNIONNAME.FetchData.LastDehydrationReason

파일이 마지막으로 탈수된 이유를 지정하는 CF_CALLBACK_DEHYDRATION_REASON 열거형의 멤버입니다.

LastDehydrationReason 은 다음 중 하나일 수 있습니다.

이유 Description
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

데이터 유효성 검사 플래그입니다. CfHydratePlaceholder 호출의 결과로 콜백이 호출되면 CF_CALLBACK_VALIDATE_DATA_FLAG_EXPLICIT_HYDRATION 설정됩니다.

DUMMYUNIONNAME.ValidateData.RequiredFileOffset

유효성을 검사할 파일 데이터의 범위를 지정하기 위한 오프셋(바이트)입니다.

DUMMYUNIONNAME.ValidateData.RequiredLength

유효성을 검사해야 하는 파일 데이터 범위의 길이(바이트)입니다. -1의 길이는 로 CF_EOF표시되며 무한대(즉, 파일의 끝)를 의미합니다.

동기화 공급자가 한 번에 필요한 모든 데이터를 승인할 필요가 없습니다. 동기화 공급자가 필요한 범위 내의 데이터를 승인할 필요도 없습니다. 플랫폼은 잘못된 CF_OPERATION_TYPE_ACT_DATA 작업으로 인해 수정/동기화되지 않은 파일 데이터가 삭제되지 않도록 합니다. 그러나 승인된 데이터는 반환된 범위가 파일 끝에서 끝나지 않는 한 오프셋과 길이 모두에 대해 4KB로 정렬되어야 합니다. 이 경우 범위가 파일의 끝 또는 끝 이상으로 끝나는 경우 길이를 4KB로 정렬할 필요가 없습니다.

DUMMYUNIONNAME.FetchPlaceholders

DUMMYUNIONNAME.FetchPlaceholders.Flags

Flags 값은 CF_CALLBACK_FETCH_PLACEHOLDERS_FLAG_NONE 설정해야 합니다.

DUMMYUNIONNAME.FetchPlaceholders.Pattern

와일드카드 문자(?, *)를 포함할 수 있는 표준 Windows 파일 패턴입니다. 종종 패턴이 될 * 수 있지만 더 구체적일 수 있습니다. 동기화 공급자는 CF_OPERATION_TYPE_TRANSFER_PLACEHOLDERS 사용하여 디렉터리의 모든 파일에 대한 자리 표시자 정보를 전송하기 시작할 것으로 예상됩니다. 동기화 공급자는 최소 요구 사항으로 패턴과 일치하는 모든 자리 표시자를 한 번의 샷으로 전송해야 합니다. 또한 동기화 공급자는 패턴과 일치하지 않는 자리 표시자를 전송하도록 선택할 수 있습니다.

DUMMYUNIONNAME.OpenCompletion

DUMMYUNIONNAME.OpenCompletion.Flags

자리 표시자 열기 완료 플래그입니다. 다음 두 플래그 중 하나로 설정할 수 있습니다.

  • 자리 표시자 메타데이터가 손상된 경우 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

이유는 자리 표시자가 탈수되는 이유를 지정하는 CF_CALLBACK_DEHYDRATION_REASON 열거형의 멤버입니다. 다음 값 중 하나일 수 있습니다.

이유 Description
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

이유는 자리 표시자가 탈수된 이유를 지정하는 CF_CALLBACK_DEHYDRATION_REASON 열거형의 멤버입니다. 다음 값 중 하나일 수 있습니다.

이유 Description
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

추가 정보

CfHydratePlaceholder

CF_CALLBACK_TYPE

CF_CALLBACK_DEHYDRATION_REASON