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 |