Freigeben über


FsRtlChangeBackingFileObject-Funktion (ntifs.h)

Die FsRtlChangeBackingFileObject Routine ersetzt das aktuelle Dateiobjekt durch ein neues Dateiobjekt.

Syntax

NTSTATUS FsRtlChangeBackingFileObject(
  PFILE_OBJECT              CurrentFileObject,
  PFILE_OBJECT              NewFileObject,
  FSRTL_CHANGE_BACKING_TYPE ChangeBackingType,
  ULONG                     Flags
);

Parameter

CurrentFileObject

[in, optional] Das aktuelle Dateiobjekt. Wenn CurrentFileObject-NULL-ist, wird das aktuelle Dateiobjekt des Betriebssystems auf NewFileObjectfestgelegt. Wenn es nicht NULL ist, wird das Sicherungsdateiobjekt in NewFileObject- nur geändert, wenn das aktuelle Sicherungsdateiobjekt des Betriebssystems diesem Wert entspricht. Wenn dieses Dateiobjekt nicht zum Datenstrom gehört, schlägt der Vorgang fehl.

NewFileObject

[in] Das neue Dateiobjekt, auf das das Betriebssystem intern verweist und speichert.

ChangeBackingType

[in] Ein FSRTL_CHANGE_BACKING_TYPE Enumerationswert, der angibt, welche interne Struktur geändert werden soll, um auf NewFileObject-zu verweisen.

Flags

[in] für die zukünftige Verwendung reserviert.

Rückgabewert

Die FsRtlChangeBackingFileObject Routine gibt STATUS_SUCCESS zurück, wenn der Vorgang erfolgreich ist. Andernfalls gibt FsRtlChangeBackingFileObject den entsprechenden Fehlercode zurück. Die folgende Tabelle enthält Fehlercodes, die fsRtlChangeBackingFileObject zurückgeben können.

Rückgabecode Beschreibung
STATUS_INVALID_PARAMETER_2 Fehler beim Änderungsvorgang, da das Dateiobjekt, das NewFileObject- angibt, nicht denselben Datenstrom wie CurrentFileObject darstellt.
STATUS_INVALID_PARAMETER_3 Fehler beim Änderungsvorgang, da der Aufrufer einen ungültigen Sicherungstyp in ChangeBackingType-angegeben hat.
STATUS_INVALID_PARAMETER_4 Fehler beim Änderungsvorgang, da der Aufrufer einen ungültigen Wert in Flagsangegeben hat.
STATUS_NOT_SUPPORTED Fehler beim Änderungsvorgang, da der Aufrufer das Dateiobjekt auf eine Weise abgerufen hat, die keine nachfolgende Auslagerung des Dateiobjekts zulässt. Wenn der Aufrufer beispielsweise das Dateiobjekt mit einem Aufruf von CcGetFileObjectFromSectionPtrsabgerufen hat, ist es nicht sicher, das Dateiobjekt zu tauschen.

Bemerkungen

Die FsRtlChangeBackingFileObject Routine ändert das Dateiobjekt für eine der folgenden Aktionen:

  • Einer der Bildsteuerungsbereiche des Speichermanagers für den Datenstrom

  • Der Datensteuerungsbereich des Speichermanagers für den Datenstrom

  • Die freigegebene Cachezuordnung des Cache-Managers für den Datenstrom

Die FsRtlChangeBackingFileObject Routine ist nicht synchron. Sie verarbeitet die Anforderung für eine Änderung des Dateiobjekts und gibt sofort zurück. Der Cache-Manager und der Speicher-Manager synchronisieren die Änderung des Dateiobjekts und geben das alte Dateiobjekt erst frei, wenn alle unvollständigen Vorgänge, die dem alten Dateiobjekt zugeordnet sind, abgeschlossen sind. Ein Rückgabestatus von STATUS_SUCCESS von FsRtlChangeBackingFileObject bedeutet nicht, dass das Betriebssystem das Dateiobjekt bereits geändert hat.

Nachdem FsRtlChangeBackingFileObject erfolgreich ausgeführt wurde, ordnet das Betriebssystem alle zukünftigen Vorgänge dem neuen Dateiobjekt zu.

Um das Dateiobjekt für mehrere Sicherungstypen zu ändern, muss der Aufrufer FsRtlChangeBackingFileObject mehrmals aufrufen, wobei jeder Sicherungstyp geändert werden soll.

Anforderungen

Anforderung Wert
mindestens unterstützte Client- Die FsRtlChangeBackingFileObject-Routine ist ab Windows Vista verfügbar.
Zielplattform- Universal
Header- ntifs.h (einschließlich Ntifs.h)
Library NtosKrnl.lib
DLL- NtosKrnl.exe
IRQL- PASSIVE_LEVEL
DDI-Complianceregeln PowerIrpDDis(wdm)

Siehe auch

FSRTL_CHANGE_BACKING_TYPE