CF_OPERATION_PARAMETERS-Struktur (cfapi.h)
Detaillierte Parameter eines Vorgangs für eine Platzhalterdatei oder einen Ordner. Die in dieser Struktur bereitgestellten Daten sind spezifisch für die CF_OPERATION_TYPE des Vorgangs.
Syntax
typedef struct CF_OPERATION_PARAMETERS {
ULONG ParamSize;
union {
struct {
CF_OPERATION_TRANSFER_DATA_FLAGS Flags;
NTSTATUS CompletionStatus;
LPCVOID Buffer;
LARGE_INTEGER Offset;
LARGE_INTEGER Length;
} TransferData;
struct {
CF_OPERATION_RETRIEVE_DATA_FLAGS Flags;
LPVOID Buffer;
LARGE_INTEGER Offset;
LARGE_INTEGER Length;
LARGE_INTEGER ReturnedLength;
} RetrieveData;
struct {
CF_OPERATION_ACK_DATA_FLAGS Flags;
NTSTATUS CompletionStatus;
LARGE_INTEGER Offset;
LARGE_INTEGER Length;
} AckData;
struct {
CF_OPERATION_RESTART_HYDRATION_FLAGS Flags;
const CF_FS_METADATA *FsMetadata;
LPCVOID FileIdentity;
DWORD FileIdentityLength;
} RestartHydration;
struct {
CF_OPERATION_TRANSFER_PLACEHOLDERS_FLAGS Flags;
NTSTATUS CompletionStatus;
LARGE_INTEGER PlaceholderTotalCount;
CF_PLACEHOLDER_CREATE_INFO *PlaceholderArray;
DWORD PlaceholderCount;
DWORD EntriesProcessed;
} TransferPlaceholders;
struct {
CF_OPERATION_ACK_DEHYDRATE_FLAGS Flags;
NTSTATUS CompletionStatus;
LPCVOID FileIdentity;
DWORD FileIdentityLength;
} AckDehydrate;
struct {
CF_OPERATION_ACK_RENAME_FLAGS Flags;
NTSTATUS CompletionStatus;
} AckRename;
struct {
CF_OPERATION_ACK_DELETE_FLAGS Flags;
NTSTATUS CompletionStatus;
} AckDelete;
} DUMMYUNIONNAME;
} CF_OPERATION_PARAMETERS;
Member
ParamSize
DUMMYUNIONNAME
DUMMYUNIONNAME.TransferData
Ein Synchronisierungsanbieter führt TRANSFER_DATA aus, um eine Platzhalterdatei zu hydratisieren. Dieser Vorgang kann als Antwort auf einen FETCH_DATA Rückruf, einen VALIDATE_DATA Rückruf oder als Teil einer präventiven Hintergrundhydratation außerhalb eines Rückrufkontexts ausgeführt werden.
Diese API gilt nur für Synchronisierungsanbieter, die eine Hydratationsrichtlinie unterstützen, die kleiner als ALWAYS_FULL ist. Andernfalls schlägt der Vorgang mit ERROR_CLOUD_FILE_INVALID_REQUEST fehl.
Der Synchronisierungsanbieter muss WRITE_DATA oder WRITE_DAC Zugriff auf die Datei haben, für die der TRANSFER_DATA-Vorgang ausgeführt werden soll. Andernfalls schlägt der Vorgang mit ERROR_CLOUD_FILE_ACCESS_DENIED fehl.
So führen Sie diesen Vorgang aus:
- OpInfo.Type muss auf CF_OPERATION_TYPE_TRANSFER_DATA festgelegt werden.
- OpParams.ParamSize muss auf die genaue Größe von OpParams.TransferData plus den Offset von OpParams.TransferData festgelegt werden.
- OpParams.TransferData.Flags muss auf CF_OPERATION_TRANSFER_DATA_FLAG_NONE festgelegt werden.
- OpParams.TransferData.CompletionStatus muss auf STATUS_SUCCESS festgelegt werden, wenn der Synchronisierungsanbieter Daten in die Platzhalterdatei übertragen möchte. Wenn der Synchronisierungsanbieter die Hydrationsanforderung aus irgendeinem Grund nicht verarbeiten kann und die Hydration nicht neu starten möchte, muss er einen STATUS_CLOUD_FILE_* status in CompletionStatus festlegen. Alle status Code, der außerhalb STATUS_CLOUD_FILE_*-Bereichs zurückgegeben wird, mit Ausnahme von STATUS_SUCCESS, werden von der Plattform in STATUS_CLOUD_FILE_UNSUCCESSFUL konvertiert.
- OpParams.TransferData.Buffer muss auf einen gültigen Benutzermoduspuffer verweisen, wenn OpParams.TransferData.CompletionStatusSTATUS_SUCCESS ist und mindestens OpParams.TransferData.Length-Bytes aufweisen sollte. andernfalls wird das Pufferfeld ignoriert.
- OpParams.TransferData.Offset und OpParams.TransferData.Length beschreiben einen Bereich im Platzhalter, an den der Synchronisierungsanbieter die Daten überträgt. Es ist nicht erforderlich, dass der Synchronisierungsanbieter alle Daten wie angefordert in einem Schuss zurückgibt. Es ist auch in Ordnung, dass ein Synchronisierungsanbieter mehr Daten zurückgibt als angefordert. Beispielsweise kann sich der Synchronisierungsanbieter aus Leistungsgründen oder aus anderen Gründen für ein Überlesen entscheiden. Der Synchronisierungsanbieter kann auch mehrere TRANSFER_DATA-Vorgänge wiederholt als Antwort auf denselben FETCH_DATA Rückruf ausführen. Die einzige Anforderung besteht darin, dass sowohl Offset als auch Länge 4 KB ausgerichtet sind, es sei denn, der beschriebene Bereich endet auf der logischen Dateigröße (EoF). In diesem Fall muss die Länge nicht um 4 KB ausgerichtet sein, solange der resultierende Bereich auf oder darüber hinaus auf der logischen Dateigröße endet.
Nach Abschluss des Vorgangs:
- Wenn der Synchronisierungsanbieter zum Zeitpunkt der Synchronisierungsstammregistrierung keine VALIDATION_REQUIRED angibt.
Im erfolgreichen Übertragungsfall werden alle ausstehenden Benutzer-E/A-Anforderungen n die Platzhalterdatei abgeschlossen, die alle benötigten Bytes als Ergebnis der Übertragung erhalten haben; Andernfalls werden die unvollständigen Benutzer-E/A-Anforderungen aktualisiert, um den aktuellen Hydrationszustand widerzuspiegeln. Bei einer fehlerhaften Übertragung treten alle ausstehenden Benutzer-E/A-Anforderungen für die Platzhalterdatei, die sich mit dem Bereich überlappen, wie durch den Offset und die Länge beschrieben, mit OpParams.TransferData.CompletionStatus fehl.
Wenn der Synchronisierungsanbieter VALIDATION_REQUIRED zum Zeitpunkt der Synchronisierungsstammregistrierung angibt, erfolgt keine weitere Verarbeitung durch die Plattform, bis die Daten im Bereich vom Synchronisierungsanbieter über einen ACK_DATA-Vorgang positiv bestätigt werden.
DUMMYUNIONNAME.TransferData.Flags
Flags für die Übertragung von Daten. Dies muss auf CF_OPERATION_TRANSFER_DATA_FLAG_NONE festgelegt werden. Weitere Informationen finden Sie unter CF_OPERATION_TRANSFER_DATA_FLAGS .
DUMMYUNIONNAME.TransferData.CompletionStatus
Status für die Übertragung von Daten. Dies muss auf STATUS_SUCCESS festgelegt werden, wenn der Synchronisierungsanbieter Daten in die Platzhalterdatei übertragen möchte. Wenn der Synchronisierungsanbieter die Hydrationsanforderung aus irgendeinem Grund nicht verarbeiten kann und die Hydration nicht neu starten möchte, muss er einen STATUS_CLOUD_FILE_* status in CompletionStatus festlegen. Alle status Code, der außerhalb STATUS_CLOUD_FILE_*-Bereichs zurückgegeben wird, mit Ausnahme von STATUS_SUCCESS, werden von der Plattform in STATUS_CLOUD_FILE_UNSUCCESSFUL konvertiert.
DUMMYUNIONNAME.TransferData.Buffer
Ein gültiger Benutzermoduspuffer. Dies muss auf einen gültigen Benutzermoduspuffer verweisen, wenn CompletionStatusSTATUS_SUCCESS ist und mindestens Längenbytes aufweisen sollte. Andernfalls wird das Pufferfeld ignoriert.
DUMMYUNIONNAME.TransferData.Offset
Der Offset, der mit der Länge einen Bereich im Platzhalter beschreibt, an den die Daten übertragen werden. Es beschreibt einen Bereich im Platzhalter, an den der Synchronisierungsanbieter die Daten überträgt. Es ist nicht erforderlich, dass der Synchronisierungsanbieter alle Daten wie angefordert in einem Schuss zurückgibt. Es ist auch in Ordnung, dass ein Synchronisierungsanbieter mehr Daten zurückgibt als angefordert. Beispielsweise kann sich der Synchronisierungsanbieter aus Leistungsgründen oder aus anderen Gründen für ein Überlesen entscheiden. Der Synchronisierungsanbieter kann auch mehrere TRANSFER_DATA-Vorgänge wiederholt als Antwort auf denselben FETCH_DATA Rückruf ausführen. Offset muss 4 KB ausgerichtet sein.
DUMMYUNIONNAME.TransferData.Length
Die Länge in Bytes des Puffers. Die Länge muss 4 KB ausgerichtet sein, es sei denn, der beschriebene Bereich endet auf der logischen Dateigröße (EoF). In diesem Fall muss die Länge nicht auf 4 KB ausgerichtet sein, solange der resultierende Bereich auf oder über der logischen Dateigröße endet. Auch wenn der CompletionStatus nicht STATUS_SUCCESS ist, sollte dieses Feld auf einen gültigen Wert festgelegt werden.
DUMMYUNIONNAME.RetrieveData
Ein Synchronisierungsanbieter führt einen RETRIEVE_DATA Vorgang im Rahmen der Platzhalterhydratation aus, um die Integrität der Daten zu überprüfen, die zuvor an den Platzhalter übertragen wurden. Dieser Vorgang kann als Antwort auf einen FETCH_DATA Rückruf, einen VALIDATE_DATA Rückruf oder als Teil einer präventiven Hintergrundhydratation außerhalb eines Rückrufkontexts ausgeführt werden.
Diese API gilt nur für Synchronisierungsanbieter, die eine Hydratationsrichtlinie unterstützen, die kleiner als ALWAYS_FULL ist. Andernfalls tritt beim Vorgang ein Fehler mit STATUS_CLOUD_FILE_NOT_SUPPORTED auf.
Der Synchronisierungsanbieter muss den Hydratationsrichtlinienmodifizierer angeben, der zum Zeitpunkt der Synchronisierungsstammregistrierung VALIDATE_REQUIRED, um diesen Vorgang ausführen zu können. Andernfalls tritt beim Vorgang ein Fehler mit STATUS_CLOUD_FILE_NOT_SUPPORTED auf.
Der Synchronisierungsanbieter muss READ_DATA oder WRITE_DAC Zugriff auf die Datei haben, für die der RETRIEVE_DATA Vorgang ausgeführt werden soll. Andernfalls tritt beim Vorgang ein Fehler mit STATUS_CLOUD_FILE_ACCESS_DENIED auf.
So führen Sie diesen Vorgang aus:
- OpInfo.Type muss auf CF_OPERATION_TYPE_RETRIEVE_DATA festgelegt werden.
- OpParams.ParamSize muss auf die genaue Größe von OpParams.RetrieveData plus dem Offset von OpParams.RetrieveData festgelegt werden.
- OpParams.RetrieveData.Flags muss auf CF_OPERATION_RETRIEVE_DATA_FLAG_NONE festgelegt werden.
- OpParams.RetrieveData.Buffer muss auf einen gültigen Benutzermoduspuffer verweisen und mindestens OpParams.RetrieveData.Length-Bytes aufweisen. Nach erfolgreichem Abschluss des Vorgangs empfängt es die daten, die zuvor über TRANSFER_DATA an den Platzhalter übertragen wurden.
- OpParams.RetrieveData.Offset und OpParams.RetrieveData.Length beschreiben einen Bereich im Platzhalter, aus dem der Synchronisierungsanbieter Daten abruft. Der angeforderte Bereich muss vor dem RETRIEVE_DATAVorgang durch einen TRANSFER_DATA Vorgang vollständig hydratisiert worden sein, andernfalls tritt bei STATUS_CLOUD_FILE_INVALID_REQUEST ein Fehler auf. Sowohl Offset als auch Länge sind 4 KB ausgerichtet, es sei denn, der beschriebene Bereich endet auf der logischen Dateigröße (EoF). In diesem Fall muss die Länge nicht auf 4 KB ausgerichtet sein, solange sie auf oder darüber hinaus endet.
- OpParams.RetrieveData.ReturnedLength empfängt die tatsächliche Anzahl von Bytes, die nach erfolgreichem Abschluss des Vorgangs abgerufen werden.
DUMMYUNIONNAME.RetrieveData.Flags
Flags zum Abrufen von Daten. Dies muss auf CF_OPERATION_RETRIEVE_DATA_FLAG_NONE festgelegt werden. Weitere Informationen finden Sie unter CF_OPERATION_RETRIEVE_DATA_FLAGS .
DUMMYUNIONNAME.RetrieveData.Buffer
Dies muss auf einen gültigen Benutzermoduspuffer verweisen und mindestens Bytes längen haben. Nach erfolgreichem Abschluss des Vorgangs empfängt es die daten, die zuvor über TRANSFER_DATA an den Platzhalter übertragen wurden.
DUMMYUNIONNAME.RetrieveData.Offset
Der Offset, der mit der Länge verwendet wird, um den Datenbereich zu beschreiben, der aus einem Platzhalter abgerufen wird. Es beschreibt einen Bereich im Platzhalter, aus dem der Synchronisierungsanbieter Daten abruft. Der angeforderte Bereich muss vor dem RETRIEVE_DATAVorgang durch einen TRANSFER_DATA Vorgang vollständig hydratisiert worden sein, andernfalls tritt bei STATUS_CLOUD_FILE_INVALID_REQUEST ein Fehler auf. Offset muss 4 KB ausgerichtet sein.
DUMMYUNIONNAME.RetrieveData.Length
Die Länge des Puffers in Bytes. Dies ist 4 KB ausgerichtet, es sei denn, der beschriebene Bereich endet auf der logischen Dateigröße (EoF). In diesem Fall muss Die Länge nicht mit 4 KB ausgerichtet sein, solange sie auf oder darüber hinaus endet.
DUMMYUNIONNAME.RetrieveData.ReturnedLength
Die Anzahl der Bytes, die nach erfolgreichem Abschluss des Vorgangs abgerufen wurden.
DUMMYUNIONNAME.AckData
Ein Synchronisierungsanbieter führt einen ACK_DATA-Vorgang im Rahmen der Platzhalterhydratation aus, nachdem die Integrität der Daten überprüft wurde, die zuvor an die Plattform übertragen wurden. Dieser Vorgang kann als Antwort auf einen FETCH_DATA Rückruf, einen VALIDATE_DATA Rückruf oder als Teil einer präventiven Hintergrundhydratation außerhalb eines Rückrufkontexts ausgeführt werden.
Diese API gilt nur für Synchronisierungsanbieter, die eine Hydratationsrichtlinie unterstützen, die kleiner als ALWAYS_FULL ist. Andernfalls tritt beim Vorgang ein Fehler mit STATUS_CLOUD_FILE_NOT_SUPPORTED auf.
Der Synchronisierungsanbieter muss den Hydratationsrichtlinienmodifizierer angeben , VALIDATE_REQUIRED zum Zeitpunkt der Synchronisierungsstammregistrierung angegeben wird, um diesen Vorgang auszuführen. Andernfalls tritt beim Vorgang ein Fehler mit STATUS_CLOUD_FILE_NOT_SUPPORTED auf.
Der Synchronisierungsanbieter muss READ_DATA oder WRITE_DAC Zugriff auf die Datei haben, für die der ACK_DATA-Vorgang ausgeführt werden soll. Andernfalls tritt beim Vorgang ein Fehler mit STATUS_CLOUD_FILE_ACCESS_DENIED auf.
So führen Sie diesen Vorgang aus:
- OpInfo.Type muss auf CF_OPERATION_TYPE_ACK_DATA festgelegt werden.
- OpParams.ParamSize muss auf die genaue Größe von OpParams.AckData plus den Offset von OpParams.AckData festgelegt werden.
- OpParams.AckData.Flags muss auf CF_OPERATION_ACK_DATA_FLAG_NONE festgelegt werden.
- OpParams.AckData.CompletionStatus muss auf STATUS_SUCCESS festgelegt werden, wenn der Synchronisierungsanbieter überprüft, ob die Daten innerhalb des zu bestätigenden Bereichs gut sind. Wenn der Synchronisierungsanbieter die Daten aus irgendeinem Grund nicht überprüft und die Hydration nicht neu starten möchte, muss er eine STATUS_CLOUD_FILE_* status in CompletionStatus festlegen. Alle status Code, der außerhalb STATUS_CLOUD_FILE_*-Bereichs zurückgegeben wird, mit Ausnahme von STATUS_SUCCESS, werden von der Plattform in STATUS_CLOUD_FILE_UNSUCCESSFUL konvertiert.
- OpParams.AckData.Offset und OpParams.AckData.Length beschreiben einen Bereich im Platzhalter, dessen Daten vom Synchronisierungsanbieter bestätigt werden. Der angeforderte Bereich muss vor dem Vorgang nicht durch einen TRANSFER_DATA Vorgang vollständig hydratisiert werden. Sowohl Offset als auch Length sind 4 KB ausgerichtet, es sei denn, der beschriebene Bereich endet auf der logischen Dateigröße (EoF). In diesem Fall muss Die Länge nicht um 4 KB ausgerichtet sein, solange sie auf oder darüber hinaus endet.
- Eine Länge von
-1
, die als CF_EOF bezeichnet wird, bedeutet Unendlichkeit (d. h. bis zum Ende der Datei).
Nach einem erfolgreichen ACK_DATA Vorgang werden alle ausstehenden Benutzer-E/A-Anforderungen für die Platzhalterdatei abgeschlossen, die alle erforderlichen Bytes als Ergebnis des ACK_DATA Vorgangs erhalten haben; Andernfalls werden die unvollständigen Benutzer-E/A-Anforderungen aktualisiert, um den aktuellen Hydrationszustand widerzuspiegeln. In einem fehlerhaften ACK_DATA Fall treten alle ausstehenden Benutzer-E/A-Anforderungen für die Platzhalterdatei, die sich mit dem Bereich überlappen, wie unter Offset und Length beschrieben, mit CompletionStatus fehl.
DUMMYUNIONNAME.AckData.Flags
Flags für die Bestätigung von Daten. Dies muss auf CF_OPERATION_ACK_DATA_FLAG_NONE festgelegt werden. Weitere Informationen finden Sie unter CF_OPERATION_ACK_DATA_FLAGS .
DUMMYUNIONNAME.AckData.CompletionStatus
Abschluss status der Datenbestätigung. Dies muss auf STATUS_SUCCESS festgelegt werden, wenn der Synchronisierungsanbieter überprüft, ob die Daten innerhalb des zu bestätigenden Bereichs gut sind. Wenn der Synchronisierungsanbieter die Daten aus irgendeinem Grund nicht überprüft und die Hydration nicht neu starten möchte, muss er eine STATUS_CLOUD_FILE_* status in CompletionStatus festlegen. Alle status Code, der außerhalb STATUS_CLOUD_FILE_*-Bereichs zurückgegeben wird, mit Ausnahme von STATUS_SUCCESS, werden von der Plattform in STATUS_CLOUD_FILE_UNSUCCESSFUL konvertiert.
DUMMYUNIONNAME.AckData.Offset
Der Offset in Bytes der zu bestätigenden Platzhalterdaten. Offset beschreibt einen Bereich im Platzhalter, dessen Daten vom Synchronisierungsanbieter bestätigt werden. Der angeforderte Bereich muss vor dem Vorgang nicht durch einen TRANSFER_DATA Vorgang vollständig hydratisiert werden. Offset muss 4 KB ausgerichtet sein.
DUMMYUNIONNAME.AckData.Length
Die Länge von Daten in Bytes im zu bestätigenden Platzhalter. Muss 4 KB ausgerichtet sein, es sei denn, der beschriebene Bereich endet auf der logischen Dateigröße (EoF). In diesem Fall muss Die Länge nicht mit 4 KB ausgerichtet sein, solange sie auf oder über die logische Dateigröße hinaus endet. Eine Länge von -1
, die als CF_EOF bezeichnet wird, bedeutet Unendlichkeit (d. h. bis zum Ende der Datei).
DUMMYUNIONNAME.RestartHydration
Ein Synchronisierungsanbieter führt einen RESTART_HYDRATION Vorgang aus, um eine laufende Flüssigkeitszufuhr neu zu starten. Dieser Vorgang kann als Antwort auf einen FETCH_DATA Rückruf, einen VALIDATE_DATA Rückruf oder als Teil einer präventiven Hintergrundhydratation außerhalb eines Rückrufkontexts ausgeführt werden.
Diese API gilt nur für Synchronisierungsanbieter, die die Richtlinie FÜR VOLLSTÄNDIGE Hydratation unterstützen. Andernfalls tritt beim Vorgang ein Fehler mit STATUS_CLOUD_FILE_NOT_SUPPORTED auf.
Der Synchronisierungsanbieter muss WRITE_DATA oder WRITE_DAC Zugriff auf die Datei haben, für die der RESTART_HYDRATION Vorgang ausgeführt werden soll. Andernfalls tritt beim Vorgang ein Fehler mit STATUS_CLOUD_FILE_ACCESS_DENIED auf.
So führen Sie diesen Vorgang aus:
- OpInfo.Type muss auf CF_OPERATION_TYPE_RESTART_HYDRATION festgelegt werden.
- OpParams.ParamSize muss auf die genaue Größe von OpParams.RestartHydration und den Offset von OpParams.RestartHydration festgelegt werden.
- OpParams.RestartHydration.Flags muss auf CF_OPERATION_RESTART_HYDRATION_FLAG_NONE oder CF_OPERATION_RESTART_HYDRATION_FLAG_MARK_IN_SYNC festgelegt werden.
- Wenn CF_OPERATION_RESTART_HYDRATION_FLAG_MARK_IN_SYNC angegeben ist, wird der Platzhalter bei erfolgreicher RESTART_HYDRATION-Vorgang synchron markiert.
- OpParams.RestartHydration.FsMetadata ist optional. Wenn angegeben:
- Ein
0
Wert im Zeitstempelfeld (CreationTime, LastAccessTime, LastWriteTime und ChangeTime) bedeutet keine Änderung des aktuellen Zeitstempels in der Datei. - Ein
0
Wert in FileAttributes bedeutet, dass die aktuellen Dateiattribute für die Datei nicht geändert werden. - In FileSize gibt es keinen besonderen Wert. Ein
0
Wert in FileSize schneidet die Dateigröße auf 0 ab.
- Ein
- OpParams.RestartHydration.FileIdentity und OpParams.RestartHydration.FileIdentityLength sind optional. Wenn sie angegeben wird, wird die neue Identität in der Datei beibehalten. Andernfalls bleibt die aktuelle Dateiidentität bestehen.
Der Synchronisierungsanbieter ruft diese API auf, wenn er feststellt, dass die Daten auf dem Datenträger in einem Platzhalter tatsächlich ungültig und nicht für die Erfüllung von E/A-Anforderungen geeignet sind. Das typische Szenario ist, dass die abgerufenen Daten aus irgendeinem Grund eine Überprüfung der Prüfsumme nicht bestanden haben. Ein anderes Verwendungsszenario tritt auf, wenn der Dateiinhalt im Laufe der Hydratation tatsächlich in der Cloud aktualisiert wurde (und der Synchronisierungsanbieter nicht in der Lage ist, Verlaufsinhalte aus der Cloud abzurufen, die der lokalen Platzhalterversion entsprechen).
Nach einem erfolgreichen Neustart wird der Platzhalter vollständig dehydriert und ggf. mit den neuen Metadaten aktualisiert. Ausstehende Benutzer-E/A-Anforderungen werden, falls vorhanden, erneut verarbeitet, als ob sie gerade eingetroffen wären, und als Ergebnis erhält der Synchronisierungsanbieter neue Rückrufe, die genau mit denen aussehen, die der Synchronisierungsanbieter zuvor empfangen hat.
Wenn der Neustart jedoch aus irgendeinem Grund fehlgeschlagen ist, wird der Platzhalter möglicherweise in einem nicht deterministischen Zustand belassen, je nachdem, wo der Fehler aufgetreten ist, und alle ausstehenden Benutzer-E/A-Anforderungen für den Platzhalter werden mit demselben Fehler fehlgeschlagen. Das Einzige, was die Plattform in diesem Fall garantiert, ist, dass der zukünftige Benutzerzugriff auf die Platzhalterdatei dieselben Rückrufe auslöst.
DUMMYUNIONNAME.RestartHydration.Flags
Flags, um die Platzhalterhydratation neu zu starten. Dies muss entweder auf CF_OPERATION_RESTART_HYDRATION_FLAG_NONE oder CF_OPERATION_RESTART_HYDRATION_FLAG_MARK_IN_SYNC festgelegt werden. Wenn CF_OPERATION_RESTART_HYDRATION_FLAG_MARK_IN_SYNC angegeben ist, wird der Platzhalter bei erfolgreicher RESTART_HYDRATION-Vorgang synchron markiert. Weitere Informationen finden Sie unter CF_OPERATION_RESTART_HYDRATION_FLAGS .
DUMMYUNIONNAME.RestartHydration.FsMetadata
Optional. Enthält Aktualisierungen der Dateimetadaten. Wenn angegeben:
- Ein
0
Wert im Zeitstempelfeld (CreationTime, LastAccessTime, LastWriteTime und ChangeTime) bedeutet keine Änderung des aktuellen Zeitstempels in der Datei. - Ein
0
Wert in FileAttributes bedeutet keine Änderung der aktuellen Dateiattribute für die Datei. - In FileSize gibt es keinen besonderen Wert. Ein
0
Wert in FileSize schneidet die Dateigröße auf 0 ab.
DUMMYUNIONNAME.RestartHydration.FileIdentity
Optional. Bei dieser Option wird die Dateiidentität auf diesen Wert aktualisiert. Andernfalls bleibt es gleich.
DUMMYUNIONNAME.RestartHydration.FileIdentityLength
Optional. Dies gibt die Länge der FileIdentity an.
DUMMYUNIONNAME.TransferPlaceholders
DUMMYUNIONNAME.TransferPlaceholders.Flags
Flags für die Übertragung von Platzhaltern. Weitere Informationen finden Sie unter CF_OPERATION_TRANSFER_PLACEHOLDERS_FLAGS .
DUMMYUNIONNAME.TransferPlaceholders.CompletionStatus
Der Abschluss status des Vorgangs "Platzhalter" für die Übertragung.
DUMMYUNIONNAME.TransferPlaceholders.PlaceholderTotalCount
Die Gesamtzahl der Platzhalter.
DUMMYUNIONNAME.TransferPlaceholders.PlaceholderArray
Ein Array von Platzhaltern, die übertragen werden sollen.
DUMMYUNIONNAME.TransferPlaceholders.PlaceholderCount
Die Anzahl der zu übertragenen Platzhalter.
DUMMYUNIONNAME.TransferPlaceholders.EntriesProcessed
Die verarbeiteten Platzhaltereinträge.
DUMMYUNIONNAME.AckDehydrate
DUMMYUNIONNAME.AckDehydrate.Flags
Dehydrierte Datenbestätigungsflags. Weitere Informationen finden Sie unter CF_OPERATION_ACK_DEHYDRATE_FLAGS .
DUMMYUNIONNAME.AckDehydrate.CompletionStatus
Der Abschluss status des Dehydrierungsvorgangs. Dies muss auf STATUS_SUCCESS festgelegt werden, wenn der Synchronisierungsanbieter die Dehydrierung fortsetzen kann. Wenn der Synchronisierungsanbieter die Dehydrierung aus irgendeinem Grund nicht zulassen möchte, muss er eine STATUS_CLOUD_FILE_* status in CompletionStatus festlegen. Alle status Code, der außerhalb STATUS_CLOUD_FILE_*-Bereichs zurückgegeben wird, mit Ausnahme von STATUS_SUCCESS, werden von der Plattform in STATUS_CLOUD_FILE_UNSUCCESSFUL konvertiert.
DUMMYUNIONNAME.AckDehydrate.FileIdentity
Die Dateiidentität der Platzhalterdatei, für die dehydrierte Daten bestätigt werden sollen.
DUMMYUNIONNAME.AckDehydrate.FileIdentityLength
Länge des FileIdentity-Werts in Bytes.
DUMMYUNIONNAME.AckRename
DUMMYUNIONNAME.AckRename.Flags
Bestätigen Sie die Umbenennung von Platzhalterflags. Weitere Informationen finden Sie unter CF_OPERATION_ACK_RENAME_FLAGS .
DUMMYUNIONNAME.AckRename.CompletionStatus
Der Abschluss status des Vorgangs zum Bestätigen der Umbenennung. Dies muss auf STATUS_SUCCESS festgelegt werden, wenn der Synchronisierungsanbieter die Ausführung des Umbenennungsvorgangs zulassen kann. Wenn der Synchronisierungsanbieter die Umbenennung aus irgendeinem Grund nicht zulassen möchte, muss er eine STATUS_CLOUD_FILE_* status in CompletionStatus festlegen. Alle status Code, der außerhalb STATUS_CLOUD_FILE_*-Bereichs zurückgegeben wird, mit Ausnahme von STATUS_SUCCESS, werden von der Plattform in STATUS_CLOUD_FILE_UNSUCCESSFUL konvertiert.
DUMMYUNIONNAME.AckDelete
DUMMYUNIONNAME.AckDelete.Flags
Bestätigen Sie Löschflags. Weitere Informationen finden Sie unter CF_OPERATION_ACK_DELETE_FLAGS .
DUMMYUNIONNAME.AckDelete.CompletionStatus
Der Abschluss status des Vorgangs zum Bestätigen des Löschens. Dies muss auf STATUS_SUCCESS festgelegt werden, wenn der Synchronisierungsanbieter die Ausführung des Löschvorgangs zulassen kann. Wenn der Synchronisierungsanbieter das Löschen aus irgendeinem Grund nicht zulassen möchte, muss er eine STATUS_CLOUD_FILE_* status in CompletionStatus festlegen. Alle status Code, der außerhalb STATUS_CLOUD_FILE_*-Bereichs zurückgegeben wird, mit Ausnahme von STATUS_SUCCESS, werden von der Plattform in STATUS_CLOUD_FILE_UNSUCCESSFUL konvertiert.
Anforderungen
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) | Windows 10, Version 1709 [nur Desktop-Apps] |
Unterstützte Mindestversion (Server) | Windows Server 2016 [nur Desktop-Apps] |
Kopfzeile | cfapi.h |