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) |