WofSetFileDataLocation-Funktion (wofapi.h)

Wird verwendet, um eine auf einer physischen Datei basierende Datei in eine auf einem Systemdatenanbieter basierende Datei zu ändern.

Syntax

HRESULT WofSetFileDataLocation(
  [in] HANDLE FileHandle,
  [in] ULONG  Provider,
  [in] PVOID  ExternalFileInfo,
  [in] ULONG  Length
);

Parameter

[in] FileHandle

Ein Handle für eine Datei, die mit CreateFile oder einer ähnlichen API geöffnet wurde.

[in] Provider

Gibt an, welcher Anbieter diese Datei unterstützt. Derzeit definierte Anbieter sind:

WOF_PROVIDER_WIM Gibt an, dass die Daten für die Datei aus einer WIM-Datei abgerufen werden sollen. Beim Zugriff werden Daten transparent aus der WIM-Datei extrahiert und Anwendungen zur Verfügung gestellt. Wenn der Dateiinhalt geändert wird, werden die Daten transparent dekomprimiert, und die Datei wird in die gleiche physische Form wiederhergestellt, die sie hatte, wenn diese API nicht verwendet wurde.
WOF_PROVIDER_FILE Gibt an, dass die Daten für die Datei komprimiert und mit der Datei selbst gespeichert werden sollen. Beim Zugriff werden Daten transparent dekomprimiert und anwendungen zur Verfügung gestellt. Wenn der Dateiinhalt geändert wird, werden die Daten transparent dekomprimiert, und die Datei wird in die gleiche physische Form wiederhergestellt, die sie hatte, wenn diese API nicht verwendet wurde. Dieser Anbieter erfordert Windows 10.

[in] ExternalFileInfo

Stellt datenspezifisch für den angegebenen Anbieter bereit. Datenstrukturen für jeden definierten Anbieter sind:

WOF_PROVIDER_WIM WIM_EXTERNAL_FILE_INFO
WOF_PROVIDER_FILE WOF_FILE_COMPRESSION_INFO

[in] Length

Gibt die Länge der anbieterspezifischen Daten in Bytes an. Dies sollte den oben definierten Strukturen entsprechen:

WOF_PROVIDER_WIM sizeof(WIM_EXTERNAL_FILE_INFO)
WOF_PROVIDER_FILE sizeof(WOF_FILE_COMPRESSION_INFO)

Rückgabewert

Diese Funktion gibt ein HRESULT zurück, das den Erfolg oder den Grund für einen Fehler angibt.

Hinweise

Bei Verwendung von WOF_PROVIDER_FILE schlägt der Vorgang möglicherweise mit ERROR_COMPRESSION_NOT_BENEFICIAL fehl. Dies bedeutet, dass versucht wurde, die Daten zu komprimieren, aber kein Speicherplatz gespeichert wurde, sodass die Datei nicht komprimiert wurde. Für die meisten Anwendungen kann dies als Erfolgsbedingung behandelt werden.

Anforderungen

Anforderung Wert
Zielplattform Windows
Kopfzeile wofapi.h
Bibliothek Wofutil.lib
DLL Wofutil.dll

Weitere Informationen

FSCTL_SET_EXTERNAL_BACKING