CF_CALLBACK_PARAMETERS-Struktur (cfapi.h)
Diese Struktur enthält Rückruf-spezifische Parameter wie Dateioffset, Länge, Flags usw.
Syntax
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;
Member
ParamSize
ParamSize wird basierend auf dem ausgeführten Rückruf festgelegt.
Rückruf | ParamSize-Informationen |
---|---|
CF_CALLBACK_TYPE_FETCH_DATA | Legen Sie auf die Größe von FetchData plus die Größe eines fest ULONG . |
CF_CALLBACK_TYPE_VALIDATE_DATA | Legen Sie auf die Größe von ValidateData plus die Größe eines fest ULONG . |
CF_CALLBACK_TYPE_CANCEL_FETCH_DATA | Legen Sie auf die Größe von Cancel.FetchData plus die Größe von zwei ULONG s fest. |
CF_CALLBACK_TYPE_FETCH_PLACHOLDERS | Legen Sie auf die Größe von FetchPlaceholders plus die Größe eines fest ULONG . |
CF_CALLBACK_TYPE_CANCEL_FETCH_PLACHOLDERS | Legen Sie die Größe von zwei ULONG s fest. |
CF_CALLBACK_TYPE_NOTIFY_FILE_OPEN_COMPLETION | Legen Sie auf die Größe von OpenCompletion plus die Größe eines fest ULONG . |
CF_CALLBACK_TYPE_NOTIFY_FILE_CLOSE_COMPLETION | legen Sie auf die Größe von CloseCompletion plus die Größe eines fest ULONG . |
CF_CALLBACK_TYPE_NOTIFY_DEHYDRATE | Legen Sie auf die Größe von Dehydrate plus die Größe eines fest ULONG . |
CF_CALLBACK_TYPE_NOTIFY_DEHYDRATE_COMPLETION | Legen Sie auf die Größe von DehydrateCompletion plus die Größe eines fest ULONG . |
CF_CALLBACK_TYPE_NOTIFY_DELETE | Legen Sie auf die Größe von Delete plus die Größe eines fest ULONG . |
CF_CALLBACK_TYPE_NOTIFY_DELETE_COMPLETION | Legen Sie auf die Größe von DeleteCompletion plus die Größe eines fest ULONG . |
CF_CALLBACK_TYPE_NOTIFY_RENAME | Legen Sie auf die Größe von Rename plus die Größe eines fest ULONG . |
CF_CALLBACK_TYPE_NOTIFY_RENAME_COMPLETION | Legen Sie auf die Größe von RenameCompletion plus die Größe eines fest ULONG . |
DUMMYUNIONNAME
DUMMYUNIONNAME.Cancel
DUMMYUNIONNAME.Cancel.Flags
Flags können auf die folgenden Flags festgelegt werden:
- CF_CALLBACK_CANCEL_FLAG_IO_TIMEOUT wird festgelegt, wenn die Benutzeranforderung aufgrund des Ablaufs des Timers von 60 Sekunden abgebrochen wird.
- CF_CALLBACK_CANCEL_FLAG_IO_ABORTED wird festgelegt, wenn die Benutzeranforderung abgebrochen wird, weil der Benutzer die Hydration aus dem App-initiierten Download-Popup explizit beendet hat.
DUMMYUNIONNAME.Cancel.DUMMYUNIONNAME
DUMMYUNIONNAME.Cancel.DUMMYUNIONNAME.FetchData
DUMMYUNIONNAME.Cancel.DUMMYUNIONNAME.FetchData.FileOffset
Der Offset in Bytes zum Angeben des Bereichs der nicht mehr benötigten Dateidaten. Beachten Sie, dass dies möglicherweise mit dem RequiredFileOffset aus dem entsprechenden Abruf übereinstimmt, aber auch eine Teilmenge sein kann. Wenn es sich um eine Teilmenge handelt, werden weiterhin Daten außerhalb des Abbruchbereichs benötigt, z. B. um ausstehende E/A-Vorgänge zu erfüllen, die später eingetroffen sind.
DUMMYUNIONNAME.Cancel.DUMMYUNIONNAME.FetchData.Length
Die Länge der nicht mehr benötigten Dateidaten in Bytes. Beachten Sie, dass dies möglicherweise mit der RequiredLength aus dem entsprechenden Abruf übereinstimmt, aber auch eine Teilmenge sein kann. Wenn es sich um eine Teilmenge handelt, werden weiterhin Daten außerhalb des Abbruchbereichs benötigt, z. B. um ausstehende E/A-Vorgänge zu erfüllen, die später eingetroffen sind.
DUMMYUNIONNAME.FetchData
DUMMYUNIONNAME.FetchData.Flags
Flags können auf die folgenden Werte festgelegt werden:
- CF_CALLBACK_FETCH_DATA_FLAG_RECOVER wird festgelegt, wenn der Rückruf als Ergebnis eines zuvor unterbrochenen Hydrationsprozesses aufgerufen wird, entweder aufgrund eines unsauberen Herunterfahrens des Synchronisierungsanbieters oder eines Stromausfalls usw.
- CF_CALLBACK_FETCH_DATA_FLAG_EXPLICIT_HYDRATION wird festgelegt, wenn der Rückruf als Ergebnis eines Aufrufs von CfHydratePlaceholder aufgerufen wird.
DUMMYUNIONNAME.FetchData.RequiredFileOffset
Der Offset in Bytes für die Angabe des Bereichs der Dateidaten, der vom Filter unbedingt benötigt wird, um ausstehende E/A-Anforderungen zu erfüllen.
DUMMYUNIONNAME.FetchData.RequiredLength
Die Länge der Dateidaten in Bytes, die vom Filter unbedingt benötigt werden, um ausstehende E/A-Anforderungen zu erfüllen.
DUMMYUNIONNAME.FetchData.OptionalFileOffset
Der Offset in Bytes wird als Hinweis auf einen breiteren Bereich von Dateidaten bereitgestellt, die der Plattform nützlich gegeben werden könnten, falls der Synchronisierungsanbieter daten lieber in größeren Blöcken bereitstellt. In der Regel ist der optionale Bereich der maximal zusammenhängende Bereich, der derzeit nicht im Platzhalter vorhanden ist. Dies ist optional und kann verwendet werden, wenn der Synchronisierungsanbieter lieber mit größeren Datensegmenten arbeitet.
DUMMYUNIONNAME.FetchData.OptionalLength
Die Länge in Bytes wird als Hinweis auf einen breiteren Bereich von Dateidaten angegeben, die der Plattform nützlich gegeben werden könnten, falls der Synchronisierungsanbieter daten lieber in größeren Blöcken bereitstellt. In der Regel ist der optionale Bereich der maximal zusammenhängende Bereich, der derzeit nicht im Platzhalter vorhanden ist. Dies ist optional und kann verwendet werden, wenn der Synchronisierungsanbieter lieber mit größeren Datensegmenten arbeitet.
Eine Länge von -1, die als CF_EOF
bezeichnet wird, bedeutet unendlich (d. h. bis zum Ende der Datei).
Es ist nicht erforderlich, dass der Synchronisierungsanbieter alle erforderlichen Daten auf einmal zurückgibt. Es ist auch nicht erforderlich, dass der Synchronisierungsanbieter die Daten innerhalb des erforderlichen oder optionalen Bereichs zurückgibt. Die Plattform stellt unter keinen Umständen sicher, dass geänderte/nicht synchronisierte Dateidaten aufgrund eines ungültigen CF_OPERATION_TYPE_TRANSFER_DATA-Vorgangs verstopft werden. Die zurückgegebenen Daten müssen jedoch für den Offset und die Länge 4 KB ausgerichtet sein, es sei denn, der zurückgegebene Bereich endet am Ende der Datei. In diesem Fall muss die Länge nicht um 4 KB ausgerichtet sein, wenn der Bereich am Ende der Datei oder darüber hinaus endet.
DUMMYUNIONNAME.FetchData.LastDehydrationTime
Der Systemzeitpunkt, zu dem die betreffende Clouddatei dehydriert wurde. Es ist eine Anzahl von 100-Nanosekundenintervallen seit dem 1. Januar 1601.
DUMMYUNIONNAME.FetchData.LastDehydrationReason
Ein Element der CF_CALLBACK_DEHYDRATION_REASON-Enumeration , die den Grund angibt, warum die Datei zuletzt dehydriert wurde.
LastDehydrationReason kann eine der folgenden Sein:
`Reason` | BESCHREIBUNG |
---|---|
CF_CALLBACK_DEHYDRATE_REASON_NEVER | Die Clouddatei wurde nach ihrer Erstellung nie dehydriert. |
CF_CALLBACK_DEHYDRATE_REASON_USER_MANUAL | Der Benutzer hat die Clouddatei explizit dehydriert. |
CF_CALLBACK_DEHYDRATE_REASON_SYSTEM_PERIODIC | Die Plattform hat die Clouddatei basierend auf benutzerdefinierten Richtlinien ausgealtert. |
CF_CALLBACK_DEHYDRATE_REASON_SYSTEM_LOWSPACE | Die Plattform hat die Clouddatei dehydriert, wenn auf dem Volume, auf dem sich diese Datei befindet, nur wenig Speicherplatz auf dem Datenträger auftritt. |
CF_CALLBACK_DEHYDRATE_REASON_SYSTEM_UPGRADE | Die Plattform hat diese Datei beim Abrufen von Speicherplatz zum Upgrade des Betriebssystems dehydriert. |
DUMMYUNIONNAME.ValidateData
DUMMYUNIONNAME.ValidateData.Flags
Datenvalidierungsflags. CF_CALLBACK_VALIDATE_DATA_FLAG_EXPLICIT_HYDRATION wird festgelegt, wenn der Rückruf als Ergebnis eines Aufrufs von CfHydratePlaceholder aufgerufen wird.
DUMMYUNIONNAME.ValidateData.RequiredFileOffset
Der Offset in Bytes zum Angeben des Bereichs der zu überprüfenden Dateidaten.
DUMMYUNIONNAME.ValidateData.RequiredLength
Die Länge des Zu überprüfenden Dateidatenbereichs in Bytes. Eine Länge von -1, die als CF_EOF
bezeichnet wird, bedeutet unendlich (d. h. bis zum Ende der Datei).
Es ist nicht erforderlich, dass der Synchronisierungsanbieter alle erforderlichen Daten gleichzeitig bestätigt. Es ist auch nicht erforderlich, dass der Synchronisierungsanbieter die Daten innerhalb des erforderlichen Bereichs bestätigt. Die Plattform stellt unter keinen Umständen sicher, dass geänderte/nicht synchronisierte Dateidaten aufgrund eines ungültigen CF_OPERATION_TYPE_ACT_DATA-Vorgangs verstopft werden. Die bestätigten Daten müssen jedoch sowohl für den Offset als auch für die Länge 4 KB ausgerichtet sein, es sei denn, der zurückgegebene Bereich endet am Ende der Datei. In diesem Fall muss die Länge nicht mit 4 KB ausgerichtet sein, wenn der Bereich am Ende der Datei oder darüber hinaus endet.
DUMMYUNIONNAME.FetchPlaceholders
DUMMYUNIONNAME.FetchPlaceholders.Flags
Dieser Flags-Wert sollte auf CF_CALLBACK_FETCH_PLACEHOLDERS_FLAG_NONE festgelegt werden.
DUMMYUNIONNAME.FetchPlaceholders.Pattern
Ein Windows-Standarddateimuster, das möglicherweise Einen Feldhalter (?
, *
) enthalten kann. Oft ist *
das Muster, aber es könnte spezifischer sein. Es wird erwartet, dass der Synchronisierungsanbieter mit der Übertragung von Platzhalterinformationen für alle Dateien im Verzeichnis mit CF_OPERATION_TYPE_TRANSFER_PLACEHOLDERS beginnt. Der Synchronisierungsanbieter muss als Mindestanforderung alle Platzhalter übertragen, die dem Muster entsprechen, aber nicht unbedingt in einem Einzigen. Der Synchronisierungsanbieter kann sich zusätzlich dafür entscheiden, Platzhalter zu übertragen, die nicht dem Muster entsprechen.
DUMMYUNIONNAME.OpenCompletion
DUMMYUNIONNAME.OpenCompletion.Flags
Platzhalter: Offene Vervollständigungsflags. Es kann auf eines der beiden folgenden Flags festgelegt werden:
- CF_CALLBACK_OPEN_COMPLETION_FLAG_PLACEHOLDER_UNKNOWN wird festgelegt, wenn die Platzhaltermetadaten beschädigt sind.
- CF_CALLBACK_OPEN_COMPLETION_FLAG_PLACEHOLDER_UNSUPPORTED wird festgelegt, wenn die Platzhaltermetadaten einer älteren und nicht unterstützten Version entsprechen.
DUMMYUNIONNAME.CloseCompletion
DUMMYUNIONNAME.CloseCompletion.Flags
Platzhalter-Vervollständigungsflags. Er kann auf CF_CALLBACK_CLOSE_COMPLETION_FLAG_DELETED festgelegt werden, wenn der Platzhalter infolge des Schließens gelöscht wird.
DUMMYUNIONNAME.Dehydrate
DUMMYUNIONNAME.Dehydrate.Flags
Dehydrierungsflags für Platzhalter. Er kann auf CF_CALLBACK_DEHYDRATE_FLAG_BACKGROUND festgelegt werden, wenn die Dehydrierungsanforderung von einem Systemhintergrunddienst initiiert wird.
DUMMYUNIONNAME.Dehydrate.Reason
Die Reason ist ein Member der CF_CALLBACK_DEHYDRATION_REASON Enumeration, die den Grund angibt, warum der Platzhalter dehydriert wird. Es kann sich um einen der folgenden Werte handeln:
`Reason` | BESCHREIBUNG |
---|---|
CF_CALLBACK_DEHYDRATE_REASON_USER_MANUAL | Der Benutzer fordert explizit auf, die Clouddatei zu deaktivieren. |
CF_CALLBACK_DEHYDRATE_REASON_SYSTEM_INACTIVITY | Die Plattform altert die Clouddatei in regelmäßigen Abständen basierend auf benutzerdefinierten Richtlinien aus. |
CF_CALLBACK_DEHYDRATE_REASON_SYSTEM_LOW_SPACE | Die Plattform weist auf dem Volume, auf dem sich diese Clouddatei befindet, nur wenig Speicherplatz auf. |
CF_CALLBACK_DEHYDRATE_REASON_SYSTEM_OS_UPGRADE | Die Plattform gibt Speicherplatz zurück, um das Betriebssystem zu aktualisieren. |
DUMMYUNIONNAME.DehydrateCompletion
DUMMYUNIONNAME.DehydrateCompletion.Flags
Platzhalter-Dehydrierungs-Vervollständigungsflags. Er kann auf die folgenden Werte festgelegt werden:
- CF_CALLBACK_DEHYDRATE_COMPLETION_FLAG_BACKGROUND wird festgelegt, wenn die Dehydrierungsanforderung von einem Systemhintergrunddienst initiiert wird.
- CF_CALLBACK_DEHYDRATE_COMPLETION_FLAG_DEHYDRATED wird festgelegt, wenn der Placer vor der Dehydrierungsanforderung hydratisiert wurde.
DUMMYUNIONNAME.DehydrateCompletion.Reason
Reason ist ein Member der CF_CALLBACK_DEHYDRATION_REASON-Enumeration, die den Grund angibt, warum der Platzhalter dehydriert wurde. Es kann sich um einen der folgenden Werte handeln:
`Reason` | BESCHREIBUNG |
---|---|
CF_CALLBACK_DEHYDRATE_REASON_USER_MANUAL | Der Benutzer fordert explizit auf, die Clouddatei zu deaktivieren. |
CF_CALLBACK_DEHYDRATE_REASON_SYSTEM_INACTIVITY | Die Plattform altert die Clouddatei in regelmäßigen Abständen basierend auf benutzerdefinierten Richtlinien aus. |
CF_CALLBACK_DEHYDRATE_REASON_SYSTEM_LOW_SPACE | Die Plattform weist auf dem Volume, auf dem sich diese Clouddatei befindet, nur wenig Speicherplatz auf. |
CF_CALLBACK_DEHYDRATE_REASON_SYSTEM_OS_UPGRADE | Die Plattform gibt Speicherplatz zurück, um das Betriebssystem zu aktualisieren. |
DUMMYUNIONNAME.Delete
DUMMYUNIONNAME.Delete.Flags
Platzhalterlöschflags. Sie ist auf CF_CALLBACK_DELETE_FLAG_NONE festgelegt.
DUMMYUNIONNAME.DeleteCompletion
DUMMYUNIONNAME.DeleteCompletion.Flags
Platzhalterlöschungsflags. Sie ist auf CF_CALLBACK_DELETE_COMPLETION_FLAG_NONE festgelegt.
DUMMYUNIONNAME.Rename
DUMMYUNIONNAME.Rename.Flags
Benennen Sie Platzhalterflags um. Er kann auf die folgenden Werte festgelegt werden:
- CF_CALLBACK_RENAME_FLAG_IS_DIRECTORY wird festgelegt, wenn der Platzhalter ein Verzeichnis ist.
- CF_CALLBACK_RENAME_FLAG_SOURCE_IN_SCOPE wird festgelegt, wenn sich der umzubenennte oder zu verschiebende Link in einem Synchronisierungsstamm befindet, der vom Synchronisierungsprozess verwaltet wird.
- CF_CALLBACK_RENAME_FLAG_TARGET_IN_SCOPE wird festgelegt, wenn sich das Umbenennungs- oder Verschiebungsziel im selben Synchronisierungsstamm des Quellpfads befindet.
DUMMYUNIONNAME.Rename.TargetPath
Der vollständige Umbenennungs-/Verschieben-Zielpfad relativ zum Volume.
DUMMYUNIONNAME.RenameCompletion
DUMMYUNIONNAME.RenameCompletion.Flags
Die Platzhalterflags für den Umbenennungsabschluss. Sie ist auf CF_CALLBACK_RENAME_COMPLETION_FLAG_NONE festgelegt.
DUMMYUNIONNAME.RenameCompletion.SourcePath
Der vollständige Quelllinkpfad relativ zum Volume.
Anforderungen
Unterstützte Mindestversion (Client) | Windows 10, Version 1709 [nur Desktop-Apps] |
Unterstützte Mindestversion (Server) | Windows Server 2016 [nur Desktop-Apps] |
Kopfzeile | cfapi.h |