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.
  • 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

Weitere Informationen

CfExecute

CF_OPERATION_TRANSFER_DATA_FLAGS

CF_OPERATION_RETRIEVE_DATA_FLAGS