ReplaceFileFromAppW-Funktion (fileapifromapp.h)

Ersetzt eine Datei durch eine andere Datei und bietet die Möglichkeit, eine Sicherungskopie der ursprünglichen Datei zu erstellen. Das Verhalten dieser Funktion ist identisch mit ReplaceFile, mit der Ausnahme, dass diese Funktion dem Universelle Windows-Plattform App-Sicherheitsmodell entspricht.

Syntax

WINSTORAGEAPI BOOL ReplaceFileFromAppW(
  LPCWSTR lpReplacedFileName,
  LPCWSTR lpReplacementFileName,
  LPCWSTR lpBackupFileName,
  DWORD   dwReplaceFlags,
  LPVOID  lpExclude,
  LPVOID  lpReserved
) noexcept;

Parameter

lpReplacedFileName

Weitere Informationen zum Deaktivieren der MAX_PATH Einschränkung ohne Vorheriges "\\?\" finden Sie im Abschnitt "Maximale Pfadlängenbegrenzung" unter Benennungsdateien, Pfade und Namespaces .

Diese Datei wird mit den Zugriffsberechtigungen GENERIC_READ, DELETE und SYNCHRONIZE geöffnet. Der Freigabemodus wird FILE_SHARE_WRITE FILE_SHARE_DELETE | | FILE_SHARE_READ.

Der Aufrufer muss Schreibzugriff auf die zu ersetzende Datei haben. Weitere Informationen finden Sie unter Dateisicherheit und Zugriffsrechte.

lpReplacementFileName

Der Name der Datei, die die lpReplacedFileName-Datei ersetzt.

Weitere Informationen zum Deaktivieren der MAX_PATH Einschränkung ohne Vorheriges "\\?\" finden Sie im Abschnitt "Maximale Pfadlängenbegrenzung" unter Benennungsdateien, Pfade und Namespaces .

Die Funktion versucht, diese Datei mit den Zugriffsrechten SYNCHRONIZE, GENERIC_READ, GENERIC_WRITE, DELETE und WRITE_DAC zu öffnen, sodass alle Attribute und ACLs beibehalten werden können. Wenn dies fehlschlägt, versucht die Funktion, die Datei mit den Zugriffsrechten SYNCHRONIZE, GENERIC_READ, DELETE und WRITE_DAC zu öffnen. Es ist kein Freigabemodus angegeben.

lpBackupFileName

Der Name der Datei, die als Sicherungskopie der lpReplacedFileName-Datei dient. Wenn dieser Parameter NULL ist, wird keine Sicherungsdatei erstellt. Details zur Implementierung der Sicherungsdatei finden Sie im Abschnitt Hinweise.

Weitere Informationen zum Deaktivieren der MAX_PATH Einschränkung ohne Vorheriges "\\?\" finden Sie im Abschnitt "Maximale Pfadlängenbegrenzung" unter Benennungsdateien, Pfade und Namespaces .

dwReplaceFlags

Die Ersatzoptionen. Dieser Parameter kann einen oder mehrere der folgenden Werte aufweisen.

Wert Bedeutung
REPLACEFILE_WRITE_THROUGH 0x00000001

Dieser Wert wird nicht unterstützt.

REPLACEFILE_IGNORE_MERGE_ERRORS 0x00000002

Ignoriert Fehler, die beim Zusammenführen von Informationen (z. B. Attribute und ACLs) aus der ersetzten Datei in die Ersatzdatei auftreten. Wenn Sie dieses Flag angeben und keinen WRITE_DAC Zugriff haben, ist die Funktion erfolgreich, die ACLs werden jedoch nicht beibehalten.

REPLACEFILE_IGNORE_ACL_ERRORS 0x00000004

Ignoriert Fehler, die beim Zusammenführen von ACL-Informationen aus der ersetzten Datei mit der Ersatzdatei auftreten. Wenn Sie dieses Flag angeben und keinen WRITE_DAC Zugriff haben, ist die Funktion erfolgreich, die ACLs werden jedoch nicht beibehalten. Um eine Anwendung zu kompilieren, die diesen Wert verwendet, definieren Sie das _WIN32_WINNT Makro als 0x0600 oder höher.

lpExclude

Für zukünftige Verwendung reserviert.

lpReserved

Für zukünftige Verwendung reserviert.

Rückgabewert

Wenn die Funktion erfolgreich ist, ist der Rückgabewert ungleich Null.

Wenn die Funktion fehlerhaft ist, ist der Rückgabewert null. Um erweiterte Fehlerinformationen zu erhalten, rufen Sie GetLastError auf. Im Folgenden finden Sie mögliche Fehlercodes für diese Funktion.

Rückgabecode/-wert BESCHREIBUNG
ERROR_UNABLE_TO_MOVE_REPLACEMENT 1176 (0x498)

Die Ersatzdatei konnte nicht umbenannt werden. Wenn lpBackupFileName angegeben wurde, behalten die ersetzten und ersetzungsdateien ihre ursprünglichen Dateinamen bei. Andernfalls ist die ersetzte Datei nicht mehr vorhanden, und die Ersatzdatei ist unter ihrem ursprünglichen Namen vorhanden.

ERROR_UNABLE_TO_MOVE_REPLACEMENT_2 1177 (0x499)

Die Ersatzdatei konnte nicht verschoben werden. Die Ersatzdatei ist weiterhin unter ihrem ursprünglichen Namen vorhanden. Die Dateidatenströme und -attribute wurden jedoch von der ersetzten Datei geerbt. Die zu ersetzende Datei ist weiterhin mit einem anderen Namen vorhanden. Wenn lpBackupFileName angegeben wird, ist dies der Name der ersetzten Datei.

ERROR_UNABLE_TO_REMOVE_REPLACED 1175 (0x497)

Die ersetzte Datei konnte nicht gelöscht werden. Die ersetzten dateien und ersatzdateien behalten ihre ursprünglichen Dateinamen bei.

 

Wenn ein anderer Fehler zurückgegeben wird, z. B. ERROR_INVALID_PARAMETER, behalten die ersetzten dateien und die Ersetzungsdateien ihre ursprünglichen Dateinamen bei. In diesem Szenario ist keine Sicherungsdatei vorhanden, und es ist nicht garantiert, dass die Ersatzdatei alle Attribute und Streams der ersetzten Datei geerbt hat.

Anforderungen

   
Unterstützte Mindestversion (Client) Windows 10, Version 1803
Kopfzeile fileapifromapp.h